]> git.proxmox.com Git - mirror_frr.git/commitdiff
Merge pull request #13670 from donaldsharp/coverity_99
authorDonatas Abraitis <donatas@opensourcerouting.org>
Mon, 5 Jun 2023 19:33:55 +0000 (22:33 +0300)
committerGitHub <noreply@github.com>
Mon, 5 Jun 2023 19:33:55 +0000 (22:33 +0300)
Coverity 99

isisd/isis_spf.c
ldpd/ldp_zebra.c
ldpd/socket.c
tests/topotests/isis_sr_flex_algo_topo1/test_isis_sr_flex_algo_topo1.py

index de467c8262d73af0e5ce08d65678cae3fccc8ea7..e114467e07ccdd9a36c5b8bdd3bb4f5d28e49717 100644 (file)
@@ -1843,6 +1843,9 @@ void isis_run_spf(struct isis_spftree *spftree)
        struct timeval time_end;
        struct isis_mt_router_info *mt_router_info;
        uint16_t mtid = 0;
+#ifndef FABRICD
+       bool flex_algo_enabled;
+#endif /* ifndef FABRICD */
 
        /* Get time that can't roll backwards. */
        monotime(&time_start);
@@ -1885,16 +1888,27 @@ void isis_run_spf(struct isis_spftree *spftree)
         * not supported by the node, it MUST stop participating in such
         * Flexible-Algorithm.
         */
-       if (flex_algo_id_valid(spftree->algorithm) &&
-           !flex_algo_get_state(spftree->area->flex_algos,
-                                spftree->algorithm)) {
-               if (!CHECK_FLAG(spftree->flags, F_SPFTREE_DISABLED)) {
-                       isis_spftree_clear(spftree);
-                       SET_FLAG(spftree->flags, F_SPFTREE_DISABLED);
+       if (flex_algo_id_valid(spftree->algorithm)) {
+               flex_algo_enabled = isis_flex_algo_elected_supported(
+                       spftree->algorithm, spftree->area);
+               if (flex_algo_enabled !=
+                   flex_algo_get_state(spftree->area->flex_algos,
+                                       spftree->algorithm)) {
+                       /* actual state is inconsistent with local LSP */
                        lsp_regenerate_schedule(spftree->area,
                                                spftree->area->is_type, 0);
+                       goto out;
+               }
+               if (!flex_algo_enabled) {
+                       if (!CHECK_FLAG(spftree->flags, F_SPFTREE_DISABLED)) {
+                               isis_spftree_clear(spftree);
+                               SET_FLAG(spftree->flags, F_SPFTREE_DISABLED);
+                               lsp_regenerate_schedule(spftree->area,
+                                                       spftree->area->is_type,
+                                                       0);
+                       }
+                       goto out;
                }
-               goto out;
        }
 #endif /* ifndef FABRICD */
 
index e3ace305822bf4facb73f81d725048a4f15aa9b5..2010829035a181b6747f3e4cac902024246c3450 100644 (file)
@@ -22,8 +22,7 @@
 #include "ldp_debug.h"
 
 static void     ifp2kif(struct interface *, struct kif *);
-static void     ifc2kaddr(struct interface *, struct connected *,
-                   struct kaddr *);
+static void     ifc2kaddr(struct interface *, struct connected *, struct kaddr *);
 static int      ldp_zebra_send_mpls_labels(int, struct kroute *);
 static int      ldp_router_id_update(ZAPI_CALLBACK_ARGS);
 static int      ldp_interface_address_add(ZAPI_CALLBACK_ARGS);
@@ -295,8 +294,7 @@ kmpw_add(struct zapi_pw *zpw)
        debug_zebra_out("pseudowire %s nexthop %s (add)",
            zpw->ifname, log_addr(zpw->af, (union ldpd_addr *)&zpw->nexthop));
 
-       return zebra_send_pw(zclient, ZEBRA_PW_ADD, zpw)
-              == ZCLIENT_SEND_FAILURE;
+       return zebra_send_pw(zclient, ZEBRA_PW_ADD, zpw) == ZCLIENT_SEND_FAILURE;
 }
 
 int
@@ -305,8 +303,7 @@ kmpw_del(struct zapi_pw *zpw)
        debug_zebra_out("pseudowire %s nexthop %s (del)",
            zpw->ifname, log_addr(zpw->af, (union ldpd_addr *)&zpw->nexthop));
 
-       return zebra_send_pw(zclient, ZEBRA_PW_DELETE, zpw)
-              == ZCLIENT_SEND_FAILURE;
+       return zebra_send_pw(zclient, ZEBRA_PW_DELETE, zpw) == ZCLIENT_SEND_FAILURE;
 }
 
 int
