]> git.proxmox.com Git - mirror_ifupdown2.git/commitdiff
netlink: adding support for netlink vxlan call via nlmanager
authorJulien Fortin <julien@cumulusnetworks.com>
Tue, 5 Jul 2016 12:42:54 +0000 (14:42 +0200)
committerJulien Fortin <julien@cumulusnetworks.com>
Tue, 5 Jul 2016 12:42:54 +0000 (14:42 +0200)
Ticket: CM-8035
Reviewed By: CCR-4896
Testing Done: ifupdown smoke, -t vxlan tests

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
ifupdown/netlink.py

index fda80397b7e15cb369b11d161fe5b9c0c57cc4e1..56fa4a25be129fdcebc5d84903835785a5891833 100644 (file)
@@ -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()