diff options
author | lynne <lynne@voltanet.io> | 2020-12-24 19:29:42 +0100 |
---|---|---|
committer | lynne <lynne@voltanet.io> | 2021-01-20 15:24:35 +0100 |
commit | f3abc412a56a9cd3b6efbf16637231d157c73e7d (patch) | |
tree | 8b4c1435b6f354600290ad64ea56ca24ddc471d2 /isisd/isis_nb.h | |
parent | Merge pull request #7832 from pjdruddy/snmp-test-infra (diff) | |
download | frr-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.h | 8 |
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, |