summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2024-05-05lib: replace deprecated ares_gethostbynameAndrew Cooks
c-ares has deprecated ares_gethostbyname() in version 1.28.0 Replace it with ares_getaddrinfo(). This fixes a build error on Fedora 40. Signed-off-by: Andrew Cooks <acooks.at.bda@gmail.com> (cherry picked from commit 89a2e4d8257a91d115fa29e02261c33312da5cba) [equi: thread/event rename conflict fixed]
2024-05-05lib: replace deprecated ares_process()Andrew Cooks
ares_process(...) has been deprecated. Replace it with ares_process_fd(...) Signed-off-by: Andrew Cooks <acooks.at.bda@gmail.com> (cherry picked from commit 4540fa0a3e702f577d378b3fa1f5f26591a0a5ad)
2023-08-16lib: Allow unsetting walltime-warning and cpu-warningDonatas Abraitis
With a negative form we get: ``` Internal CLI error [walltime_warning_str] Internal CLI error [cputime_warning_str] ``` Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-11lib, zebra: Fix EVPN nexthop config orderXiao Liang
Delay EVPN route addition to synchronize with rib_delete(), which now uses early route queue. Signed-off-by: Xiao Liang <shaw.leon@gmail.com> (cherry picked from commit cea3f7f25a23e485d4f814b670c11c92249568e1)
2023-07-08lib: make cmd_element->attr a bitmask & clarifyDavid Lamparter
It already "looks" like a bitmask, but we currently can't flag a command both YANG and HIDDEN at the same time. It really should be a bitmask. Also clarify DEPRECATED behaviour (or the absence thereof.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-06-01lib: fix vtysh core when handling questionmarkYuan Yuan
When issue vtysh command with ?, the initial buf size for the element is 16. Then it would loop through each element in the cmd output vector. If the required size for printing out the next element is larger than the current buf size, realloc the buf memory by doubling the current buf size regardless of the actual size that's needed. This would cause vtysh core when the doubled size is not enough for the next element. Signed-off-by: Yuan Yuan <yyuanam@amazon.com> (cherry picked from commit f8aa257997a6a6f69ec5d5715ab04d7cbfae1d1c)
2023-04-12lib: Fix link state memory leakKeelan10
Free link message data when a delete event is recorded. Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com> (cherry picked from commit c123d2dee012620b8f43711062a10c49b9247a9c)
2023-04-11ripd: Fix memory leak for ripd's route-mapanlan_cs
When cleaning `ripd`, it should free `ctx->name` of `struct if_rmap_ctx`, not `ctx` itself. Otherwise, it will lead to memory leak. Signed-off-by: anlan_cs <vic.lan@pica8.com> (cherry picked from commit d3ec0066e5ea0edd691b939806cd7b879ac6a32a)
2023-03-21lib: on bfd peer shutdown actually stop eventDonald Sharp
When deleting a bfd peer during shutdown, let's ensure that any scheduled events are actually stopped. ==7759== Invalid read of size 4 ==7759== at 0x48BF700: _bfd_sess_valid (bfd.c:419) ==7759== by 0x48BF700: _bfd_sess_send (bfd.c:470) ==7759== by 0x492F79C: thread_call (thread.c:2008) ==7759== by 0x48E9BD7: frr_run (libfrr.c:1223) ==7759== by 0x1C739B: main (bgp_main.c:550) ==7759== Address 0xfb687a4 is 4 bytes inside a block of size 272 free'd ==7759== at 0x48369AB: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==7759== by 0x48BFA5A: bfd_sess_free (bfd.c:535) ==7759== by 0x2B7034: bgp_peer_remove_bfd (bgp_bfd.c:339) ==7759== by 0x29FF8A: peer_free (bgpd.c:1160) ==7759== by 0x29FF8A: peer_unlock_with_caller (bgpd.c:1192) ==7759== by 0x2A0506: peer_delete (bgpd.c:2633) ==7759== by 0x208190: bgp_stop (bgp_fsm.c:1639) ==7759== by 0x20C082: bgp_event_update (bgp_fsm.c:2751) ==7759== by 0x492F79C: thread_call (thread.c:2008) ==7759== by 0x48E9BD7: frr_run (libfrr.c:1223) ==7759== by 0x1C739B: main (bgp_main.c:550) ==7759== Block was alloc'd at ==7759== at 0x4837B65: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==7759== by 0x48F53AF: qcalloc (memory.c:116) ==7759== by 0x48BF98D: bfd_sess_new (bfd.c:397) ==7759== by 0x2B76DC: bgp_peer_configure_bfd (bgp_bfd.c:298) ==7759== by 0x2B76DC: bgp_peer_configure_bfd (bgp_bfd.c:279) ==7759== by 0x29BA06: peer_group2peer_config_copy (bgpd.c:2803) ==7759== by 0x2A3D96: peer_create_bind_dynamic_neighbor (bgpd.c:4107) ==7759== by 0x2A4195: peer_lookup_dynamic_neighbor (bgpd.c:4239) ==7759== by 0x21AB72: bgp_accept (bgp_network.c:422) ==7759== by 0x492F79C: thread_call (thread.c:2008) ==7759== by 0x48E9BD7: frr_run (libfrr.c:1223) ==7759== by 0x1C739B: main (bgp_main.c:550) tl;dr -> Effectively, in this test setup we have 300 dynamic bgp sessions all of which are using bfd. When a peer collision is detected or we remove the peers, if an event has been scheduled but not actually executed yet the event event was not actually being stopped, leaving the bsp pointer on the thread->arg and causing a crash when it is executed. Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit f83431c7e8767abc01b3bc2c9a98bd712b55b67f)
2023-03-20lib: Destroy `any` flag when creating a prefix-list entry with prefixDonatas Abraitis
The same as 61c07b9d43529f69f48ca54f4f0213cff52b5d0a, but forgot to put IPv6 in place. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 14c1e0a16959ba8718bb7831c7720707e1d73555)
2023-03-18lib: Adjust only `any` flag for prefix-list entries if destroyingDonatas Abraitis
Before this patch, if we destroy `any` flag for a prefix-list entry, we always set destination as 0.0.0.0/0 and/or ::/0. This means that, if we switch from `ip prefix-list r1-2 seq 5 deny any` to `ip prefix-list r1-2 seq 5 permit 10.10.10.10/32` we will have `permit any` eventually, which broke ACLs. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 61c07b9d43529f69f48ca54f4f0213cff52b5d0a)
2023-02-17Merge pull request #12745 from opensourcerouting/fix/no_pretty_picksIgor Ryzhov
bgpd: Convert evpn output to not pretty print json
2023-02-16lib: Fix non-use of optionDonald Sharp
Commit d7c6467ba2f55d1055babbb7fe82716ca3efdc7e added the ability to specify non pretty printing but unfortunately forgot to use the option variable to make the whole thing work. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-02-10lib: Free dnode before returning if YANG translator model is already loadedDonatas Abraitis
Seems just a missed one because at `goto error` we release dnode. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit ecf82aa41e76ecfbaf3f5762af1e90ebc9263721)
2023-02-10lib: Release memory of YANG translation module on errorDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit b9941b3fec21eca413c4ca9460a264eb9afb7e34)
2023-02-06lib, bgpd: Add ability to specify that some json output should not be prettyDonald Sharp
Initial commit: 23b2a7ef524c9fe083b217c7f6ebaec0effc8f52 changed the json output of `show bgp <afi> <safi> json` to not have pretty print because when under a situation where there are a bunch of routes with a large scale ecmp show output was taking forever and this commit cut 2 minutes out of vtysh run time. Subusequent commit: f4ec52f7cc99f709756d9030623a20c98a086125 changed this back. When upgrading to latest version the long run time was noticed due to testing. Let's add back this functionality such that FRR can have reduced run times with vtysh when it's really needed. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-01-09lib/clippy: fix symbol validity checkDavid Lamparter
If symvalid is false, looking at symidx is bogus. This fixes a build-time SEGV on mips64el. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit a185874504654a691aa7c204b87ee2f9e3b8a49a)
2023-01-09lib: disable xref ELF note on mips64elDavid Lamparter
mips64el does not have a 64-bit PC-relative relocation, which is needed to emit the ELF note for xrefs. Disabling the ELF note means clippy takes the fallback path using section headers, so everything does still work (... unless you strip the section headers.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit ee4a6b9f654fbd4e07485037481ad6b4766bbc6d)
2022-12-10lib: Hide list macros in linklist.cDonald Sharp
The LISTNODE_ATTACH|DELETE macros are only used in linklist.c. Let's remove temptation from people to use them. Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit b3faf1aab6029caf272475122fd99f7f0b0b39c9)
2022-11-28lib: Do not log `echo PING` commands from watchfrrDonald Sharp
Since the `echo PING` commands are from watchfrr and are sent a whole bunch when an operator has `log commands` on the amount of logging done is quite significant. Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit a8a0f80b634208c878e15335948810e1d532d1e7)
2022-11-25Merge pull request #12382 from FRRouting/mergify/bp/stable/8.4/pr-12374Donatas Abraitis
lib: disable vrf before terminating interfaces (backport #12374)
2022-11-24ospfd: Fix RFC conformance test cases 25.19 and 27.6Mobashshera Rasool
Steps to reproduce: -------------------------- 1. ANVL: Establish full adjacency with DUT for neighbor Rtr-0-A on DIface-0 with DUT as DR. 2. ANVL: Listen (for up to 2 * <RxmtInterval> seconds) on DIface-0. 3. DUT: Send <OSPF-LSU> packet. 4. ANVL: Verify that the received <OSPF-LSU> packet contains a Network- LSA for network N1 originated by DUT, and the LS Sequence Number is set to <InitialSequenceNumber>. 5. ANVL: Establish full adjacency with DUT for neighbor Rtr-0-B on DIface-0 with DUT as DR. 6. ANVL: Listen (for up to 2 * <RxmtInterval> seconds) on DIface-0. 7. DUT: Send <OSPF-LSU> packet. 8. ANVL: Verify that the received <OSPF-LSU> packet contains a new instance of the Network-LSA for network N1 originated by DUT, and the LS Sequence Number is set to (<InitialSequenceNumber> + 1). Both the test cases were failing while verifying the initial sequence number for network LSA. This is because currently OSPF does not reset its LSA sequence number when it is going down. Signed-off-by: Mobashshera Rasool <mrasool@vmware.com> (cherry picked from commit ca5997cd018ec66534285130d02de168a3a4ed5c)
2022-11-24lib: disable vrf before terminating interfacesStephen Worley
We must disable the vrf before we start terminating interfaces. On termination, we free the 'zebra_if' struct from the interface ->info pointer. We rely on that for subsystems like vxlan for cleanup when shutting down. ''' ==497406== Invalid read of size 8 ==497406== at 0x47E70A: zebra_evpn_del (zebra_evpn.c:1103) ==497406== by 0x47F004: zebra_evpn_cleanup_all (zebra_evpn.c:1363) ==497406== by 0x4F2404: zebra_evpn_vxlan_cleanup_all (zebra_vxlan.c:1158) ==497406== by 0x4917041: hash_iterate (hash.c:267) ==497406== by 0x4F25E2: zebra_vxlan_cleanup_tables (zebra_vxlan.c:5676) ==497406== by 0x4D52EC: zebra_vrf_disable (zebra_vrf.c:209) ==497406== by 0x49A247F: vrf_disable (vrf.c:340) ==497406== by 0x49A2521: vrf_delete (vrf.c:245) ==497406== by 0x49A2E2B: vrf_terminate_single (vrf.c:533) ==497406== by 0x49A2D8F: vrf_terminate (vrf.c:561) ==497406== by 0x441240: sigint (main.c:192) ==497406== by 0x4981F6D: frr_sigevent_process (sigevent.c:130) ==497406== Address 0x6d68c68 is 200 bytes inside a block of size 272 free'd ==497406== at 0x48470E4: free (vg_replace_malloc.c:872) ==497406== by 0x4942CF0: qfree (memory.c:141) ==497406== by 0x49196A9: if_delete (if.c:293) ==497406== by 0x491C54C: if_terminate (if.c:1031) ==497406== by 0x49A2E22: vrf_terminate_single (vrf.c:532) ==497406== by 0x49A2D8F: vrf_terminate (vrf.c:561) ==497406== by 0x441240: sigint (main.c:192) ==497406== by 0x4981F6D: frr_sigevent_process (sigevent.c:130) ==497406== by 0x499A5F0: thread_fetch (thread.c:1775) ==497406== by 0x492850E: frr_run (libfrr.c:1197) ==497406== by 0x441746: main (main.c:476) ==497406== Block was alloc'd at ==497406== at 0x4849464: calloc (vg_replace_malloc.c:1328) ==497406== by 0x49429A5: qcalloc (memory.c:116) ==497406== by 0x491D971: if_new (if.c:174) ==497406== by 0x491ACC8: if_create_name (if.c:228) ==497406== by 0x491ABEB: if_get_by_name (if.c:613) ==497406== by 0x427052: netlink_interface (if_netlink.c:1178) ==497406== by 0x43BC18: netlink_parse_info (kernel_netlink.c:1188) ==497406== by 0x4266D7: interface_lookup_netlink (if_netlink.c:1288) ==497406== by 0x42B634: interface_list (if_netlink.c:2368) ==497406== by 0x4ABF83: zebra_ns_enable (zebra_ns.c:127) ==497406== by 0x4AC17E: zebra_ns_init (zebra_ns.c:216) ==497406== by 0x44166C: main (main.c:408) ''' Signed-off-by: Stephen Worley <sworley@nvidia.com> (cherry picked from commit b14fa9c4dca1846d64ced5a9710faa1345da4ca0)
2022-10-21lib: Remove unnecessary comparison, for linked listDonald Sharp
In the comparison function for a linked list code was always checking against passed in NULL's. The comparison function will never receive a NULL value for data from the linklist.c code. Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit 78946603e10489969bad3b364a96ca01d436b47d)
2022-10-13lib: Free some memory in scripting subsystem at shutdownDonald Sharp
Pre: staticd: showing active allocations in memory group libfrr staticd: memstats: Scripting : 16 * (variably sized) staticd: memstats: Hash : 2 * (variably sized) staticd: memstats: Hash Bucket : 8 * 32 staticd: memstats: Hash Index : 1 * (variably sized) staticd: memstats: Link List : 1 * 40 staticd: memstats: Link Node : 1 * 24 staticd: showing active allocations in memory group logging subsystem staticd: memstats: log file target : 1 * 88 staticd: showing active allocations in memory group staticd Post: staticd: showing active allocations in memory group libfrr staticd: showing active allocations in memory group logging subsystem staticd: memstats: log file target : 1 * 88 staticd: showing active allocations in memory group staticd Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit ca28a0f6faef1e0b547966fef49d6987903684b0)
2022-09-26lib: Fix `show route-map NAME json` command and memory leakDonatas Abraitis
JSON object was generated, but not printed, because the function returned immediatelly, even without freeing the memory. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-09-22bgpd: Use %pRD for prefix_rd2str()Donatas Abraitis
Convert a bunch of prefix_rd2str() for json/vty stuff. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-09-14lib: Fix skip of every other plist deletionDonald Sharp
When bulk deleting prefix lists on shutdown the code was calling plist_delete, which removed the item from the master->str list, and then popping the next item on the list and just dropping it on the floor. The pop is not needed. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-09-13Merge pull request #11899 from ↵Russ White
opensourcerouting/feature/route_validation_extended_community bgpd: Implement Origin Validation State via extended communities
2022-09-12Merge pull request #11868 from LabNConsulting/ziemba/bgp-labelpool-performanceDonald Sharp
bgpd: improve labelpool performance at scale
2022-09-12lib: Replace route_map_clear_updated to voidDonatas Abraitis
Return status not used at all. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-09-07lib: replace one path with macroanlan_cs
Replace all of the path name with macro, only the two places. Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-09-06Merge pull request #11823 from pguibert6WIND/bgp_vpnv4_gre_ebgpRafael Zalamena
Bgp vpnv4 convey without transport label
2022-09-05bgpd: add resolution for l3vpn traffic over gre interfacesPhilippe Guibert
When a route imported from l3vpn is analysed, the nexthop from default VRF is looked up against a valid MPLS path. Generally, this is done on backbones with a MPLS signalisation transport layer like LDP. Generally, the BGP connection is multiple hops away. That scenario is already working. There is case where it is possible to run L3VPN over GRE interfaces, and where there is no LSP path over that GRE interface: GRE is just here to tunnel MPLS traffic. On that case, the nexthop given in the path does not have MPLS path, but should be authorized to convey MPLS traffic provided that the user permits it via a configuration command. That commit introduces a new command that can be activated in route-map: > set l3vpn next-hop encapsulation gre That command authorizes the nexthop tracking engine to accept paths that o have a GRE interface as output, independently of the presence of an LSP path or not. A configuration example is given below. When bgp incoming vpnv4 updates are received, the nexthop of NLRI is 192.168.0.2. Based on nexthop tracking service from zebra, BGP knows that the output interface to reach 192.168.0.2 is r1-gre0. Because that interface is not MPLS based, but is a GRE tunnel, then the update will be using that nexthop to be installed. interface r1-gre0 ip address 192.168.0.1/24 exit router bgp 65500 bgp router-id 1.1.1.1 neighbor 192.168.0.2 remote-as 65500 ! address-family ipv4 unicast no neighbor 192.168.0.2 activate exit-address-family ! address-family ipv4 vpn neighbor 192.168.0.2 activate neighbor 192.168.0.2 route-map rmap in exit-address-family exit ! router bgp 65500 vrf vrf1 bgp router-id 1.1.1.1 no bgp network import-check ! address-family ipv4 unicast network 10.201.0.0/24 redistribute connected label vpn export 101 rd vpn export 444:1 rt vpn both 52:100 export vpn import vpn exit-address-family exit ! route-map rmap permit 1 set l3vpn next-hop encapsulation gre exit Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2022-09-04bgpd: Handle Origin Validation State extended community via route-map matchDonatas Abraitis
Add an ability to match via route-maps. An additional route-map command `match rpki-extcommunity <invalid|notfound|valid>` added. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-09-02Merge pull request #11884 from mjstapp/fix_cancel_ptrsDonatas Abraitis
lib: ensure locals are inited to NULL
2022-08-31lib: ensure locals are inited to NULLMark Stapp
A couple of pointers in do_thread_cancel() we only inited at the start of the function; make sure they're inited during each iteration of the loop. Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2022-08-31bgpd: improve labelpool performance at scaleG. Paul Ziemba
- double the size of each new chunk request from zebra - use bitfields to track label allocations in a chunk - When allocating: - skip chunks with no free labels - search biggest chunks first - start search in chunk where last search ended - Improve API documentation in comments (bgp_lp_get() and callback) - Tweak formatting of "show bgp labelpool chunks" - Add test features (compiled conditionally on BGP_LABELPOOL_ENABLE_TESTS) Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2022-08-29Merge pull request #11855 from cscarpitta/fix-srv6-memleaksDonatas Abraitis
*: Fix several memory leaks in SRv6 implementation
2022-08-25lib: Fix extra semicolon after ifWeiguo Li
Signed-off-by: Weiguo Li <liwg06@foxmail.com>
2022-08-24lib: Fix memory leak in `zclient_send_localsid()`Carmine Scarpitta
Running `bgp_srv6l3vpn_to_bgp_vrf` and `bgp_srv6l3vpn_to_bgp_vrf2` topotests with `--valgrind-memleaks` gives several memory leak errors. This is due to the way FRR daemons pass local SIDs to zebra: to send a local SID to zebra, FRR daemons call the `zclient_send_localsid()` function. The `zclient_send_localsid()` function performs the following sequence of operations: * create a temporary `struct nexthop`; * call `nexthop_add_srv6_seg6local()` to fill the `struct nexthop` with the proper local SID information; * create a `struct zapi_route` and call `zapi_nexthop_from_nexthop()` to copy the information from the `struct nexthop` to the `struct zapi_route`; * send the `struct zapi_route` to zebra through the ZAPI. The `nexthop_add_srv6_seg6local()` function uses `XCALLOC()` to allocate memory for the SRv6 nexthop. This memory is never freed. Creating a temporary `struct nexthop` is unnecessary, as the local SID information can be pushed directly to the `struct zapi_route`. This patch simplifies the implementation of `zclient_send_localsid()` by avoiding using the temporary `struct nexthop`. This eliminates the need to use `nexthop_add_srv6_seg6local()` to fill the `struct nexthop` and consequently fixes the memory leak. Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-08-15lib: Ensure ls_msg2edge does not use memory after freeingDonald Sharp
ls_msg2edge calls ls_edge_del_all which will free the edge variable. Ensure that FRR properly returns NULL. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-08lib: Remove invalid function declarationWeiguo Li
there is no definition of ttable_cell_del(), thus remove its declaration. Signed-off-by: Weiguo Li <liwg06@foxmail.com>
2022-08-04Merge pull request #11716 from mobash-rasool/fixes2Donald Sharp
pimd, pim6d: Send register msg via reg socket, solve FHR/RP same node issue
2022-08-04lib: Add errno details to the sockopt_reuseaddr apiMobashshera Rasool
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-08-03Merge pull request #11710 from donaldsharp/split_up_test_multicast_pim_static_rpDonatas Abraitis
some test fixes and a coverity fix
2022-08-02Merge pull request #11715 from Orange-OpenSource/link_stateDonald Sharp
lib: Correct valgrind errors
2022-08-02build: unconditionally enable format checksDavid Lamparter
The format message checks done by clippy/xrelfo were still guarded behind `--enable-dev-build`. They've been clean and reliable, so it's time to enable them unconditionally. Fixes: #11680 Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-08-02lib: Remove usage of inet_ntop in lib/sockopt.cDonald Sharp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-01lib: Correct valgrind errorsOlivier Dugeon
In CSPF topo test, valgrind detects uninitialized bytes when exporting TE Opaque information through ZEBRA. This is due to C pragma compilation directive __attribute__(aligned(8)) in struct ls_node_id in link_state.h. Valgrind consideris that struct ls_node_id nid = {} doesn't initialized the padding bytes introduced by gcc. This patch simply removes the C pragma compilation directive and also takes opportunity to remove the transmission of remote node id for vertices and subnets which is not known. Indeed, remote node id is only pertinent for edges. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>