X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdpif-netdev.c;h=5021874e749a0c2ffc7a664f6744f051a72d347f;hb=b4d76c80a078dcf641f36aa3b3b50a5667a27e16;hp=c4cc6e98357f594124f7ba14199da3f7a3c58c5b;hpb=9d82ec478d52edfddd215dff1b0659ed7508b365;p=openvswitch diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index c4cc6e98..5021874e 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -99,7 +99,7 @@ struct dp_netdev_flow { flow_t key; /* Statistics. */ - struct timeval used; /* Last used time, in milliseconds. */ + struct timespec used; /* Last used time. */ long long int packet_count; /* Number of packets matched. */ long long int byte_count; /* Number of bytes matched. */ uint8_t ip_tos; /* IP TOS value. */ @@ -375,11 +375,8 @@ do_add_port(struct dp_netdev *dp, const char *devname, uint16_t flags, memset(&netdev_options, 0, sizeof netdev_options); netdev_options.name = devname; netdev_options.ethertype = NETDEV_ETH_TYPE_ANY; - netdev_options.may_create = true; if (internal) { netdev_options.type = "tap"; - } else { - netdev_options.may_open = true; } error = netdev_open(&netdev_options, &netdev); @@ -683,7 +680,7 @@ answer_flow_query(struct dp_netdev_flow *flow, uint32_t query_flags, odp_flow->stats.n_packets = flow->packet_count; odp_flow->stats.n_bytes = flow->byte_count; odp_flow->stats.used_sec = flow->used.tv_sec; - odp_flow->stats.used_nsec = flow->used.tv_usec * 1000; + odp_flow->stats.used_nsec = flow->used.tv_nsec; odp_flow->stats.tcp_flags = TCP_FLAGS(flow->tcp_ctl); odp_flow->stats.ip_tos = flow->ip_tos; odp_flow->stats.error = 0; @@ -829,7 +826,7 @@ static void clear_stats(struct dp_netdev_flow *flow) { flow->used.tv_sec = 0; - flow->used.tv_usec = 0; + flow->used.tv_nsec = 0; flow->packet_count = 0; flow->byte_count = 0; flow->ip_tos = 0; @@ -1006,7 +1003,7 @@ static void dp_netdev_flow_used(struct dp_netdev_flow *flow, const flow_t *key, const struct ofpbuf *packet) { - time_timeval(&flow->used); + time_timespec(&flow->used); flow->packet_count++; flow->byte_count += packet->size; if (key->dl_type == htons(ETH_TYPE_IP)) {