@@ -316,8 +313,7 @@ kmpw_set(struct zapi_pw *zpw)
            zpw->ifname, log_addr(zpw->af, (union ldpd_addr *)&zpw->nexthop),
            zpw->local_label, zpw->remote_label);
 
-       return zebra_send_pw(zclient, ZEBRA_PW_SET, zpw)
-              == ZCLIENT_SEND_FAILURE;
+       return zebra_send_pw(zclient, ZEBRA_PW_SET, zpw) == ZCLIENT_SEND_FAILURE;
 }
 
 int
@@ -326,8 +322,7 @@ kmpw_unset(struct zapi_pw *zpw)
        debug_zebra_out("pseudowire %s nexthop %s (unset)",
            zpw->ifname, log_addr(zpw->af, (union ldpd_addr *)&zpw->nexthop));
 
-       return zebra_send_pw(zclient, ZEBRA_PW_UNSET, zpw)
-              == ZCLIENT_SEND_FAILURE;
+       return zebra_send_pw(zclient, ZEBRA_PW_UNSET, zpw) == ZCLIENT_SEND_FAILURE;
 }
 
 void
index ec6d8be3d5d6569da050ccbc5db0f0f3e1cee9e9..6b7e475d7f62dbdf3308b12dc61b623b7f3ec392 100644 (file)
@@ -89,8 +89,7 @@ ldp_create_socket(int af, enum socket_type type)
                        return (-1);
                }
                if (type == LDP_SOCKET_DISC) {
-                       if (sock_set_ipv4_mcast_ttl(fd,
-                           IP_DEFAULT_MULTICAST_TTL) == -1) {
+                       if (sock_set_ipv4_mcast_ttl(fd, IP_DEFAULT_MULTICAST_TTL) == -1) {
                                close(fd);
                                return (-1);
                        }
@@ -141,7 +140,7 @@ ldp_create_socket(int af, enum socket_type type)
                                close(fd);
                                return (-1);
                        }
-                       if (!(ldpd_conf->ipv6.flags & F_LDPD_AF_NO_GTSM)) {
+                       if (!CHECK_FLAG(ldpd_conf->ipv6.flags, F_LDPD_AF_NO_GTSM)) {
                                /* ignore any possible error */
                                sock_set_ipv6_minhopcount(fd, 255);
                        }
@@ -171,8 +170,7 @@ ldp_create_socket(int af, enum socket_type type)
 
 #ifdef __OpenBSD__
                opt = 1;
-               if (setsockopt(fd, IPPROTO_TCP, TCP_MD5SIG, &opt,
-                   sizeof(opt)) == -1) {
+               if (setsockopt(fd, IPPROTO_TCP, TCP_MD5SIG, &opt, sizeof(opt)) == -1) {
                        if (errno == ENOPROTOOPT) {     /* system w/o md5sig */
                                log_warnx("md5sig not available, disabling");
                                sysdep.no_md5sig = 1;
@@ -196,7 +194,7 @@ sock_set_nonblock(int fd)
        if ((flags = fcntl(fd, F_GETFL, 0)) == -1)
                fatal("fcntl F_GETFL");
 
-       flags |= O_NONBLOCK;
+       SET_FLAG(flags, O_NONBLOCK);
 
        if (fcntl(fd, F_SETFL, flags) == -1)
                fatal("fcntl F_SETFL");
@@ -210,7 +208,7 @@ sock_set_cloexec(int fd)
        if ((flags = fcntl(fd, F_GETFD, 0)) == -1)
                fatal("fcntl F_GETFD");
 
-       flags |= FD_CLOEXEC;
+       SET_FLAG(flags, FD_CLOEXEC);
 
        if (fcntl(fd, F_SETFD, flags) == -1)
                fatal("fcntl F_SETFD");
@@ -222,16 +220,14 @@ sock_set_recvbuf(int fd)
        int     bsize;
 
        bsize = 65535;
-       while (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &bsize,
-           sizeof(bsize)) == -1)
+       while (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &bsize, sizeof(bsize)) == -1)
                bsize /= 2;
 }
 
 int
 sock_set_reuse(int fd, int enable)
 {
-       if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &enable,
-           sizeof(int)) < 0) {
+       if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0) {
                log_warn("%s: error setting SO_REUSEADDR", __func__);
                return (-1);
        }
@@ -244,8 +240,7 @@ sock_set_bindany(int fd, int enable)
 {
 #ifdef HAVE_SO_BINDANY
        frr_with_privs(&ldpd_privs) {
-               if (setsockopt(fd, SOL_SOCKET, SO_BINDANY, &enable,
-                              sizeof(int)) < 0) {
+               if (setsockopt(fd, SOL_SOCKET, SO_BINDANY, &enable, sizeof(int)) < 0) {
                        log_warn("%s: error setting SO_BINDANY", __func__);
                        return (-1);
                }
@@ -259,8 +254,7 @@ sock_set_bindany(int fd, int enable)
        return (0);
 #elif defined(IP_BINDANY)
        frr_with_privs(&ldpd_privs) {
-               if (setsockopt(fd, IPPROTO_IP, IP_BINDANY, &enable, sizeof(int))
-                   < 0) {
+               if (setsockopt(fd, IPPROTO_IP, IP_BINDANY, &enable, sizeof(int)) < 0) {
                        log_warn("%s: error setting IP_BINDANY", __func__);
                        return (-1);
                }
@@ -343,10 +337,8 @@ sock_set_ipv4_ucast_ttl(int fd, int ttl)
 int
 sock_set_ipv4_mcast_ttl(int fd, uint8_t ttl)
 {
-       if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL,
-           (char *)&ttl, sizeof(ttl)) < 0) {
-               log_warn("%s: error setting IP_MULTICAST_TTL to %d",
-                   __func__, ttl);
+       if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, (char *)&ttl, sizeof(ttl)) < 0) {
+               log_warn("%s: error setting IP_MULTICAST_TTL to %d", __func__, ttl);
                return (-1);
        }
 
@@ -358,8 +350,7 @@ sock_set_ipv4_mcast_ttl(int fd, uint8_t ttl)
 int
 sock_set_ipv4_pktinfo(int fd, int enable)
 {
-       if (setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &enable,
-           sizeof(enable)) < 0) {
+       if (setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &enable, sizeof(enable)) < 0) {
                log_warn("%s: error setting IP_PKTINFO", __func__);
                return (-1);
        }
@@ -370,8 +361,7 @@ sock_set_ipv4_pktinfo(int fd, int enable)
 int
 sock_set_ipv4_recvdstaddr(int fd, int enable)
 {
-       if (setsockopt(fd, IPPROTO_IP, IP_RECVDSTADDR, &enable,
-           sizeof(enable)) < 0) {
+       if (setsockopt(fd, IPPROTO_IP, IP_RECVDSTADDR, &enable, sizeof(enable)) < 0) {
                log_warn("%s: error setting IP_RECVDSTADDR", __func__);
                return (-1);
        }
@@ -409,8 +399,7 @@ sock_set_ipv4_mcast_loop(int fd)
 int
 sock_set_ipv6_dscp(int fd, int dscp)
 {
-       if (setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &dscp,
-           sizeof(dscp)) < 0) {
+       if (setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &dscp, sizeof(dscp)) < 0) {
                log_warn("%s: error setting IPV6_TCLASS", __func__);
                return (-1);
        }
@@ -421,8 +410,7 @@ sock_set_ipv6_dscp(int fd, int dscp)
 int
 sock_set_ipv6_pktinfo(int fd, int enable)
 {
-       if (setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &enable,
-           sizeof(enable)) < 0) {
+       if (setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &enable, sizeof(enable)) < 0) {
                log_warn("%s: error setting IPV6_RECVPKTINFO", __func__);
                return (-1);
        }
index 85600beb0e3dee7d2a9d082463d49a786017314f..c81f63942bde51a7ef79e202b2a92f746654f599 100755 (executable)
@@ -38,6 +38,7 @@ import sys
 import pytest
 import json
 import tempfile
+from copy import deepcopy
 from functools import partial
 
 # Save the Current Working Directory to find configuration files.
@@ -111,8 +112,12 @@ def setup_module(mod):
 
     # For all registered routers, load the zebra configuration file
     for rname, router in router_list.items():
-        router.load_config( TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)))
-        router.load_config( TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname)))
+        router.load_config(
+            TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
+        )
+        router.load_config(
+            TopoRouter.RD_ISIS, os.path.join(CWD, "{}/isisd.conf".format(rname))
+        )
     tgen.start_router()
 
 
@@ -130,6 +135,30 @@ def setup_testcase(msg):
     return tgen
 
 
+def router_json_cmp_exact_filter(router, cmd, expected):
+    output = router.vtysh_cmd(cmd)
+    logger.info("{}: {}\n{}".format(router.name, cmd, output))
+
+    json_output = json.loads(output)
+    router_output = deepcopy(json_output)
+
+    # filter out dynamic data from "show mpls table"
+    for label, data in json_output.items():
+        if "1500" in label:
+            # filter out SR local labels
+            router_output.pop(label)
+            continue
+        nexthops = data.get("nexthops", [])
+        for i in range(len(nexthops)):
+            if "fe80::" in nexthops[i].get("nexthop"):
+                router_output.get(label).get("nexthops")[i].pop("nexthop")
+            elif "." in nexthops[i].get("nexthop"):
+                # IPv4, just checking the nexthop
+                router_output.get(label).get("nexthops")[i].pop("interface")
+
+    return topotest.json_cmp(router_output, expected, exact=True)
+
+
 def router_compare_json_output(rname, command, reference):
     "Compare router JSON output"
 
@@ -139,7 +168,9 @@ def router_compare_json_output(rname, command, reference):
     expected = json.loads(reference)
 
     # Run test function until we get an result. Wait at most 60 seconds.
-    test_func = partial(topotest.router_json_cmp, tgen.gears[rname], command, expected)
+    test_func = partial(
+        router_json_cmp_exact_filter, tgen.gears[rname], command, expected
+    )
     _, diff = topotest.run_and_expect(test_func, None, count=120, wait=0.5)
     assertmsg = '"{}" JSON output mismatches the expected result'.format(rname)
     assert diff is None, assertmsg
@@ -153,9 +184,13 @@ def router_compare_output(rname, command, reference):
     tgen = get_topogen()
 
     # Run test function until we get an result. Wait at most 60 seconds.
-    test_func = partial(topotest.router_output_cmp, tgen.gears[rname], command, reference)
+    test_func = partial(
+        topotest.router_output_cmp, tgen.gears[rname], command, reference
+    )
     result, diff = topotest.run_and_expect(test_func, "", count=120, wait=0.5)
-    assertmsg = '{} command "{}" output mismatches the expected result:\n{}'.format(rname, command, diff)
+    assertmsg = '{} command "{}" output mismatches the expected result:\n{}'.format(
+        rname, command, diff
+    )
     assert result, assertmsg
 
 
@@ -176,11 +211,11 @@ def test_step1_mpls_lfib():
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][1]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][1]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][1]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][1]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -207,17 +242,18 @@ def test_step2_mpls_lfib():
          router isis 1
           flex-algo 203
            no advertise-definition
