From c5e11bbfcda78f021b38bf9177f0c661b8f59b20 Mon Sep 17 00:00:00 2001 From: Feng Pan Date: Mon, 23 Jan 2017 22:29:27 -0500 Subject: Add support for VPP interface Vector Packet Processing (VPP) is a high performance packet processing stack that runs in user space in Linux. VPP is used as an alternative to kernel networking stack for accelerated network data path. VPP uses DPDK poll-mode drivers to bind system interfaces rather than kernel drivers. VPP bound interfacees are not visible to kernel networking stack and therefore require different configuration steps in os-net-config. VPP interface will be used in Openstack by either Neutron ML2 driver networking-vpp as an alternative to OVS, or by Opendaylight SDN controller with Honeycomb agent. This patch adds interface configuration support to os-net-config. The kernel nic specified to be VPP interface type will be bound to VPP with a DPDK poll-mode driver. Note that os-net-config will only configure those settings that affect interface binding, all other configurations for VPP will be configured throught TripleO Heat Templates. Implements: blueprint fdio-integration-tripleo Change-Id: Iebb40b7c5b252c51e86b6f44bcf36ed206101390 Signed-off-by: Feng Pan --- os_net_config/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'os_net_config/__init__.py') diff --git a/os_net_config/__init__.py b/os_net_config/__init__.py index faa5e92..cb56059 100644 --- a/os_net_config/__init__.py +++ b/os_net_config/__init__.py @@ -95,6 +95,8 @@ class NetConfig(object): self.add_ovs_dpdk_port(obj) elif isinstance(obj, objects.OvsDpdkBond): self.add_ovs_dpdk_bond(obj) + elif isinstance(obj, objects.VppInterface): + self.add_vpp_interface(obj) def add_interface(self, interface): """Add an Interface object to the net config object. @@ -201,6 +203,13 @@ class NetConfig(object): """ raise NotImplementedError("add_ovs_dpdk_bond is not implemented.") + def add_vpp_interface(self, vpp_interface): + """Add a VppInterface object to the net config object. + + :param vpp_interface: The VppInterface object to add. + """ + raise NotImplementedError("add_vpp_interface is not implemented.") + def apply(self, cleanup=False): """Apply the network configuration. -- cgit 1.2.3-korg