Commit Graph

29414 Commits

Author SHA1 Message Date
Donatas Abraitis
253b7158ee bgpd: Remove redundant test against ifp for DEBUG messages
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-08-30 11:35:05 +03:00
Donatas Abraitis
1d0865f755
Merge pull request #11874 from sri-mohan1/sri-isis-dbg1
isisd: changes for code maintainability
2022-08-29 21:30:17 +03:00
Donatas Abraitis
c3db3422c2
Merge pull request #11871 from AbhishekNR/mem_free
pimd, pim6d: deleting the memory malloced for json.
2022-08-29 21:25:00 +03:00
Abhishek N R
4cc5d80965 pimd, pim6d: deleting the memory malloced for json.
Problem Statement:
=================
2022-08-18 04:57:32,376 - ERROR: Found memory leak in daemon pimd
2022-08-18 04:57:32,377 - ERROR: ==12100== 18,978 (144 direct, 18,834 indirect) bytes in 2 blocks are definitely lost in loss record 45 of 45
2022-08-18 04:57:32,377 - ERROR: ==12100==    at 0x4C31FAC: calloc (vg_replace_malloc.c:762)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x532F51F: json_object_new_object (in /lib/x86_64-linux-gnu/libjson-c.so.3.0.1)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x128B5C: pim_show_interfaces (pim_cmd_common.c:3395)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x15A86B: show_ip_pim_interface_magic (pim_cmd.c:3127)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x15A86B: show_ip_pim_interface (pim_cmd_clippy.c:324)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4E672B2: cmd_execute_command_real.isra.2 (command.c:1005)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4E696FE: cmd_execute_command (command.c:1064)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4E698F1: cmd_execute (command.c:1227)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4EBC814: vty_command (vty.c:530)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4EBC9EF: vty_execute (vty.c:1295)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4EBF1F7: vtysh_read (vty.c:2142)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4EB739B: thread_call (thread.c:1692)
2022-08-18 04:57:32,377 - ERROR: ==12100==    by 0x4E85B17: frr_run (libfrr.c:1068)
2022-08-18 04:57:32,377 - ERROR: ==12100==

Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-29 08:46:19 -07:00
sri-mohan1
11106e287f isisd: changes for code maintainability
these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2022-08-29 20:37:32 +05:30
Donatas Abraitis
c29b1ce67c
Merge pull request #11855 from cscarpitta/fix-srv6-memleaks
*: Fix several memory leaks in SRv6 implementation
2022-08-29 14:35:24 +03:00
Donatas Abraitis
ad70aa810e
Merge pull request #11869 from sri-mohan1/sri-isis-dbg1
isisd: changes for code maintainability
2022-08-29 13:43:11 +03:00
Donatas Abraitis
6a501480c2
Merge pull request #11581 from AbhishekNR/mld_hardcode_value
pim6d: Completing mld config commands.
2022-08-29 13:27:28 +03:00
Donatas Abraitis
ca500e231c
Merge pull request #11857 from mobash-rasool/fixes2
pim6d: mroute stuck in register state, multicast traffic getting drops
2022-08-29 10:14:34 +03:00
sri-mohan1
1f46f33f9a isisd: changes for code maintainability
these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2022-08-29 12:27:03 +05:30
Abhishek N R
588e1188f6 doc: Changed uppercase MLD to lowercase in ipv6 MLD last-member-query-interval (1-65535)
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-28 23:35:03 -07:00
Abhishek N R
707a9e9a90 pim6d: Completing "ipv6 mld last-member-query-interval" command
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-28 23:33:07 -07:00
Abhishek N R
51b4991feb pim6d: Completing "ipv6 mld last-member-query-count" command.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-28 23:33:07 -07:00
Abhishek N R
914710d79e pim6d: Completing "ipv6 mld query-max-response-time" command.
Signed-off-by: Abhishek N R <abnr@vmware.com>
2022-08-28 23:33:07 -07:00
mobash-rasool
6c231c2e38
Merge pull request #11867 from sri-mohan1/sri-ospf-dbg1
ospfd: changes for code maintainability
2022-08-29 11:50:54 +05:30
sri-mohan1
70ad0b6627 ospfd: changes for code maintainability
these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2022-08-28 20:48:29 +05:30
Donald Sharp
43bb6fc8d4
Merge pull request #11863 from sri-mohan1/sri-ospf-dbg1
ospfd: changes for code maintainability
2022-08-26 10:50:21 -04:00
Donatas Abraitis
b5132009fc
Merge pull request #11718 from SaiGomathiN/mldgroups
pim6d: Implementing "show ipv6 mld groups" CLI
2022-08-26 15:19:32 +03:00
Donatas Abraitis
5e48498795
Merge pull request #11844 from SaiGomathiN/ttable-1
pimd, pim6d: Using ttable for displaying show CLIs
2022-08-26 11:48:18 +03:00
Sai Gomathi N
523a644796 doc: Updated the doc for show ipv6 mld groups command
show ipv6 mld [vrf NAME] groups [json] displays MLD group information.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-26 01:14:08 -07:00
Sai Gomathi N
cdc1b7709f pim6d: Implementing "show mld groups" CLI
To Display MLD Group information

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-26 01:14:08 -07:00
Sai Gomathi N
8934215f65 pimd: Modifying member of pim_instance to accomodate IPv6 changes
Modifying igmp_group_count of struct pim_instance
to gm_group_count which is to be used for both IGMP and MLD.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-26 01:14:08 -07:00
sri-mohan1
1396917dde ospfd: changes for code maintainability
these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2022-08-26 13:01:37 +05:30
Donatas Abraitis
1823510862
Merge pull request #11854 from donaldsharp/memory_walk_in_gdb
gdb: Add a macro to walk memory allocations
2022-08-26 10:20:58 +03:00
mobash-rasool
c4d9ff5f1a
Merge pull request #11862 from sri-mohan1/sri-ospf-dbg1
ospfd: changes for code maintainability
2022-08-26 12:08:53 +05:30
sri-mohan1
ea892800dd ospfd: changes for code maintainability
these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2022-08-25 23:48:24 +05:30
Donald Sharp
0824a0020d
Merge pull request #11860 from opensourcerouting/fix/evpn_cli_json
bgpd: Do not print new line for EVPN CLI outputs if it's a JSON
2022-08-25 13:20:19 -04:00
Donald Sharp
373dce6d11
Merge pull request #11858 from sri-mohan1/sri-ospf-dbg1
ospfd: changes for code maintainability
2022-08-25 09:25:10 -04:00
Mark Stapp
d4fc18584b
Merge pull request #11859 from liwg06/master.fix.extra.semicolon
lib: Fix extra semicolon after if
2022-08-25 08:53:36 -04:00
Donatas Abraitis
036f482fce bgpd: Drop bnc_str() function
Reuse %pFX -> prefix2str()

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-08-25 14:35:28 +03:00
Donatas Abraitis
511211bf56 bgpd: Convert prefix2str to %pFX
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-08-25 14:35:27 +03:00
Donatas Abraitis
2bf9780b26 bgpd: Do not print new line for EVPN CLI outputs if it's a JSON
Before:

