Commit Graph

29080 Commits

Author SHA1 Message Date
Jafar Al-Gharaibeh
6e09ecef0f
Merge pull request #11549 from opensourcerouting/fix/logrotate
tools: Add missing bfdd to logrotate config
2022-07-07 08:56:34 -06:00
sarita patra
53bbfd535a pim6d: bsr nht handling for IPV6
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 07:53:40 -07:00
sarita patra
e309769ae7 pim6d: modify in_addr current_bsr to pim_addr current_bsr
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-07 07:51:33 -07:00
Martin Winter
0e98be9eea debian: Add pkg.frr.pim6d build profile
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-07-07 07:14:27 -07:00
Mobashshera Rasool
9289b93373 redhat: Always disable PIM6d on CentOS 6 and RedHat 6 systems
Since these systems are too old to correctly support the protocol
disabling the PIM6d.
Also by default disable on all. Use --enable-pim6d flag to
enable it.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-07 07:14:27 -07:00
Mobashshera Rasool
7e08c08069 pim6d: Disable pim6d compilation by default
By default, disable pim6d compilation. If someone
wants to enable the compilation, should use ./configure option
with --enable-pim6d.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-07 07:14:27 -07:00
Christian Hopps
0238d27f50
Merge pull request #11552 from opensourcerouting/pkgfix
Package build fixes
2022-07-07 10:09:26 -04:00
David Lamparter
3eade02f13
Merge pull request #10715 from patrasar/pim_rpf_prefix_to_pimaddr
pim6d: modify pim_rpf from struct prefix to pim_addr
2022-07-07 15:36:57 +02:00
Sarita Patra
14a3e390e9 pim6d: Fix description for "clear ipv6 mroute" cmd
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-07 06:12:03 -07:00
Sarita Patra
215d10a104 pimd: Fix description for "clear ip mroute" cmd
Signed-off-by: Sarita Patra <saritap@vmware.com>
2022-07-07 06:06:06 -07:00
Martin Winter
d2b48927bb
snapcraft: Version must be quoted in snap store
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-07-07 12:31:03 +02:00
Martin Winter
b78535682c
debian: Fix version requirement for rtrlib to allow distro specific names
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-07-07 12:30:49 +02:00
David Lamparter
ca8a395da8 zebra: debug decode RTA_EXPIRES and RTA_MFC_STATS
Just adding two more attributes to decode and show nicely in netlink
msgdump debug output.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-07-07 11:36:44 +02:00
David Lamparter
e1cd4bb178 zebra: fix remaining MR RTM_GETROUTE oddities
The IPv6 version needs rtm_src_len and rtm_dst_len filled in due to
strict validation.  IPv4 also has this requirement, but zebra is running
in non-strict mode there so the kernel accepts it...

Also the table ID hack is IPv4 only.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-07-07 11:36:40 +02:00
Donatas Abraitis
9763474278 tools: Add missing bfdd to logrotate config
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-07-07 11:05:00 +03:00
Donatas Abraitis
967e4a1787
Merge pull request #11530 from ARShreenidhi/default_originate_testcase
tests : bgp default originate test cases
2022-07-07 10:11:45 +03:00
Donatas Abraitis
17b923c885
Merge pull request #11548 from paulc39/check_hostname_in_resolver_resolve
lib: check hostname in resolver_resolve
2022-07-07 10:09:42 +03:00
kevinshen
30220d1e35 lib: check hostname in resolver_resolve
resolver_resolve should check hostname is null or not.

if ares_gethostbyname() get null hostname string, the hostname string will access a null pointer and crash.

Signed-off-by: kevinshen <kevinshen@inspur.com>
2022-07-07 12:10:03 +08:00
Donatas Abraitis
5cb3a15300 bgpd: Free memory for BMP listeners when deleting BGP instance
When using `no router bgp` we MUST free the memory for the listeners too.

Replicate with:
```
router bgp 100
bmp targets server1
bmp listener 0.0.0.0 port 65535
no router bgp
router bgp 100
bmp targets server1
bmp listener 0.0.0.0 port 65535
no router bgp
router bgp 100
bmp targets server1
bmp listener 0.0.0.0 port 65535
no router bgp
```

