X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Fnetflow.c;h=e9382afe9be707b2feccd6d0d2d84992e29265be;hb=003ce655b7116d18c86a74c50391e54990346931;hp=a09374999f156d7082be2ac8f9aaec7230575736;hpb=8917f72cbb04fb32dc29f93475bcd2de3011d442;p=sliver-openvswitch.git diff --git a/ofproto/netflow.c b/ofproto/netflow.c index a09374999..e9382afe9 100644 --- a/ofproto/netflow.c +++ b/ofproto/netflow.c @@ -110,7 +110,7 @@ gen_netflow_rec(struct netflow *nf, struct netflow_flow *nf_flow, struct netflow_v5_header *nf_hdr; struct netflow_v5_record *nf_rec; - if (!nf->packet.size) { + if (!ofpbuf_size(&nf->packet)) { struct timespec now; time_wall_timespec(&now); @@ -127,7 +127,7 @@ gen_netflow_rec(struct netflow *nf, struct netflow_flow *nf_flow, nf_hdr->sampling_interval = htons(0); } - nf_hdr = nf->packet.data; + nf_hdr = ofpbuf_data(&nf->packet); nf_hdr->count = htons(ntohs(nf_hdr->count) + 1); nf_rec = ofpbuf_put_zeros(&nf->packet, sizeof *nf_rec); @@ -270,7 +270,6 @@ netflow_expire__(struct netflow *nf, struct netflow_flow *nf_flow) } /* Update flow tracking data. */ - nf_flow->created = 0; nf_flow->packet_count = 0; nf_flow->byte_count = 0; nf_flow->tcp_flags = 0; @@ -313,9 +312,9 @@ netflow_run__(struct netflow *nf) OVS_REQUIRES(mutex) long long int now = time_msec(); struct netflow_flow *nf_flow, *next; - if (nf->packet.size) { - collectors_send(nf->collectors, nf->packet.data, nf->packet.size); - nf->packet.size = 0; + if (ofpbuf_size(&nf->packet)) { + collectors_send(nf->collectors, ofpbuf_data(&nf->packet), ofpbuf_size(&nf->packet)); + ofpbuf_set_size(&nf->packet, 0); } if (!nf->active_timeout || now < nf->next_timeout) { @@ -354,7 +353,7 @@ netflow_wait(struct netflow *nf) OVS_EXCLUDED(mutex) if (nf->active_timeout) { poll_timer_wait_until(nf->next_timeout); } - if (nf->packet.size) { + if (ofpbuf_size(&nf->packet)) { poll_immediate_wake(); } ovs_mutex_unlock(&mutex);