Lines Matching +full:route +full:- +full:ptp

1 .. SPDX-License-Identifier: GPL-2.0
14 For example, a device acting as a multicast-aware bridge must be able to send
21 kernel so that it will route it as well and generate an ICMP Time Exceeded
22 error datagram. Without letting the kernel route such packets itself, utilities
31 The ``devlink-trap`` mechanism allows capable device drivers to register their
35 Upon receiving trapped packets, ``devlink`` will perform a per-trap packets and
38 port). This is especially useful for drop traps (see :ref:`Trap-Types`)
42 The following diagram provides a general overview of ``devlink-trap``::
49 +---------------------------------------------------+
52 +-------+--------+
56 +-------^--------+
58 | Non-control traps
60 +----+----+
62 | devlink | (non-drop traps)
64 +----^----+ ^
66 +-----------+
68 +-------+-------+
72 +-------^-------+
74 +---------------------------------------------------+
78 +--+---+
82 +------+
84 .. _Trap-Types:
89 The ``devlink-trap`` mechanism supports the following packet trap types:
93 The trap action (see :ref:`Trap-Actions`) can be changed.
107 .. _Trap-Actions:
112 The ``devlink-trap`` mechanism supports the following packet trap actions:
123 Generic packet traps are used to describe traps that trap well-defined packets
124 or packets that are trapped due to well-defined conditions (e.g., TTL error).
128 .. list-table:: List of Generic Packet Traps
131 * - Name
132 - Type
133 - Description
134 * - ``source_mac_is_multicast``
135 - ``drop``
136 - Traps incoming packets that the device decided to drop because of a
138 * - ``vlan_tag_mismatch``
139 - ``drop``
140 - Traps incoming packets that the device decided to drop in case of VLAN
142 the packet is untagged or prio-tagged
143 * - ``ingress_vlan_filter``
144 - ``drop``
145 - Traps incoming packets that the device decided to drop in case they are
147 * - ``ingress_spanning_tree_filter``
148 - ``drop``
149 - Traps incoming packets that the device decided to drop in case the STP
151 * - ``port_list_is_empty``
152 - ``drop``
153 - Traps packets that the device decided to drop in case they need to be
156 * - ``port_loopback_filter``
157 - ``drop``
158 - Traps packets that the device decided to drop in case after layer 2
161 * - ``blackhole_route``
162 - ``drop``
163 - Traps packets that the device decided to drop in case they hit a
164 blackhole route
165 * - ``ttl_value_is_too_small``
166 - ``exception``
167 - Traps unicast packets that should be forwarded by the device whose TTL
169 * - ``tail_drop``
170 - ``drop``
171 - Traps packets that the device decided to drop because they could not be
173 * - ``non_ip``
174 - ``drop``
175 - Traps packets that the device decided to drop because they need to
177 * - ``uc_dip_over_mc_dmac``
178 - ``drop``
179 - Traps packets that the device decided to drop because they need to be
182 * - ``dip_is_loopback_address``
183 - ``drop``
184 - Traps packets that the device decided to drop because they need to be
187 * - ``sip_is_mc``
188 - ``drop``
189 - Traps packets that the device decided to drop because they need to be
191 * - ``sip_is_loopback_address``
192 - ``drop``
193 - Traps packets that the device decided to drop because they need to be
195 * - ``ip_header_corrupted``
196 - ``drop``
197 - Traps packets that the device decided to drop because they need to be
200 * - ``ipv4_sip_is_limited_bc``
201 - ``drop``
202 - Traps packets that the device decided to drop because they need to be
204 * - ``ipv6_mc_dip_reserved_scope``
205 - ``drop``
206 - Traps IPv6 packets that the device decided to drop because they need to
209 * - ``ipv6_mc_dip_interface_local_scope``
210 - ``drop``
211 - Traps IPv6 packets that the device decided to drop because they need to
212 be routed and their IPv6 multicast destination IP has an interface-local scope
214 * - ``mtu_value_is_too_small``
215 - ``exception``
216 - Traps packets that should have been routed by the device, but were bigger
218 * - ``unresolved_neigh``
219 - ``exception``
220 - Traps packets that did not have a matching IP neighbour after routing
221 * - ``mc_reverse_path_forwarding``
222 - ``exception``
223 - Traps multicast IP packets that failed reverse-path forwarding (RPF)
225 * - ``reject_route``
226 - ``exception``
227 - Traps packets that hit reject routes (i.e., "unreachable", "prohibit")
228 * - ``ipv4_lpm_miss``
229 - ``exception``
230 - Traps unicast IPv4 packets that did not match any route
231 * - ``ipv6_lpm_miss``
232 - ``exception``
233 - Traps unicast IPv6 packets that did not match any route
234 * - ``non_routable_packet``
235 - ``drop``
236 - Traps packets that the device decided to drop because they are not
240 * - ``decap_error``
241 - ``exception``
242 - Traps NVE and IPinIP packets that the device decided to drop because of
245 * - ``overlay_smac_is_mc``
246 - ``drop``
247 - Traps NVE packets that the device decided to drop because their overlay
249 * - ``ingress_flow_action_drop``
250 - ``drop``
251 - Traps packets dropped during processing of ingress flow action drop
252 * - ``egress_flow_action_drop``
253 - ``drop``
254 - Traps packets dropped during processing of egress flow action drop
255 * - ``stp``
256 - ``control``
257 - Traps STP packets
258 * - ``lacp``
259 - ``control``
260 - Traps LACP packets
261 * - ``lldp``
262 - ``control``
263 - Traps LLDP packets
264 * - ``igmp_query``
265 - ``control``
266 - Traps IGMP Membership Query packets
267 * - ``igmp_v1_report``
268 - ``control``
269 - Traps IGMP Version 1 Membership Report packets
270 * - ``igmp_v2_report``
271 - ``control``
272 - Traps IGMP Version 2 Membership Report packets
273 * - ``igmp_v3_report``
274 - ``control``
275 - Traps IGMP Version 3 Membership Report packets
276 * - ``igmp_v2_leave``
277 - ``control``
278 - Traps IGMP Version 2 Leave Group packets
279 * - ``mld_query``
280 - ``control``
281 - Traps MLD Multicast Listener Query packets
282 * - ``mld_v1_report``
283 - ``control``
284 - Traps MLD Version 1 Multicast Listener Report packets
285 * - ``mld_v2_report``
286 - ``control``
287 - Traps MLD Version 2 Multicast Listener Report packets
288 * - ``mld_v1_done``
289 - ``control``
290 - Traps MLD Version 1 Multicast Listener Done packets
291 * - ``ipv4_dhcp``
292 - ``control``
293 - Traps IPv4 DHCP packets
294 * - ``ipv6_dhcp``
295 - ``control``
296 - Traps IPv6 DHCP packets
297 * - ``arp_request``
298 - ``control``
299 - Traps ARP request packets
300 * - ``arp_response``
301 - ``control``
302 - Traps ARP response packets
303 * - ``arp_overlay``
304 - ``control``
305 - Traps NVE-decapsulated ARP packets that reached the overlay network.
308 * - ``ipv6_neigh_solicit``
309 - ``control``
310 - Traps IPv6 Neighbour Solicitation packets
311 * - ``ipv6_neigh_advert``
312 - ``control``
313 - Traps IPv6 Neighbour Advertisement packets
314 * - ``ipv4_bfd``
315 - ``control``
316 - Traps IPv4 BFD packets
317 * - ``ipv6_bfd``
318 - ``control``
319 - Traps IPv6 BFD packets
320 * - ``ipv4_ospf``
321 - ``control``
322 - Traps IPv4 OSPF packets
323 * - ``ipv6_ospf``
324 - ``control``
325 - Traps IPv6 OSPF packets
326 * - ``ipv4_bgp``
327 - ``control``
328 - Traps IPv4 BGP packets
329 * - ``ipv6_bgp``
330 - ``control``
331 - Traps IPv6 BGP packets
332 * - ``ipv4_vrrp``
333 - ``control``
334 - Traps IPv4 VRRP packets
335 * - ``ipv6_vrrp``
336 - ``control``
337 - Traps IPv6 VRRP packets
338 * - ``ipv4_pim``
339 - ``control``
340 - Traps IPv4 PIM packets
341 * - ``ipv6_pim``
342 - ``control``
343 - Traps IPv6 PIM packets
344 * - ``uc_loopback``
345 - ``control``
346 - Traps unicast packets that need to be routed through the same layer 3
349 * - ``local_route``
350 - ``control``
351 - Traps unicast packets that hit a local route and need to be locally
353 * - ``external_route``
354 - ``control``
355 - Traps packets that should be routed through an external interface (e.g.,
358 * - ``ipv6_uc_dip_link_local_scope``
359 - ``control``
360 - Traps unicast IPv6 packets that need to be routed and have a destination
361 IP address with a link-local scope (i.e., fe80::/10). The trap allows
362 device drivers to avoid programming link-local routes, but still receive
364 * - ``ipv6_dip_all_nodes``
365 - ``control``
366 - Traps IPv6 packets that their destination IP address is the "All Nodes
368 * - ``ipv6_dip_all_routers``
369 - ``control``
370 - Traps IPv6 packets that their destination IP address is the "All Routers
372 * - ``ipv6_router_solicit``
373 - ``control``
374 - Traps IPv6 Router Solicitation packets
375 * - ``ipv6_router_advert``
376 - ``control``
377 - Traps IPv6 Router Advertisement packets
378 * - ``ipv6_redirect``
379 - ``control``
380 - Traps IPv6 Redirect Message packets
381 * - ``ipv4_router_alert``
382 - ``control``
383 - Traps IPv4 packets that need to be routed and include the Router Alert
386 * - ``ipv6_router_alert``
387 - ``control``
388 - Traps IPv6 packets that need to be routed and include the Router Alert
389 option in their Hop-by-Hop extension header. Such packets need to be
392 * - ``ptp_event``
393 - ``control``
394 - Traps PTP time-critical event messages (Sync, Delay_req, Pdelay_Req and
396 * - ``ptp_general``
397 - ``control``
398 - Traps PTP general messages (Announce, Follow_Up, Delay_Resp,
400 * - ``flow_action_sample``
401 - ``control``
402 - Traps packets sampled during processing of flow action sample (e.g., via
404 * - ``flow_action_trap``
405 - ``control``
406 - Traps packets logged during processing of flow action trap (e.g., via
408 * - ``early_drop``
409 - ``drop``
410 - Traps packets dropped due to the RED (Random Early Detection) algorithm
412 * - ``vxlan_parsing``
413 - ``drop``
414 - Traps packets dropped due to an error in the VXLAN header parsing which
416 * - ``llc_snap_parsing``
417 - ``drop``
418 - Traps packets dropped due to an error in the LLC+SNAP header parsing
419 * - ``vlan_parsing``
420 - ``drop``
421 - Traps packets dropped due to an error in the VLAN header parsing. Could
423 * - ``pppoe_ppp_parsing``
424 - ``drop``
425 - Traps packets dropped due to an error in the PPPoE+PPP header parsing.
429 * - ``mpls_parsing``
430 - ``drop``
431 - Traps packets dropped due to an error in the MPLS header parsing which
433 * - ``arp_parsing``
434 - ``drop``
435 - Traps packets dropped due to an error in the ARP header parsing
436 * - ``ip_1_parsing``
437 - ``drop``
438 - Traps packets dropped due to an error in the first IP header parsing.
443 * - ``ip_n_parsing``
444 - ``drop``
445 - Traps packets dropped due to an error in the parsing of the last IP
448 * - ``gre_parsing``
449 - ``drop``
450 - Traps packets dropped due to an error in the GRE header parsing
451 * - ``udp_parsing``
452 - ``drop``
453 - Traps packets dropped due to an error in the UDP header parsing.
457 * - ``tcp_parsing``
458 - ``drop``
459 - Traps packets dropped due to an error in the TCP header parsing.
462 * - ``ipsec_parsing``
463 - ``drop``
464 - Traps packets dropped due to an error in the IPSEC header parsing
465 * - ``sctp_parsing``
466 - ``drop``
467 - Traps packets dropped due to an error in the SCTP header parsing.
470 * - ``dccp_parsing``
471 - ``drop``
472 - Traps packets dropped due to an error in the DCCP header parsing
473 * - ``gtp_parsing``
474 - ``drop``
475 - Traps packets dropped due to an error in the GTP header parsing
476 * - ``esp_parsing``
477 - ``drop``
478 - Traps packets dropped due to an error in the ESP header parsing
479 * - ``blackhole_nexthop``
480 - ``drop``
481 - Traps packets that the device decided to drop in case they hit a
483 * - ``dmac_filter``
484 - ``drop``
485 - Traps incoming packets that the device decided to drop because
488 * - ``eapol``
489 - ``control``
490 - Traps "Extensible Authentication Protocol over LAN" (EAPOL) packets
492 * - ``locked_port``
493 - ``drop``
494 - Traps packets that the device decided to drop because they failed the
499 Driver-specific Packet Traps
502 Device drivers can register driver-specific packet traps, but these must be
503 clearly documented. Such traps can correspond to device-specific exceptions and
505 links to the description of driver-specific traps registered by various device
512 .. _Generic-Packet-Trap-Groups:
519 action of all member traps. In addition, ``devlink-trap`` can report aggregated
520 per-group packets and bytes statistics, in case per-trap statistics are too
523 .. list-table:: List of Generic Packet Trap Groups
526 * - Name
527 - Description
528 * - ``l2_drops``
529 - Contains packet traps for packets that were dropped by the device during
531 * - ``l3_drops``
532 - Contains packet traps for packets that were dropped by the device during
534 * - ``l3_exceptions``
535 - Contains packet traps for packets that hit an exception (e.g., TTL
537 * - ``buffer_drops``
538 - Contains packet traps for packets that were dropped by the device due to
540 * - ``tunnel_drops``
541 - Contains packet traps for packets that were dropped by the device during
543 * - ``acl_drops``
544 - Contains packet traps for packets that were dropped by the device during
546 * - ``stp``
547 - Contains packet traps for STP packets
548 * - ``lacp``
549 - Contains packet traps for LACP packets
550 * - ``lldp``
551 - Contains packet traps for LLDP packets
552 * - ``mc_snooping``
553 - Contains packet traps for IGMP and MLD packets required for multicast
555 * - ``dhcp``
556 - Contains packet traps for DHCP packets
557 * - ``neigh_discovery``
558 - Contains packet traps for neighbour discovery packets (e.g., ARP, IPv6
560 * - ``bfd``
561 - Contains packet traps for BFD packets
562 * - ``ospf``
563 - Contains packet traps for OSPF packets
564 * - ``bgp``
565 - Contains packet traps for BGP packets
566 * - ``vrrp``
567 - Contains packet traps for VRRP packets
568 * - ``pim``
569 - Contains packet traps for PIM packets
570 * - ``uc_loopback``
571 - Contains a packet trap for unicast loopback packets (i.e.,
572 ``uc_loopback``). This trap is singled-out because in cases such as
573 one-armed router it will be constantly triggered. To limit the impact on
576 * - ``local_delivery``
577 - Contains packet traps for packets that should be locally delivered after
580 * - ``external_delivery``
581 - Contains packet traps for packets that should be routed through an
584 * - ``ipv6``
585 - Contains packet traps for various IPv6 control packets (e.g., Router
587 * - ``ptp_event``
588 - Contains packet traps for PTP time-critical event messages (Sync,
590 * - ``ptp_general``
591 - Contains packet traps for PTP general messages (Announce, Follow_Up,
593 * - ``acl_sample``
594 - Contains packet traps for packets that were sampled by the device during
596 * - ``acl_trap``
597 - Contains packet traps for packets that were trapped (logged) by the
599 * - ``parser_error_drops``
600 - Contains packet traps for packets that were marked by the device during
602 * - ``eapol``
603 - Contains packet traps for "Extensible Authentication Protocol over LAN"
618 The ``devlink-trap`` mechanism allows capable device drivers to register their
621 :ref:`Generic-Packet-Trap-Groups`) during its initialization, thereby exposing
639 Device drivers should focus their tests on device-specific functionality, such