```
$ vtysh -c 'show bgp l2vpn evpn route detail json'
<<<<<<<<<<<<<<<<<<<< empty line
<<<<<<<<<<<<<<<<<<<< empty line
<<<<<<<<<<<<<<<<<<<< empty line
<<<<<<<<<<<<<<<<<<<< empty line
{
	...
	"numPrefix":4,
	"numPaths":4 <<<<< four paths = four empty lines
}
```

Contain as much "empty lines" before the JSON string as the number
of paths displayed.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-08-25 13:15:27 +03:00
Weiguo Li
51a68f9b3e lib: Fix extra semicolon after if
Signed-off-by: Weiguo Li <liwg06@foxmail.com>
2022-08-25 17:52:21 +08:00
sri-mohan1
e6f3b2621b ospfd: changes for code maintainability
these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
2022-08-24 23:34:41 +05:30
Sai Gomathi N
d250853af7 pimd, pim6d: Using ttable for displaying "show ip|ipv6 pim jp-agg" CLI
Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-24 09:25:55 -07:00
Sai Gomathi N
7d11f1996e pimd, pim6d: Using ttable for displaying "show ip|ipv6 pim channel" CLI
Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2022-08-24 09:25:55 -07:00
Jafar Al-Gharaibeh
8783ed4bb4
Merge pull request #11829 from donaldsharp/time_32_bits
Time 32 bits
2022-08-24 11:25:16 -05:00
Mark Stapp
28e3928163
Merge pull request #11856 from opensourcerouting/fix/revert_clist_internet
bgpd: Revert community-list INTERNET stuff
2022-08-24 09:32:19 -04:00
Donald Sharp
1568e88a8e ripd: Use a sequence number instead of time
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-24 08:30:42 -04:00
Donald Sharp
c392d9f487 babeld: Remove return value for gettime()
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-24 08:30:27 -04:00
Donald Sharp
ef03888333 zebra: Convert time to uint64_t for zclient data structures
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-24 08:29:50 -04:00
Donald Sharp
bce18b18fe pimd: Intentionally downcast to a uint32_t value
When calling time(NULL), FRR is intentionally throwing
away the upper 32 bits of value returned.  Let's explicitly
call it out so that coverity understands this is intentional
and ok.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-24 08:28:51 -04:00
Donald Sharp
98b7e9754c bgpd: Replace rfapi_time() with monotime()
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-24 08:28:51 -04:00
Donald Sharp
083ec940ab bgpd: Convert from bgp_clock() to monotime()
Let's convert to our actual library call instead
of using yet another abstraction that makes it fun
for people to switch daemons.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-24 08:23:40 -04:00
Carmine Scarpitta
877682e328 sharpd: Fix memory leaks related to SRv6 nexthops
Running the `zebra_seg6local_route` topotest with `--valgrind-memleaks`
gives several memory leak errors. This is due to the way SRv6 routes
(seg6 and seg6local routes) are handled: when the user executes the CLI
command `sharp install seg6-routes` or `sharp install seg6local-routes`
to create a seg6 or seg6local route, sharpd calls
`nexthop_add_srv6_seg6` or `nexthop_add_srv6_seg6local` to create an
SRv6 nexthop. A pointer to the SRv6 nexthop is stored in the global data
structure `sg.r.nhop`. If you call `sharp install routes`,
`sharp install seg6-routes` or `sharp install seg6local-routes` to create
more routes, `sg.r.nhop` is set to zero and the
pointer to the SRv6 nexthop contained in `sg.r.nhop` is definitely lost
and the allocated memory is never freed.

