NetFlow v5 only supports IPv4, so don't bother un-wildcarding
non-IPv4 packets.
Signed-off-by: Justin Pettit <jpettit@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
};
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);
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 *);
/* Disable most wildcarding for NetFlow. */
if (xin->ofproto->netflow) {
- netflow_mask_wc(wc);
+ netflow_mask_wc(&ctx.xin->flow, wc);
}
ctx.xout->tags = 0;