X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdpif.h;h=45c78a55071ce32525f3c884ce2c7a5e50a5ea5b;hb=4cceacb94cfc1d75a961d3d746d2ae369c397ae5;hp=3fd33f00d0c9d821eb7f2587760de33ef795e668;hpb=c2b565b54e36bc33d0406afb225c9bf3d01405ef;p=openvswitch diff --git a/lib/dpif.h b/lib/dpif.h index 3fd33f00..45c78a55 100644 --- a/lib/dpif.h +++ b/lib/dpif.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. + * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -128,8 +128,8 @@ struct dpif_flow_stats { uint8_t tcp_flags; }; -void dpif_flow_stats_extract(const struct flow *, struct ofpbuf *packet, - struct dpif_flow_stats *); +void dpif_flow_stats_extract(const struct flow *, const struct ofpbuf *packet, + long long int used, struct dpif_flow_stats *); void dpif_flow_stats_format(const struct dpif_flow_stats *, struct ds *); enum dpif_flow_put_flags { @@ -177,7 +177,8 @@ int dpif_execute(struct dpif *, enum dpif_op_type { DPIF_OP_FLOW_PUT = 1, - DPIF_OP_EXECUTE + DPIF_OP_FLOW_DEL, + DPIF_OP_EXECUTE, }; struct dpif_flow_put { @@ -192,6 +193,15 @@ struct dpif_flow_put { struct dpif_flow_stats *stats; /* Optional flow statistics. */ }; +struct dpif_flow_del { + /* Input. */ + const struct nlattr *key; /* Flow to delete. */ + size_t key_len; /* Length of 'key' in bytes. */ + + /* Output. */ + struct dpif_flow_stats *stats; /* Optional flow statistics. */ +}; + struct dpif_execute { const struct nlattr *key; /* Partial flow key (only for metadata). */ size_t key_len; /* Length of 'key' in bytes. */ @@ -205,6 +215,7 @@ struct dpif_op { int error; union { struct dpif_flow_put flow_put; + struct dpif_flow_del flow_del; struct dpif_execute execute; } u; }; @@ -240,7 +251,7 @@ struct dpif_upcall { }; int dpif_recv_set(struct dpif *, bool enable); -int dpif_recv(struct dpif *, struct dpif_upcall *); +int dpif_recv(struct dpif *, struct dpif_upcall *, struct ofpbuf *); void dpif_recv_purge(struct dpif *); void dpif_recv_wait(struct dpif *);