This patch adds calls to `nexthop_del_srv6_seg6()` and
`nexthop_del_srv6_seg6local()` to free the memory allocated for the SRv6
nexthop before clearing the `sg.r.nhop` data structure.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-08-24 14:22:04 +02:00
Carmine Scarpitta
6dece5ac29 sharpd: Fix memory leak in release-locator-chunk
Running the `zebra_seg6local_route` topotest with `--valgrind-memleaks`
gives several memory leak errors. This is due to the way SRv6 chunks are
released: when the user executes the CLI command
`sharp srv6-manager release-locator-chunk` to release the chunks of an
SRv6 locator, the `list_delete()` function is called to delete the
chunks list (`loc->chunks`), but the memory allocated for the chunks is
not freed.

This patch defines a new callback `sharp_srv6_locator_chunk_free()`.
This callback takes care of freeing the memory allocated for a given
chunk. When `list_delete()` is called to remove the chunk list
`loc->chunks`, it automatically calls `sharp_srv6_locator_chunk_free()`
on each element of the list to free the allocated memory before
deleting the list.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-08-24 14:22:04 +02:00
Carmine Scarpitta
a0c47583a4 sharpd: Fix memory leak in release-locator-chunk
Running the `zebra_seg6local_route` topotest with `--valgrind-memleaks`
gives several memory leak errors. This is due to the way SRv6 chunks are
released: when the user executes the CLI command
`sharp srv6-manager release-locator-chunk` to release the chunks of an
SRv6 locator, all the chunks are removed from the list `loc->chunks`.
Also, the locator is removed from the SRv6 locators list
`sg.srv6_locators`, but the memory allocated for the locator is not
freed.

This patch adds a call to `XFREE()` to properly free the allocated
memory when all the chunks of an SRv6 locator are removed and the
locator is removed as well.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-08-24 14:22:04 +02:00
Carmine Scarpitta
f8e9c702a1 bgpd: Fix memory leak in SRv6 locator delete
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 SRv6 locators are removed/unset in bgpd: when
an SRv6 locator is deleted or unset, the memory allocated for the
locator prefix (`tovpn_sid_locator`) is not freed.

This patch adds a `for` loop that iterates over the list of BGP
instances. For each BGP instance using the SRv6 locator to be
removed/unset, we use `XFREE()` to properly free the memory allocated
for `tovpn_sid_locator` after the SRv6 locator is removed or unset.

The memory allocated for `tovpn_sid_locator` cannot be freed before
calling `vpn_leak_postchange_all()`. This is because
after deleting an SRv6 locator, we call `vpn_leak_postchange_all()`
to handle the SRv6 locator deletion and send a BGP Prefix SID withdraw
message. `tovpn_sid_locator` is required to properly build the BGP
Prefix SID withdraw message. After calling `vpn_leak_postchange_all()`
we can safely remove the `tovpn_sid_locator` and free the allocated
memory.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-08-24 14:22:04 +02:00
Donald Sharp
1a6c318d64 gdb: Add a macro to walk memory allocations
Add a macro to walk all memory allocations in a core file.

load the file in gdb:
source /path/to/frr/gdb/lib.txt
mg_walk mg_first
(gdb) mq_walk mg_first
showing active allocations in memory group libfrr
memstats: BFD info:0
memstats: Buffer:5
memstats: Buffer data:0
memstats: Host config:6
memstats: Completion item:0
memstats: Command Tokens:2585
memstats: Command Token Text:1951
memstats: Command Token Help:1951
memstats: Command Argument:0
memstats: Command Argument Name:575
memstats: Command Match Stack:0
memstats: Lexer token (temporary):0
memstats: Path Computation Algorithms:0
memstats: Distribute ctx:0
memstats: Distribute list:0
memstats: Dist-list ifname:0
memstats: Dist-list name:0
memstats: error information:0
memstats: Access List:0
memstats: Access List Str:0
memstats: Access Filter:0
memstats: RCU thread:0
<snip>

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-08-24 07:13:29 -04:00
Donatas Abraitis
9e7103f6b7
Merge pull request #11848 from rgirada/ospf_gr_nbr
ospfd: Adding per neighbour json details to GR helper detail command
2022-08-24 12:39:13 +03:00