Commit Graph

8 Commits

Author SHA1 Message Date
Stephen Worley
5d41413833 zebra: add support for protodown reason code
Add support for setting the protodown reason code.

829eb208e8

These patches handle all our netlink code for setting the reason.

For protodown reason we only set `frr` as the reason externally
but internally we have more descriptive reasoning available via
`show interface IFNAME`. The kernel only provides a bitwidth of 32
that all userspace programs have to share so this makes the most sense.

Since this is new functionality, it needs to be added to the dplane
pthread instead. So these patches, also move the protodown setting we
were doing before into the dplane pthread. For this, we abstract it a
bit more to make it a general interface LINK update dplane API. This
API can be expanded to support gernal link creation/updating when/if
someone ever adds that code.

We also move a more common entrypoint for evpn-mh and from zapi clients
like vrrpd. They both call common code now to set our internal flags
for protodown and protodown reason.

Also add debugging code for dumping netlink packets with
protodown/protodown_reason.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2022-03-09 17:52:44 -05:00
Mark Stapp
777f96503e zebra: add netlink debug dump for netconf messages
Add the RTM_NETCONF messages to the detailed netlink message
dump module.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2022-02-25 09:53:02 -05:00
Trey Aspelund
e54cd97838 zebra: cleanup multiline strings in debug_nl.c
NetDEF CI has been whining about multiline string style.
Make the strings single-line and call it a day.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2022-02-10 21:37:45 +00:00
Trey Aspelund
95fe32880f zebra: add netlink debugs for ip rules
Adds functions to parse + decode netlink rules.
Adds RTM_NEWRULE + RTM_DELRULE to "debug zebra kernel".

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2022-02-10 21:36:34 +00:00
Donald Sharp
7090c9253d zebra: debug_nl.c ensure we can read RTM_NEWNEIGH bridge nested attrs
The kernel can return to us nested attributes for BRIDGE RTM_NEWNEIGH
attributes.  Just ensure that we can parse and read them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-28 08:16:49 -04:00
Donald Sharp
6e1e2e8da9 zebra: Fix netlink RTM_NEWNEXTHOP parsing for nested attributes
With the addition of resillient hashing for nexthops, the
parsing of nexthops requires telling the decoder functions
that there may be nested attributes.  This was found by
code inspection of iproute2/ipnexthop.c when trying to
understand resillient hashing as well as statistics
gathering for nexthops that are / will be in upstream
kernels in the near future.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-28 08:10:28 -04:00
Donald Sharp
73b8a68e66 include, zebra: Add recent nexthop.h
Add actual recent nexthop.h file from kernel
and fix up resulting fallout because FRR's
original nexthop.h did not match upstream
linux kernel.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-25 14:11:37 -04:00
Rafael Zalamena
eead0bc46b zebra: human readable netlink dumps
Add new compile option to enable human readable netlink dumps with
`debug zebra kernel msgdump`.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-09-23 23:07:02 -03:00