devlink: Add layer 3 control packet traps
Add layer 3 control packet traps such as ARP and DHCP, so that capable device drivers could register them with devlink. Add documentation for every added packet trap and packet trap group. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
515eac677f
commit
d77cfd162a
@@ -288,6 +288,115 @@ be added to the following table:
|
||||
* - ``mld_v1_done``
|
||||
- ``control``
|
||||
- Traps MLD Version 1 Multicast Listener Done packets
|
||||
* - ``ipv4_dhcp``
|
||||
- ``control``
|
||||
- Traps IPv4 DHCP packets
|
||||
* - ``ipv6_dhcp``
|
||||
- ``control``
|
||||
- Traps IPv6 DHCP packets
|
||||
* - ``arp_request``
|
||||
- ``control``
|
||||
- Traps ARP request packets
|
||||
* - ``arp_response``
|
||||
- ``control``
|
||||
- Traps ARP response packets
|
||||
* - ``arp_overlay``
|
||||
- ``control``
|
||||
- Traps NVE-decapsulated ARP packets that reached the overlay network.
|
||||
This is required, for example, when the address that needs to be
|
||||
resolved is a local address
|
||||
* - ``ipv6_neigh_solicit``
|
||||
- ``control``
|
||||
- Traps IPv6 Neighbour Solicitation packets
|
||||
* - ``ipv6_neigh_advert``
|
||||
- ``control``
|
||||
- Traps IPv6 Neighbour Advertisement packets
|
||||
* - ``ipv4_bfd``
|
||||
- ``control``
|
||||
- Traps IPv4 BFD packets
|
||||
* - ``ipv6_bfd``
|
||||
- ``control``
|
||||
- Traps IPv6 BFD packets
|
||||
* - ``ipv4_ospf``
|
||||
- ``control``
|
||||
- Traps IPv4 OSPF packets
|
||||
* - ``ipv6_ospf``
|
||||
- ``control``
|
||||
- Traps IPv6 OSPF packets
|
||||
* - ``ipv4_bgp``
|
||||
- ``control``
|
||||
- Traps IPv4 BGP packets
|
||||
* - ``ipv6_bgp``
|
||||
- ``control``
|
||||
- Traps IPv6 BGP packets
|
||||
* - ``ipv4_vrrp``
|
||||
- ``control``
|
||||
- Traps IPv4 VRRP packets
|
||||
* - ``ipv6_vrrp``
|
||||
- ``control``
|
||||
- Traps IPv6 VRRP packets
|
||||
* - ``ipv4_pim``
|
||||
- ``control``
|
||||
- Traps IPv4 PIM packets
|
||||
* - ``ipv6_pim``
|
||||
- ``control``
|
||||
- Traps IPv6 PIM packets
|
||||
* - ``uc_loopback``
|
||||
- ``control``
|
||||
- Traps unicast packets that need to be routed through the same layer 3
|
||||
interface from which they were received. Such packets are routed by the
|
||||
kernel, but also cause it to potentially generate ICMP redirect packets
|
||||
* - ``local_route``
|
||||
- ``control``
|
||||
- Traps unicast packets that hit a local route and need to be locally
|
||||
delivered
|
||||
* - ``external_route``
|
||||
- ``control``
|
||||
- Traps packets that should be routed through an external interface (e.g.,
|
||||
management interface) that does not belong to the same device (e.g.,
|
||||
switch ASIC) as the ingress interface
|
||||
* - ``ipv6_uc_dip_link_local_scope``
|
||||
- ``control``
|
||||
- Traps unicast IPv6 packets that need to be routed and have a destination
|
||||
IP address with a link-local scope (i.e., fe80::/10). The trap allows
|
||||
device drivers to avoid programming link-local routes, but still receive
|
||||
packets for local delivery
|
||||
* - ``ipv6_dip_all_nodes``
|
||||
- ``control``
|
||||
- Traps IPv6 packets that their destination IP address is the "All Nodes
|
||||
Address" (i.e., ff02::1)
|
||||
* - ``ipv6_dip_all_routers``
|
||||
- ``control``
|
||||
- Traps IPv6 packets that their destination IP address is the "All Routers
|
||||
Address" (i.e., ff02::2)
|
||||
* - ``ipv6_router_solicit``
|
||||
- ``control``
|
||||
- Traps IPv6 Router Solicitation packets
|
||||
* - ``ipv6_router_advert``
|
||||
- ``control``
|
||||
- Traps IPv6 Router Advertisement packets
|
||||
* - ``ipv6_redirect``
|
||||
- ``control``
|
||||
- Traps IPv6 Redirect Message packets
|
||||
* - ``ipv4_router_alert``
|
||||
- ``control``
|
||||
- Traps IPv4 packets that need to be routed and include the Router Alert
|
||||
option. Such packets need to be locally delivered to raw sockets that
|
||||
have the IP_ROUTER_ALERT socket option set
|
||||
* - ``ipv6_router_alert``
|
||||
- ``control``
|
||||
- Traps IPv6 packets that need to be routed and include the Router Alert
|
||||
option in their Hop-by-Hop extension header. Such packets need to be
|
||||
locally delivered to raw sockets that have the IPV6_ROUTER_ALERT socket
|
||||
option set
|
||||
* - ``ptp_event``
|
||||
- ``control``
|
||||
- Traps PTP time-critical event messages (Sync, Delay_req, Pdelay_Req and
|
||||
Pdelay_Resp)
|
||||
* - ``ptp_general``
|
||||
- ``control``
|
||||
- Traps PTP general messages (Announce, Follow_Up, Delay_Resp,
|
||||
Pdelay_Resp_Follow_Up, management and signaling)
|
||||
|
||||
Driver-specific Packet Traps
|
||||
============================
|
||||
@@ -344,6 +453,40 @@ narrow. The description of these groups must be added to the following table:
|
||||
* - ``mc_snooping``
|
||||
- Contains packet traps for IGMP and MLD packets required for multicast
|
||||
snooping
|
||||
* - ``dhcp``
|
||||
- Contains packet traps for DHCP packets
|
||||
* - ``neigh_discovery``
|
||||
- Contains packet traps for neighbour discovery packets (e.g., ARP, IPv6
|
||||
ND)
|
||||
* - ``bfd``
|
||||
- Contains packet traps for BFD packets
|
||||
* - ``ospf``
|
||||
- Contains packet traps for OSPF packets
|
||||
* - ``bgp``
|
||||
- Contains packet traps for BGP packets
|
||||
* - ``vrrp``
|
||||
- Contains packet traps for VRRP packets
|
||||
* - ``pim``
|
||||
- Contains packet traps for PIM packets
|
||||
* - ``uc_loopback``
|
||||
- Contains a packet trap for unicast loopback packets (i.e.,
|
||||
``uc_loopback``). This trap is singled-out because in cases such as
|
||||
one-armed router it will be constantly triggered. To limit the impact on
|
||||
the CPU usage, a packet trap policer with a low rate can be bound to the
|
||||
group without affecting other traps
|
||||
* - ``local_delivery``
|
||||
- Contains packet traps for packets that should be locally delivered after
|
||||
routing, but do not match more specific packet traps (e.g.,
|
||||
``ipv4_bgp``)
|
||||
* - ``ipv6``
|
||||
- Contains packet traps for various IPv6 control packets (e.g., Router
|
||||
Advertisements)
|
||||
* - ``ptp_event``
|
||||
- Contains packet traps for PTP time-critical event messages (Sync,
|
||||
Delay_req, Pdelay_Req and Pdelay_Resp)
|
||||
* - ``ptp_general``
|
||||
- Contains packet traps for PTP general messages (Announce, Follow_Up,
|
||||
Delay_Resp, Pdelay_Resp_Follow_Up, management and signaling)
|
||||
|
||||
Packet Trap Policers
|
||||
====================
|
||||
|
Reference in New Issue
Block a user