mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 06:15:47 +00:00
flow: Move flow_extract_stats() to dpif.c, as dpif_flow_stats_extract().
The "flow" module is concerned only with OpenFlow flows these days. It shouldn't have anything to do with ODP or dpifs. However, it included dpif.h just to implement flow_extract_stats(). This function is a better fit for dpif.c, so this commit moves it there and removes the dpif.h #include from flow.h and flow.c This commit also removes a few more dpif.h #includes that weren't needed.
This commit is contained in:
21
lib/flow.c
21
lib/flow.c
@@ -26,7 +26,6 @@
|
||||
#include <string.h>
|
||||
#include "byte-order.h"
|
||||
#include "coverage.h"
|
||||
#include "dpif.h"
|
||||
#include "dynamic-string.h"
|
||||
#include "hash.h"
|
||||
#include "ofpbuf.h"
|
||||
@@ -424,26 +423,6 @@ flow_extract(struct ofpbuf *packet, ovs_be64 tun_id, uint16_t ofp_in_port,
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* Extracts the flow stats for a packet. The 'flow' and 'packet'
|
||||
* arguments must have been initialized through a call to flow_extract().
|
||||
*/
|
||||
void
|
||||
flow_extract_stats(const struct flow *flow, struct ofpbuf *packet,
|
||||
struct dpif_flow_stats *stats)
|
||||
{
|
||||
memset(stats, 0, sizeof(*stats));
|
||||
|
||||
if ((flow->dl_type == htons(ETH_TYPE_IP)) && packet->l4) {
|
||||
if ((flow->nw_proto == IPPROTO_TCP) && packet->l7) {
|
||||
struct tcp_header *tcp = packet->l4;
|
||||
stats->tcp_flags = TCP_FLAGS(tcp->tcp_ctl);
|
||||
}
|
||||
}
|
||||
|
||||
stats->n_bytes = packet->size;
|
||||
stats->n_packets = 1;
|
||||
}
|
||||
|
||||
/* For every bit of a field that is wildcarded in 'wildcards', sets the
|
||||
* corresponding bit in 'flow' to zero. */
|
||||
void
|
||||
|
Reference in New Issue
Block a user