]> git.proxmox.com Git - mirror_frr.git/blobdiff - python/clidef.py
Merge pull request #935 from donaldsharp/kernel_metric
[mirror_frr.git] / python / clidef.py
index 1bf3c24aa2473e0ca1b1f8f181d051939b24b573..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.
@@ -142,7 +148,7 @@ $argdecls
                        continue;
                _fail = 0;$argblocks
                if (_fail)
-                       vty_outln (vty, "%% invalid input for %s: %s",
+                       vty_out (vty, "%% invalid input for %s: %s\\n",
                                   argv[_i]->varname, argv[_i]->arg);
                _failcnt += _fail;
        }