-        """)
+        """
+    )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][2]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][2]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][2]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][2]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -244,17 +280,18 @@ def test_step3_mpls_lfib():
          router isis 1
           flex-algo 203
            no advertise-definition
-        """)
+        """
+    )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][3]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][3]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][3]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][3]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -281,17 +318,18 @@ def test_step4_mpls_lfib():
          router isis 1
           flex-algo 203
            advertise-definition
-        """)
+        """
+    )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][4]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][4]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][4]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][4]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -319,17 +357,18 @@ def test_step5_mpls_lfib():
          router isis 1
           flex-algo 203
            advertise-definition
-        """)
+        """
+    )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][5]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][5]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][5]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][5]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -360,17 +399,18 @@ def test_step6_mpls_lfib():
              router isis 1
               flex-algo 203
                no dataplane sr-mpls
-            """)
+            """
+        )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][6]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][6]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][6]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][6]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -400,17 +440,19 @@ def test_step7_mpls_lfib():
             configure terminal
              router isis 1
               no flex-algo 203
-            """)
+            """
+        )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][7]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][7]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][7]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][7]["show_mpls_table.ref"]
+        )
+
 
 #
 # Step 8
@@ -440,7 +482,8 @@ def test_step8_mpls_lfib():
            advertise-definition
            affinity exclude-any green
            dataplane sr-mpls
