Problem: ======== Received LACP/CFM/BFD/STP/LLDP slow protocols' packets are not captured in ovs-tcpdump.
Fix: ==== Add mirror support for slow protocols. Signed-off-by: Manohar K C <[email protected]> CC: Jan Scheurich <[email protected]> --- ofproto/ofproto-dpif-xlate.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index 5641724..a31d8b9 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -3165,11 +3165,13 @@ process_special(struct xlate_ctx *ctx, const struct xport *xport) slow = 0; } else if (xport->cfm && cfm_should_process_flow(xport->cfm, flow, wc)) { if (packet) { + mirror_ingress_packet(ctx); cfm_process_heartbeat(xport->cfm, packet); } slow = SLOW_CFM; } else if (xport->bfd && bfd_should_process_flow(xport->bfd, flow, wc)) { if (packet) { + mirror_ingress_packet(ctx); bfd_process_packet(xport->bfd, flow, packet); /* If POLL received, immediately sends FINAL back. */ if (bfd_should_send_packet(xport->bfd)) { @@ -3180,12 +3182,14 @@ process_special(struct xlate_ctx *ctx, const struct xport *xport) } else if (xport->xbundle && xport->xbundle->lacp && flow->dl_type == htons(ETH_TYPE_LACP)) { if (packet) { + mirror_ingress_packet(ctx); lacp_process_packet(xport->xbundle->lacp, xport->ofport, packet); } slow = SLOW_LACP; } else if ((xbridge->stp || xbridge->rstp) && stp_should_process_flow(flow, wc)) { if (packet) { + mirror_ingress_packet(ctx); xbridge->stp ? stp_process_packet(xport, packet) : rstp_process_packet(xport, packet); @@ -3193,6 +3197,7 @@ process_special(struct xlate_ctx *ctx, const struct xport *xport) slow = SLOW_STP; } else if (xport->lldp && lldp_should_process_flow(xport->lldp, flow)) { if (packet) { + mirror_ingress_packet(ctx); _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
