From 182f5a1443b44df26f9acf5e29a327913ad43688 Mon Sep 17 00:00:00 2001 From: Julien Fortin Date: Tue, 5 Jul 2016 14:42:54 +0200 Subject: [PATCH] netlink: adding support for netlink vxlan call via nlmanager Ticket: CM-8035 Reviewed By: CCR-4896 Testing Done: ifupdown smoke, -t vxlan tests Signed-off-by: Julien Fortin --- ifupdown/netlink.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/ifupdown/netlink.py b/ifupdown/netlink.py index fda8039..56fa4a2 100644 --- a/ifupdown/netlink.py +++ b/ifupdown/netlink.py @@ -5,7 +5,6 @@ # try: - from ifupdownaddons.utilsbase import utilsBase from nlmanager.nlmanager import NetlinkManager import ifupdown.ifupdownflags as ifupdownflags @@ -14,6 +13,8 @@ except ImportError, e: class Netlink(utilsBase): + VXLAN_UDP_PORT = 4789 + def __init__(self, *args, **kargs): utilsBase.__init__(self, *args, **kargs) self._nlmanager_api = NetlinkManager() @@ -88,4 +89,21 @@ class Netlink(utilsBase): raise Exception('netlink: %s: cannot remove bridge vlan %s: %s' % (ifacename, vlanid, str(e))) + def link_add_vxlan(self, ifacename, vxlanid, local=None, dstport=VXLAN_UDP_PORT, + group=None, learning='on', ageing=None): + self.logger.info('netlink: %s: creating vxlan %s' + % (ifacename, vxlanid)) + if ifupdownflags.flags.DRYRUN: return + try: + return self._nlmanager_api.link_add_vxlan(ifacename, + vxlanid, + dstport=dstport, + local=local, + group=group, + learning=learning, + ageing=ageing) + except Exception as e: + raise Exception('netlink: %s: cannot create vxlan %s: %s' + % (ifacename, vxlanid, str(e))) + netlink = Netlink()