summaryrefslogtreecommitdiff
path: root/isisd/isis_lsp.c
AgeCommit message (Collapse)Author
2024-10-10Merge pull request #17044 from baozhen-H3C/202410091476Donald Sharp
isisd: Lsp fragments will delete the corresponding dyn_cache entry.
2024-10-09isisd: Lsp fragments will delete the corresponding dyn_cache entry.baozhen-H3C
When LSP fragments age, isis_dynhn_remove() is also called to remove the corresponding dyhn_cache entries. Signed-off-by: baozhen-H3C <bao.zhen@h3c.com>
2024-09-19isisd: Remove deprecated JSON fieldsDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-07-11isis, lib: add isis srv6 end sid to ls_prefixPhilippe Guibert
According to draft-ietf-lsr-isis-srv6-extensions draft, the End SID should be available in link state prefix information. Add the SID information in the link state prefix, by getting the END SID from the locator TLV information. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-07-09Merge pull request #16241 from zhou-run/202406191740Russ White
isisd: The neighbor entry still displays the deleted hostname of the neighbor.
2024-07-08isisd: The neighbor entry still displays the deleted hostname of the neighborzhou-run
1. The lsp_update_data() function will check for the presence of the ISIS_TLV_DYNAMIC_HOSTNAME in the LSP, and then call isis_dynhn_insert() to add a hostname entry corresponding to the LSP ID. However, when the ISIS_TLV_DYNAMIC_HOSTNAME is not present in the LSP, the hostname entry corresponding to the LSP ID should also be deleted. 2. The command “show isis neighbor” invokes isis_adj_name() to display the System ID or hostname, but it does not check the area->dynhostname flag. 3. When the LSP expires and is removed, the corresponding hostname entry should also be deleted. 4. The TLV for LSP fragmentation will not contain the hostname and should be skipped. Signed-off-by: zhou-run <zhou.run@h3c.com>
2024-06-18isisd: Deal with SRv6 locator instead of chunkCarmine Scarpitta
Currently, when SRv6 is enabled in IS-IS, IS-IS requests a locator chunk from Zebra. Zebra assigns a locator chunk to IS-IS, and then IS-IS can allocate SIDs from the locator chunk. Recently, the implementation of SRv6 in Zebra has been improved, and a new API has been introduced for obtaining/releasing the SIDs. Now, the daemons no longer need to request a chunk. Instead, the daemons interact with Zebra to obtain information about the locator and subsequently to allocate/release the SIDs. This commit extends IS-IS to use the new SRv6 API. In particular, it removes the chunk throughout the IS-IS code and modifies IS-IS to request/save/advertise the locator instead of the chunk. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2024-06-06Merge pull request #11906 from louis-6wind/show_isis_db_jsonRuss White
isisd: fix show isis database [detail] json
2024-05-28isisd: fix crash when deactivating ISIS adjacency on the interface.zhou-run
1. When the command "no <ip|ipv6> router isis WORD" is executed on the interface, it invokes list_delete_all_node to iterate and release the memory of all nodes in the cirtcuit->u.bc.adjdb[1] linked list. However, the nodes are not unlinked during this traversal process, leading to the call of *list->del to delete the data of the linked list nodes. 2. For ISIS, deleting the data of the linked list nodes is done by calling isis_delete_adj. Subsequently, isis_level2_adj_up will be called to iterate and query the cirtcuit->u.bc.adjdb[1] linked list. If there are many neighbors on this interface, accessing the memory of the released linked list nodes may occur. 3. Not limited to ISIS, if the linked list is not unlinked during the deletion of all nodes in process 1, *list->del should not be allowed to iterate through the list again. The backtrace is as follows: (gdb) bt at isisd/isis_csm.c:196 context=<optimized out>) at lib/northbound.c:1131 errmsg_len=errmsg_len@entry=8192) at lib/northbound.c:1356 at lib/northbound.c:1473 errmsg=errmsg@entry=0x7ffc0ced38d0 "", errmsg_len=errmsg_len@entry=8192) at lib/northbound.c:906 comment=comment@entry=0x0, transaction_id=transaction_id@entry=0x0, errmsg=errmsg@entry=0x7ffc0ced38d0 "", errmsg_len=8192) at lib/northbound.c:938 filter=FILTER_RELAXED) at lib/command.c:971 at lib/command.c:1030 vtysh=vtysh@entry=0) at lib/command.c:1198 at isisd/isis_csm.c:196 context=<optimized out>) at lib/northbound.c:1131 errmsg_len=errmsg_len@entry=8192) at lib/northbound.c:1356 at lib/northbound.c:1473 errmsg=errmsg@entry=0x7ffc0ced38d0 "", errmsg_len=errmsg_len@entry=8192) at lib/northbound.c:906 comment=comment@entry=0x0, transaction_id=transaction_id@entry=0x0, errmsg=errmsg@entry=0x7ffc0ced38d0 "", errmsg_len=8192) at lib/northbound.c:938 filter=FILTER_RELAXED) at lib/command.c:971 at lib/command.c:1030 vtysh=vtysh@entry=0) at lib/command.c:1198 0 0x00007f7d6e541fe1 in raise () from /lib/x86_64-linux-gnu/libpthread.so.0 1 0x00007f7d6e63188c in core_handler (signo=11, siginfo=0x7ffc0ced2630, context=<optimized out>) at lib/sigevent.c:262 2 <signal handler called> 3 0x00005647f5b11568 in isis_level2_adj_up (area=area@entry=0x5647f7c89830) at isisd/isis_lsp.c:423 4 0x00005647f5b14073 in isis_reset_attach_bit (adj=0x5647f7cad690) at isisd/isis_lsp.c:474 5 lsp_handle_adj_state_change (adj=0x5647f7cad690) at isisd/isis_lsp.c:2162 6 0x00005647f5b53675 in hook_call_isis_adj_state_change_hook (adj=adj@entry=0x5647f7cad690) at isisd/isis_adjacency.c:152 7 0x00005647f5b536f3 in isis_delete_adj (arg=0x5647f7cad690) at isisd/isis_adjacency.c:167 8 0x00007f7d6e5fe003 in list_delete_all_node (list=0x5647f7c88060) at lib/linklist.c:316 9 0x00007f7d6e5fe069 in list_delete (list=list@entry=0x5647f7c84708) at lib/linklist.c:326 10 0x00005647f5b0872e in isis_circuit_down (circuit=0x5647f7c84620) at isisd/isis_circuit.c:835 11 0x00005647f5b09f81 in isis_csm_state_change (event=event@entry=IF_DOWN_FROM_Z, circuit=circuit@entry=0x5647f7c84620, arg=arg@entry=0x5647f7c7f7a0) at isisd/isis_csm.c:196 12 0x00005647f5b083b0 in isis_circuit_disable (circuit=0x5647f7c84620) at isisd/isis_circuit.c:100 13 isis_circuit_del (circuit=0x5647f7c84620) at isisd/isis_circuit.c:200 14 0x00005647f5b434f5 in lib_interface_isis_destroy (args=<optimized out>) at isisd/isis_nb_config.c:2612 15 0x00007f7d6e61347a in nb_callback_destroy (errmsg_len=2, errmsg=0x7ffc0ced38d0 "", dnode=0x5647f7c948f0, event=NB_EV_APPLY, nb_node=<optimized out>, context=<optimized out>) at lib/northbound.c:1131 16 nb_callback_configuration (context=<optimized out>, event=event@entry=NB_EV_APPLY, change=change@entry=0x5647f7cb6680, errmsg=errmsg@entry=0x7ffc0ced38d0 "", errmsg_len=errmsg_len@entry=8192) at lib/northbound.c:1356 17 0x00007f7d6e6138b7 in nb_transaction_process (errmsg_len=8192, errmsg=0x7ffc0ced38d0 "", transaction=0x5647f7c94080, event=NB_EV_APPLY) at lib/northbound.c:1473 18 nb_candidate_commit_apply (transaction=0x5647f7c94080, save_transaction=save_transaction@entry=true, transaction_id=transaction_id@entry=0x0, errmsg=errmsg@entry=0x7ffc0ced38d0 "", errmsg_len=errmsg_len@entry=8192) at lib/northbound.c:906 19 0x00007f7d6e61403d in nb_candidate_commit (context=context@entry=0x7ffc0ced38c0, candidate=<optimized out>, save_transaction=save_transaction@entry=true, comment=comment@entry=0x0, transaction_id=transaction_id@entry=0x0, errmsg=errmsg@entry=0x7ffc0ced38d0 "", errmsg_len=8192) at lib/northbound.c:938 20 0x00007f7d6e616ec9 in nb_cli_classic_commit (vty=0x5647f7cae160) at lib/northbound_cli.c:64 21 0x00007f7d6e6176a8 in nb_cli_apply_changes (vty=0x5647f7cae160, xpath_base_fmt=<optimized out>) at lib/northbound_cli.c:268 22 0x00007f7d6e5d918e in cmd_execute_command_real (vline=vline@entry=0x5647f7cae140, vty=vty@entry=0x5647f7cae160, cmd=cmd@entry=0x0, up_level=up_level@entry=0, filter=FILTER_RELAXED) at lib/command.c:971 23 0x00007f7d6e5d951d in cmd_execute_command (vline=vline@entry=0x5647f7cae140, vty=vty@entry=0x5647f7cae160, cmd=cmd@entry=0x0, vtysh=vtysh@entry=0) at lib/command.c:1030 24 0x00007f7d6e5d9770 in cmd_execute (vty=vty@entry=0x5647f7cae160, cmd=cmd@entry=0x5647f7cb48a0 "no ip router isis 10", matched=matched@entry=0x0, vtysh=vtysh@entry=0) at lib/command.c:1198 25 0x00007f7d6e6485e6 in vty_command (vty=vty@entry=0x5647f7cae160, buf=0x5647f7cb48a0 "no ip router isis 10") at lib/vty.c:483 26 0x00007f7d6e648d01 in vty_execute (vty=vty@entry=0x5647f7cae160) at lib/vty.c:1246 27 0x00007f7d6e64ba40 in vtysh_read (thread=<optimized out>) at lib/vty.c:2090 28 0x00007f7d6e64348d in thread_call (thread=thread@entry=0x7ffc0ced8310) at lib/thread.c:1958 29 0x00007f7d6e5fd4a8 in frr_run (master=0x5647f79a43d0) at lib/libfrr.c:1184 30 0x00005647f5b050f3 in main (argc=5, argv=<optimized out>, envp=<optimized out>) at isisd/isis_main.c:273 (gdb) f 3 423 isisd/isis_lsp.c: No such file or directory. (gdb) p node $1 = (struct listnode *) 0x110 (gdb) f 8 316 lib/linklist.c: No such file or directory. (gdb) p list->head->data $2 = (void *) 0x5647f7cabf20 (gdb) p list->head->next->data $3 = (void *) 0x5647f7c9bb60 (gdb) p list->head->next->next->data Cannot access memory at address 0x120 (gdb) p list->head->next->next $4 = (struct listnode *) 0x110 The backtrace provided above pertains to version 8.2.2, but it seems that the same issue exists in the code of the master branch as well. isis_reset_attach_bit() is useless because lsp_handle_adj_state_change() unconditionally calls lsp_regenerate_schedule. Signed-off-by: zhou-run <166502045+zhou-run@users.noreply.github.com>
2024-05-23isisd: fix show database json formatLouis Scalbert
"show isis database [detail] json" returns invalid or incorrect JSON that is difficult to parse. Fix key with '-' characters, add booleans and null data when possible. Deprecate the old format. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-05-07isisd: fix json display for database commandanlan_cs
The current json display lost a lot of LSPs, added them. Fixed the json format for two commands: "show isis database detail json" "show isis database json" Signed-off-by: anlan_cs <anlan_cs@tom.com>
2023-12-04isisd: Fix dislaying LSP IDlynnemorrison
If "no hostname dynamic" command is used this fix correctly displays the LSP ID. Signed-off-by: Lynne Morrison <lynne.morrison@ibm.com>
2023-09-11isisd: Advertise SRv6 Locator in Prefix Reach TLVCarmine Scarpitta
According to RFC 9352 section #5, the SRv6 Locators associated with algorithms 0 and 1 should be also advertised in a Prefix Reachability TLV (236 or 237) to allow legacy routers (i.e., routers that do not support SRv6) installing a forwarding entry for algorithms 0 and 1 SRv6 traffic. This commits extend IS-IS to advertise SRv6 Locators in IPv6 Reachability TLV. Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-09-11isisd: Add SRv6 Locator TLV to the LSPCarmine Scarpitta
Add the SRv6 Locator TLV and its Sub-TLV and Sub-Sub-TLVs to the LSP. Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-09-11isisd: Add Node MSD Sub-TLV (SRv6) to the LSPsCarmine Scarpitta
Add Node MSD Sub-TLV containing the SRv6 MSDs to the Router Capabilities TLV in the LSPs generated with the `lsp_build()` function. Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-08-04isisd: Add SRv6 Capabilities Sub-TLV to the LSPsCarmine Scarpitta
Add SRv6 Capabilities Sub-TLV to the Router Capabilities TLV in the LSPs generated with the `lsp_build()` function. Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-04-28isisd: fix disabled flex-algo on race conditionLouis Scalbert
A particular flex-algo algorithm may remain in disabled state after configuring it if its flex-algo definition is being spread in the area. It happens sometimes that, in isis_sr_flex_algo_topo1 topotest, r3 flex-algo 203 is disabled on test8. It depends on the following sequence on r3: 1. a LSP containing the flex-algo 203 definition is received from either r1 or r2 (or both). 2. the local LSP is rebuilt by lsp_build() because of the flex-algo 203 configuration 3. isis_run_spf() recomputes the algo 203 SPF tree A 1. 2. 3. sequence results in a working test whereas 2. 1. 3. is not working. The second case issue is because of an inconsistent flex-algo definition state between the following: - in lsp_build(), isis_flex_algo_elected_supported_local_fad() returns false because no flex-algo definition is known. - in isis_run_spf(), isis_flex_algo_elected_supported() returns true because a flex-algo definition is found. Set a flex-algo state lsp_build() depending on flex-algo definition existence that is used later in isis_run_spf(). Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-18isisd: add isis flex-algo lsp advertisementHiroki Shirokura
Deal with the packing and unpacking of following Flex-Algo Sub-Sub-TLVs: - Router Capability (already defined TLV 242) - List of the Flex-Algo Definitions (Sub-TLV 26) - Exclude admin group (Sub-Sub-TLV 1) - Include-any admin group (Sub-Sub-TLV 2) - Include-all admin group (Sub-Sub-TLV 3) - Flags (for prefix-metric) (Sub-Sub-TLV 4) This commit splits data into multiple router capability TLVs if needed because a TLV cannot contains more than 255 bytes. Note that the list of SR Algorithm (Sub-TLV 19) within Router Capability (TLV 242) is already set in a previous commit. Signed-off-by: Hiroki Shirokura <hiroki.shirokura@linecorp.com> Signed-off-by: Eric Kinzie <ekinzie@labn.net> Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-18isisd: refactor IP reachability lsp buildLouis Scalbert
Refactor IP reachability lsp build to comply with checkpatch: > WARNING: Too many leading tabs - consider code refactoring No code logic change. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-18isisd: update isis_tlvs_add_*_reach() with multi algorithmHiroki Shirokura
isis_tlvs_add_extended_ip_reach adds IS-IS Extended IP reachability to the LSP. In this case, if the pcfg argument is not NULL, you can add IGP Prefix-SID as its sub tlv. Before this commit, only one Prefix-SID can be added. After this commit, the argument is not a single pointer but an array of pointers, and multiple Prefix-SIDs can be added. This feature is necessary because Flex-Algo requires multiple Prefix-SIDs for each Algorithm. Signed-off-by: Hiroki Shirokura <hiroki.shirokura@linecorp.com> Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-18isisd: update SR_ALGORITHM_COUNT to 256Hiroki Shirokura
Before this commit, SR_ALGORITHM_COUNT was set to 2, and each was hardcoded with router capability tlv. When Flex-Algo is supported, SR-Algorithm may be variably supported up to 256. Signed-off-by: Hiroki Shirokura <hiroki.shirokura@linecorp.com> Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-17isisd: update struct sr_prefix_cfg with algorithm idHiroki Shirokura
The information in prefix-sid has a new property called algorithm id. This is used to identify the algorithm that separates it in the same IGP network. This is used in Flex-Algo.In all other cases, the algorithm id is basically 0. Signed-off-by: Hiroki Shirokura <hiroki.shirokura@linecorp.com> Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-11Merge pull request #12698 from Orange-OpenSource/isisdRuss White
Isisd/Lib: Add new printfrr format facility for Intermediate System ID
2023-03-24*: Convert event.h to frrevent.hDonald Sharp
We should probably prevent any type of namespace collision with something else. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-24*: Convert THREAD_XXX macros to EVENT_XXX macrosDonald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-24*: Convert a bunch of thread_XX to event_XXDonald Sharp
Convert these functions: thread_getrusage thread_cmd_init thread_consumed_time thread_timer_to_hhmmss thread_is_scheduled thread_ignore_late_timer Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-24*: Convert thread_timer_remain_XXX to event_timer_remain_XXXDonald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-24*: Convert thread_add_XXX functions to event_add_XXXDonald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-24*: Rename `struct thread` to `struct event`Donald Sharp
Effectively a massive search and replace of `struct thread` to `struct event`. Using the term `thread` gives people the thought that this event system is a pthread when it is not Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-24*: Rename thread.[ch] to event.[ch]Donald Sharp
This is a first in a series of commits, whose goal is to rename the thread system in FRR to an event system. There is a continual problem where people are confusing `struct thread` with a true pthread. In reality, our entire thread.c is an event system. In this commit rename the thread.[ch] files to event.[ch]. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-21isisd: Update to the new printfrr ISO formatOlivier Dugeon
This path replaces isisd_format_id, sysid_print, snpa_print, rawlspid_print and isonet_print functions by the new printfrr ISO System ID & Network Address format facilities. It also updates the isisd code to the new iso_address structure defined in lib/iso.h Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-02-28Merge pull request #12840 from dorDiogo/isis_advertise_passive_onlyRuss White
isisd: Add support for IS-IS advertise-passive-only
2023-02-28Merge pull request #12819 from isabelladeleon12/isis_load_config_before_lsp_genRuss White
isisd: Delay lsp generation to after config processing is complete
2023-02-22isisd,doc: Add support for isis advertise-passive-onlyDiogo Oliveira
Signed-off-by: Diogo Oliveira <14191454+dorDiogo@users.noreply.github.com>
2023-02-21isisd: Fix isisd to generate lsps after config processing is completeIsabella de Leon
Before: isisd generates its initial lsp before fully processing the written config. Ex: lsp_generate() is called in isis_instance_area_address_create(), before other configs that may affect the lsp are loaded in, like set-overload-bit. After: isisd generates its initial lsp as soon as the config is fully processed. This was done by utilizing the initialization config callbacks, similar to bgp's implementation. Signed-off-by: Isabella de Leon <ideleon@microsoft.com>
2023-02-09*: auto-convert to SPDX License IDsDavid Lamparter
Done with a combination of regex'ing and banging my head against a wall. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-12isisd: Add JSON object functions to save overload status between restarts.Isabella de Leon
Signed-off-by: Isabella de Leon <ideleon@microsoft.com>
2022-10-12isisd: Add expected behavior with set-overload-bitIsabella de Leon
Signed-off-by: Isabella de Leon <ideleon@microsoft.com>
2022-09-30isisd: Add overload timer and overload on startup functionalityIsabella de Leon
Signed-off-by: Isabella de Leon <ideleon@microsoft.com>
2022-07-21isisd: Convert thread_cancel to THREAD_OFFDonald Sharp
Just convert all uses of thread_cancel to THREAD_OFF Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-06-23isisd: Fix crash with xfrm interface typeDonald Sharp
When creating a xfrm interface FRR is crashing when configured with isis. This is because the weird pattern of not allocating list's until needed and then allowing the crash when we have a usage pattern that was not expected. Just always allocate the different lists that a circuit needs. (gdb) bt (gdb) Fixes #11432 Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-03-08Merge pull request #10701 from rampxxxx/feat_isis_json_show_cmdsRuss White
Feat isis json show cmds
2022-03-02isisd: Add json to show isis database command.Javier Garcia
Signed-off-by: Javier Garcia <javier.martin.garcia@ibm.com>
2022-02-23*: Change thread->func to return void instead of intDonald Sharp
The int return value is never used. Modify the code base to just return a void instead. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-30isisd: Prepare IS-IS for Link State supportOlivier Dugeon
In order to provide Link State Traffic Engineering features to IS-IS, this patch adds some modifications to base IS-IS: - Solve bug in lsp iterate function to avoid infinite loop in isis_lsp.c by adding condition to recurse call - Add new trigger event to parse LSP in isis_lsp.c - Add new TE debug flag to track Traffic Engineering events in isisd.[c,h] - Correct small bug in isis_tlvs.c where delay and min/max delay are not correctly handle - Handle Opaque LSA Traffic Engineering Zebra API in isis_zebra.[c,h] Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2021-11-30isisd: Add support for RFC6119 (IPv6 TE in IS-IS)Olivier Dugeon
- Add advertisement of Global IPv6 address in IIH pdu - Add new CLI to set IPv6 Router ID - Add advertisement of IPv6 Router ID - Correctly advertise IPv6 local and neighbor addresses in Extended IS and MT Reachability TLVs - Correct output of Neighbor IPv6 address in 'show isis database detail' - Manage IPv6 addresses advertisement and corresponiding Adjacency SID when IS-IS is not using Multi-Topology by introducing a new ISIS_MT_DISABLE value for mtid (== 4096 i.e. first reserved flag set to 1) Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2021-08-26isisd: Fix sending of LSP with null seqnoGuillaume Solignac
Check sequence number when building LSP missing in received CSNP Signed-off-by: Guillaume Solignac <gsoligna@protonmail.com>
2021-07-13isisd: fix setting IS type in LSPsIgor Ryzhov
IS type in an LSP is a type of the router, not a type of the circuit. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-07-13isisd: fix processing of the attached bitIgor Ryzhov
There are two problems with the current code for processing the attached bit: - we should process it when acting both a level-1-only and level-1-2 - we should add the default route when we don't have L2 adjacensies, not when we don't have other routers configured on the device Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-07-13isisd: fix setting of the attached bitIgor Ryzhov
Current code related to setting of the attached bit checks for existence of L2 adjacencies in other routers configured on the device. This makes no sense. We should check for L2 adjacencies in the same router where we have L1 adjacencies. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>