]> git.proxmox.com Git - mirror_frr.git/commitdiff
lib, python: add M:A:C support for clippy
authorQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 11 Aug 2017 16:53:06 +0000 (12:53 -0400)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Mon, 14 Aug 2017 15:30:08 +0000 (11:30 -0400)
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
lib/command_py.c
python/clidef.py

index 785d2ffa70ae86db85c5e32e5bf1665fc0e93b1f..755cfb55ce8f65cbc79b9def641c8cf5b7d9dd96 100644 (file)
@@ -199,6 +199,8 @@ static PyObject *graph_to_pyobj(struct wrap_graph *wgraph,
                                item(IPV4_PREFIX_TKN) // IPV4 network prefixes
                                item(IPV6_TKN)  // IPV6 prefixes
                                item(IPV6_PREFIX_TKN) // IPV6 network prefixes
+                               item(MAC_TKN)    // MAC address
+                               item(MAC_PREFIX_TKN)  // MAC address with mask
 
                                /* plumbing types */
                                item(FORK_TKN) item(JOIN_TKN) item(START_TKN)
index 069d80fb70becc3ef0d576706195c78426dfec8c..8e3c7595b792adcfaed1f207696709f7d33a5764 100644 (file)
@@ -59,7 +59,7 @@ class PrefixBase(RenderHandler):
     def combine(self, other):
         if type(self) == type(other):
             return other
-        if type(other) in [Prefix4Handler, Prefix6Handler, PrefixGenHandler]:
+        if isinstance(other, PrefixBase):
             return PrefixGenHandler(None)
         return StringHandler(None)
     deref = '&'
@@ -71,6 +71,10 @@ class Prefix6Handler(PrefixBase):
     argtype = 'const struct prefix_ipv6 *'
     decl = Template('struct prefix_ipv6 $varname = { };')
     code = Template('_fail = !str2prefix_ipv6(argv[_i]->arg, &$varname);')
+class PrefixEthHandler(PrefixBase):
+    argtype = 'struct prefix_eth *'
+    decl = Template('struct prefix_eth $varname = { };')
+    code = Template('_fail = !str2prefix_eth(argv[_i]->arg, &$varname);')
 class PrefixGenHandler(PrefixBase):
     argtype = 'const struct prefix *'
     decl = Template('struct prefix $varname = { };')
@@ -121,6 +125,8 @@ handlers = {
     'IPV4_PREFIX_TKN':  Prefix4Handler,
     'IPV6_TKN':         IP6Handler,
     'IPV6_PREFIX_TKN':  Prefix6Handler,
+    'MAC_TKN':          PrefixEthHandler,
+    'MAC_PREFIX_TKN':   PrefixEthHandler,
 }
 
 # core template invoked for each occurence of DEFPY.