]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: set type for newly created interfaces 9794/head
authorIgor Ryzhov <iryzhov@nfware.com>
Fri, 8 Oct 2021 21:22:31 +0000 (00:22 +0300)
committermergify-bot <noreply@mergify.io>
Mon, 11 Oct 2021 12:58:23 +0000 (12:58 +0000)
Currently, the ll_type is set only in `netlink_interface` which is
executed only during startup. If the interface is created when the FRR
is already running, the type is not stored.

Fixes #1164.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 8975bbbdd6885b8a99be4893291a82150c254452)

zebra/if_netlink.c

index 28a64407e53e1eb9b74ae6ec0c4b0f52c9458d70..e86fdc9e4f62991bff78dd1499366cda3852c6d0 100644 (file)
@@ -1832,6 +1832,8 @@ int netlink_link_change(struct nlmsghdr *h, ns_id_t ns_id, int startup)
                        /* Update link. */
                        zebra_if_update_link(ifp, link_ifindex, ns_id);
 
+                       ifp->ll_type =
+                               netlink_to_zebra_link_type(ifi->ifi_type);
                        netlink_interface_update_hw_addr(tb, ifp);
 
                        /* Inform clients, install any configured addresses. */
@@ -1899,6 +1901,8 @@ int netlink_link_change(struct nlmsghdr *h, ns_id_t ns_id, int startup)
                        /* Update link. */
                        zebra_if_update_link(ifp, link_ifindex, ns_id);
 
+                       ifp->ll_type =
+                               netlink_to_zebra_link_type(ifi->ifi_type);
                        netlink_interface_update_hw_addr(tb, ifp);
 
                        if (if_is_no_ptm_operative(ifp)) {