-        """)
+        """
+    )
 
     tgen.gears["rt2"].vtysh_cmd(
         """
@@ -450,7 +493,8 @@ def test_step8_mpls_lfib():
            advertise-definition
            affinity exclude-any green
            dataplane sr-mpls
-        """)
+        """
+    )
 
     tgen.gears["rt3"].vtysh_cmd(
         """
@@ -458,17 +502,18 @@ def test_step8_mpls_lfib():
          router isis 1
           flex-algo 203
           dataplane sr-mpls
-        """)
+        """
+    )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][8]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][8]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][8]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][8]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -494,17 +539,18 @@ def test_step9_mpls_lfib():
          router isis 1
           no segment-routing prefix 1.1.1.1/32 algorithm 203 index 301
           no segment-routing prefix 2001:db8:1000::1/128 algorithm 203 index 1301
-        """)
+        """
+    )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][9]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][9]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][9]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][9]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -530,17 +576,18 @@ def test_step10_mpls_lfib():
          router isis 1
           segment-routing prefix 1.1.1.1/32 algorithm 203 index 301
           segment-routing prefix 2001:db8:1000::1/128 algorithm 203 index 1301
-        """)
+        """
+    )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][10]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][10]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][10]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][10]["show_mpls_table.ref"]
+        )
 
 
 #
@@ -565,17 +612,18 @@ def test_step11_mpls_lfib():
          router isis 1
           segment-routing prefix 1.1.1.1/32 algorithm 203 index 311
           segment-routing prefix 2001:db8:1000::1/128 algorithm 203 index 1311
-        """)
+        """
+    )
 
     # For Developers
     # tgen.mininet_cli()
     for rname in ["rt1", "rt2", "rt3"]:
         router_compare_output(
-            rname, "show isis flex-algo",
-            outputs[rname][11]["show_isis_flex_algo.ref"])
+            rname, "show isis flex-algo", outputs[rname][11]["show_isis_flex_algo.ref"]
+        )
         router_compare_json_output(
-            rname, "show mpls table json",
-            outputs[rname][11]["show_mpls_table.ref"])
+            rname, "show mpls table json", outputs[rname][11]["show_mpls_table.ref"]
+        )
 
 
 if __name__ == "__main__":