Before:
```
Type                          : Current#   Size       Total     Max#  MaxBytes
BMP targets                   :        0    240           0        1       248
BMP targets name              :        0      8           0        1        24
BMP listener                  :       12    152        1824       12      1824
BMP instance state            :        0     88           0        1        88
```

After:
```
Type                          : Current#   Size       Total     Max#  MaxBytes
BMP targets                   :        0    240           0        1       248
BMP targets name              :        0      8           0        1        24
BMP listener                  :        0    152           0        1       152
BMP instance state            :        0     88           0        1        88
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-07-06 22:27:23 +03:00
ARShreenidhi
fbad2f3af9 tests : Topotest support to bgp_default_originate
When there is change in route-map policy associated with default-originate, changes does not reflect.
When route-map associated with default-originate is deleted, default route doesn't get withdrawn
Update message is not being sent when only route-map is removed from the default-originate config.
SNT counter gets incremented on change of every policy associated with default-originate
Route-map with multiple match clauses causes inconsistencies with default-originate.
Default-originate behaviour on BGP-attributes

Signed-off-by: ARShreenidhi <rshreenidhi@vmware.com>
2022-07-06 11:06:54 -07:00
Iqra Siddiqui
a633fb579e bgpd: Fix insonsistencies with default-originate route-map
Description:
- When there are multiple policies configured with
  route-map then the first matching policy is not
  getting applied on default route originated with
  default-originate.

- In BGP we first run through the BGP RIB and then
  pass it to the route-map to find if its permit or
  deny. Due to this behaviour the first route in
  BGP RIB that passes the route-map will be applied.

Fix:
- Passing extra parameter to routemap_apply so that
  we can get the preference of the matching policy,
  keep comparing it with the old preference and finally
  consider the policy with less preference.

Co-authored-by: Abhinay Ramesh <rabhinay@vmware.com>
Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
2022-07-06 11:06:49 -07:00
mobash-rasool
237d29803d
Merge pull request #11542 from opensourcerouting/bfd-coverity
bfdd: fix coverity scan issues
2022-07-06 20:15:58 +05:30
Mark Stapp
bd7e1bf675
Merge pull request #11540 from opensourcerouting/typesafe-assume-explain
lib: use assume() for SA fixing, add explainer
2022-07-06 09:52:05 -04:00
Mobashshera Rasool
8d0f0b02f3 pimd: During prune pending, behave as NOINFO state
Fixed ANVL Conformance PIM-SM 16.3 test case.

When (S,G,rpt) prune is received, we were installing
the mroute immediately with none as OIF.
This leads to dropping the (S,G) traffic during prune
pending time as well.

Also we should not install the mroute if there is no
change in the rpf update.

These 2 things lead to the failure of the test case.

Fixed it by blocking the installation in this scenario.
When prune pending timer pops, it will take care of
installing the mroute with  none as OIF.

Fixes: #11535

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-07-06 05:18:38 -07:00
Rafael Zalamena
f14233edbd bfdd: fix coverity memory overrun
Use the destination for the operator `sizeof()` instead of the source
which could (and is) be bigger than destination.

We are not truncating any data here it just happens that the zebra
interface data structure hardware address can be bigger due to different
types of interface.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2022-07-06 07:52:17 -03:00
Rafael Zalamena
500fe387a0 bfdd: fix coverity scan resource leak
Close the descriptor if something fails and we don't return it.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2022-07-06 07:49:56 -03:00
sarita patra
e6e5300636 pim6d: Pass pim_addr for pim_nht callbacks.
For pim callbacks, we pass pim_addr as value, not pointer.
So making it consistent for pim_nht callbacks.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:56:43 -07:00
sarita patra
b502add84f pimd: Adjust rpf_addr in show commands
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:56:42 -07:00
David Lamparter
d1757dd5cd
Merge pull request #11521 from patrasar/pimv6_drpriority
pim6d: Fix [no] ipv6 pim drpriority command
2022-07-06 11:43:05 +02:00
sarita patra
8d61ad0f17 pimd: Handle rpf_addr in pim_ifchannel code
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:48 -07:00
sarita patra
6288ebcf22 pimd: Handle rpf_addr in pim nht
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:48 -07:00
sarita patra
5d58abc161 pimd: Handle rpf_addr in register send/recv
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:48 -07:00
sarita patra
fc9f6f88e5 pimd: Handle rpf_addr in join/prune processing
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:48 -07:00
sarita patra
5262018dbf pim6d: Handle rpf_addr in pim_msg_build_jp_groups()
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
bad81cbc7b pim6d: Handle rpf_addr in on_neighbor_jp_timer()
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
4a8336cfa8 pim6d: Handle rpf_addr in pim_if_addr_add()
Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
6b362f9fb1 pim6d: Adjust rpf_addr in pim_tib code
In this PR, we are handling the pim_tib code
after rpf_addr modified from prefix to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
122c31403e pim6d: Adjust rpf_addr in pim_vxlan_orig_mr_up_add
In this PR, we are handling the pim_vxlan_orig_mr_up_add()
after rpf_addr modified from prefix to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
144035b741 pim6d: Adjust rpf_addr in pim_zebra
In this PR, we are handling the pim_zebra code
after rpf_addr modified from prefix to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
028583e9e0 pim6d: Adjust rpf_addr in pim_upstream
In this PR, we are handling the pim_upstream
after rpf_addr modified from prefix to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
b63192cfc2 pim6d: Adjust rpf_addr in rp_info
In this PR, we are handling the rp_info
after rpf_addr modified from prefix
to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
66344d3d52 pim6d: Adjust rpf_addr rpf code
In this PR, we are handling the pim_rpf code
after rpf_addr modified from prefix
to pim_addr.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
sarita patra
490e5b181c pimd: modify rpf_addr from prefix to pim_addr
Currently rpf_addr is of type struct prefix, but it's always
a /32 host prefix. So changing it to pim_addr in order to support both
IPV4 and IPV6.

Signed-off-by: sarita patra <saritap@vmware.com>
2022-07-06 02:41:47 -07:00
Donatas Abraitis
7650a8d638
Merge pull request #9307 from SaiGomathiN/sai-nht
pimd: json support for nexthop
2022-07-06 12:32:48 +03:00
David Lamparter
c6a89c8ef5 zebra: IIF/OIF are not used in MR RTM_GETROUTE
The multicast routing RTM_GETROUTE command does not use IIF/OIF
attributes, and the IPv6 version will refuse them with an error due to
being new netlink API and thus using strict validation.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-07-06 11:29:56 +02:00
David Lamparter
31071fe357 zebra: netlink MR is a rtmsg, not ndmsg
These two structs happen to be the same size and have the family field
in the same spot, but the correct one to use here is rtmsg not ndmsg.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-07-06 11:23:06 +02:00
David Lamparter
afeb8524e2 zebra: correctly ignore multicast nl msgs
zebra does not care about _notifications_ from the kernel regarding
multicast routing;  we only use the MR netlink API to request stats from
the kernel by actively sending a RTM_GETROUTE.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-07-06 11:19:05 +02:00
David Lamparter
255a76a56a lib: use assume() for SA fixing, add explainer
Literally 4 minutes after hitting merge on Mark's previous fix for this
I remembered we have an `assume()` macro in compiler.h which seems like
the right tool for this.

(... and if I'm touching it, I might as well add a little text
explaining what's going on here.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-07-06 10:48:56 +02:00
David Lamparter
5adddad38f
Merge pull request #11534 from mjstapp/fix_typesafe_sa
lib: fix SA warning in typesafe code
2022-07-06 10:35:24 +02:00
Iqra Siddiqui
42427e3908 bgpd: Update msg not being sent on removing route-map from default-originate config
Description:
- On removing just the route-map from the default-originate config,
  update message is not sent to the peer,
  and the properties set by route-map persists on peer's end,
  until we do a clear bgp.

Fix:
- The flag which is set when default route is originated,
  should be unset once "neighbor X.X.X.X default-orginate",
  to remove route-map from "neighbor X.X.X.X default-orginate route-map Y",
  so as to trigger the flow for sending an update.

Co-authored-by: Abhinay Ramesh <rabhinay@vmware.com>
Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
2022-07-06 05:38:35 +00:00