From f3abc412a56a9cd3b6efbf16637231d157c73e7d Mon Sep 17 00:00:00 2001 From: lynne Date: Thu, 24 Dec 2020 13:29:42 -0500 Subject: isisd: Fix Attach-bit processing The purpose of the Attach-bit is to accomplish inter-area routing. In other venders, the Attached-bit is automatically set when a router is configured as a L1|L2 router and has two adjacencies. When a L1 router receives a LSP with the Attached-bit set it is supposed to create a default route pointing toward the neighbor to provide a default path out of the L1 area. ISIS implementation has been fixed to support the above definition: Setting the Attach-bit is now the default behavior and we allow the user to turn it off. We will only set the Default Attach-bit when creating a L1 LSP, if we are a L1|L2 router and have a L2 adjacency up. When a L1 router receives a LSP with the Attach-bit set, we will create a default route pointing to the L1|L2 router as the nexthop. The default route will be removed if the LSP is received with the Attach-bit cleared. Signed-off-by: Lynne Morrison --- isisd/isis_nb.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'isisd/isis_nb.h') diff --git a/isisd/isis_nb.h b/isisd/isis_nb.h index 679bc6345..8ecd8134e 100644 --- a/isisd/isis_nb.h +++ b/isisd/isis_nb.h @@ -34,6 +34,8 @@ int isis_instance_is_type_modify(struct nb_cb_modify_args *args); int isis_instance_area_address_create(struct nb_cb_create_args *args); int isis_instance_area_address_destroy(struct nb_cb_destroy_args *args); int isis_instance_dynamic_hostname_modify(struct nb_cb_modify_args *args); +int isis_instance_attached_send_modify(struct nb_cb_modify_args *args); +int isis_instance_attached_receive_modify(struct nb_cb_modify_args *args); int isis_instance_attached_modify(struct nb_cb_modify_args *args); int isis_instance_overload_modify(struct nb_cb_modify_args *args); int isis_instance_metric_style_modify(struct nb_cb_modify_args *args); @@ -424,8 +426,10 @@ void cli_show_isis_is_type(struct vty *vty, struct lyd_node *dnode, bool show_defaults); void cli_show_isis_dynamic_hostname(struct vty *vty, struct lyd_node *dnode, bool show_defaults); -void cli_show_isis_attached(struct vty *vty, struct lyd_node *dnode, - bool show_defaults); +void cli_show_isis_attached_send(struct vty *vty, struct lyd_node *dnode, + bool show_defaults); +void cli_show_isis_attached_receive(struct vty *vty, struct lyd_node *dnode, + bool show_defaults); void cli_show_isis_overload(struct vty *vty, struct lyd_node *dnode, bool show_defaults); void cli_show_isis_metric_style(struct vty *vty, struct lyd_node *dnode, -- cgit v1.2.3