X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdpif.c;h=febe8b0223cbe484459720e5a8157b3fb5239736;hb=7e041ba51410125ec74cba2b5f0b6f1b0481baa9;hp=37c001285fb64a53ee53f1862e4f704bc01dee7e;hpb=f23d28456f4ce2c4720a9c100ceff828b79c2360;p=openvswitch diff --git a/lib/dpif.c b/lib/dpif.c index 37c00128..febe8b02 100644 --- a/lib/dpif.c +++ b/lib/dpif.c @@ -675,18 +675,11 @@ dpif_port_poll_wait(const struct dpif *dpif) * arguments must have been initialized through a call to flow_extract(). */ void -dpif_flow_stats_extract(const struct flow *flow, struct ofpbuf *packet, +dpif_flow_stats_extract(const struct flow *flow, const 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->tcp_flags = packet_get_tcp_flags(packet, flow); stats->n_bytes = packet->size; stats->n_packets = 1; }