NetFlow v5 only supports IPv4, so don't bother un-wildcarding non-IPv4 packets.
Signed-off-by: Justin Pettit <jpet...@nicira.com> --- ofproto/netflow.c | 5 ++++- ofproto/netflow.h | 2 +- ofproto/ofproto-dpif-xlate.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ofproto/netflow.c b/ofproto/netflow.c index c7eb2b5..19ca80f 100644 --- a/ofproto/netflow.c +++ b/ofproto/netflow.c @@ -52,8 +52,11 @@ struct netflow { }; void -netflow_mask_wc(struct flow_wildcards *wc) +netflow_mask_wc(struct flow *flow, struct flow_wildcards *wc) { + if (flow->dl_type != htons(ETH_TYPE_IP)) { + return; + } memset(&wc->masks.nw_proto, 0xff, sizeof wc->masks.nw_proto); memset(&wc->masks.nw_src, 0xff, sizeof wc->masks.nw_src); memset(&wc->masks.nw_dst, 0xff, sizeof wc->masks.nw_dst); diff --git a/ofproto/netflow.h b/ofproto/netflow.h index 7e6debc..e2366f6 100644 --- a/ofproto/netflow.h +++ b/ofproto/netflow.h @@ -62,7 +62,7 @@ void netflow_expire(struct netflow *, struct netflow_flow *, bool netflow_run(struct netflow *); void netflow_wait(struct netflow *); -void netflow_mask_wc(struct flow_wildcards *); +void netflow_mask_wc(struct flow *, struct flow_wildcards *); void netflow_flow_init(struct netflow_flow *); void netflow_flow_clear(struct netflow_flow *); diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index e338fc4..2033844 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -1902,7 +1902,7 @@ xlate_actions(struct xlate_in *xin, struct xlate_out *xout) memset(&wc->masks.tunnel, 0xff, sizeof wc->masks.tunnel); } if (xin->ofproto->netflow) { - netflow_mask_wc(wc); + netflow_mask_wc(flow, wc); } ctx.xout->tags = 0; -- 1.7.5.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev