summaryrefslogtreecommitdiffstats
path: root/isisd/isis_nb.h
diff options
context:
space:
mode:
authorlynne <lynne@voltanet.io>2020-12-24 19:29:42 +0100
committerlynne <lynne@voltanet.io>2021-01-20 15:24:35 +0100
commitf3abc412a56a9cd3b6efbf16637231d157c73e7d (patch)
tree8b4c1435b6f354600290ad64ea56ca24ddc471d2 /isisd/isis_nb.h
parentMerge pull request #7832 from pjdruddy/snmp-test-infra (diff)
downloadfrr-f3abc412a56a9cd3b6efbf16637231d157c73e7d.tar.xz
frr-f3abc412a56a9cd3b6efbf16637231d157c73e7d.zip
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 <lynne@voltanet.io>
Diffstat (limited to 'isisd/isis_nb.h')
-rw-r--r--isisd/isis_nb.h8
1 files changed, 6 insertions, 2 deletions
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,