2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-11 13:57:52 +00:00

ct-dpif: Add ct_dpif_flush().

This function will flush the connection tracking tables of a specific
datapath.

It simply calls a function pointer in the dpif_class. No dpif
currently implements the required interface.

The next commits will provide an implementation in dpif-netlink.

Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
Acked-by: Joe Stringer <joe@ovn.org>
This commit is contained in:
Daniele Di Proietto
2015-10-28 10:32:32 -07:00
parent b77d9629ad
commit a0f7b6d525
5 changed files with 18 additions and 0 deletions

View File

@@ -108,6 +108,17 @@ ct_dpif_dump_done(struct ct_dpif_dump_state *dump)
: EOPNOTSUPP);
}
/* Flush the entries in the connection tracker used by 'dpif'.
*
* If 'zone' is not NULL, flush only the entries in '*zone'. */
int
ct_dpif_flush(struct dpif *dpif, const uint16_t *zone)
{
return (dpif->dpif_class->ct_flush
? dpif->dpif_class->ct_flush(dpif, zone)
: EOPNOTSUPP);
}
void
ct_dpif_entry_uninit(struct ct_dpif_entry *entry)
{

View File

@@ -179,6 +179,7 @@ int ct_dpif_dump_start(struct dpif *, struct ct_dpif_dump_state **,
const uint16_t *zone);
int ct_dpif_dump_next(struct ct_dpif_dump_state *, struct ct_dpif_entry *);
int ct_dpif_dump_done(struct ct_dpif_dump_state *);
int ct_dpif_flush(struct dpif *, const uint16_t *zone);
void ct_dpif_entry_uninit(struct ct_dpif_entry *);
void ct_dpif_format_entry(const struct ct_dpif_entry *, struct ds *,
bool verbose, bool print_stats);

View File

@@ -3688,6 +3688,7 @@ const struct dpif_class dpif_netdev_class = {
NULL, /* ct_dump_start */
NULL, /* ct_dump_next */
NULL, /* ct_dump_done */
NULL, /* ct_flush */
};
static void

View File

@@ -2322,6 +2322,7 @@ const struct dpif_class dpif_netlink_class = {
NULL, /* ct_dump_start */
NULL, /* ct_dump_next */
NULL, /* ct_dump_done */
NULL, /* ct_flush */
};
static int

View File

@@ -415,6 +415,10 @@ struct dpif_class {
int (*ct_dump_next)(struct dpif *, struct ct_dpif_dump_state *,
struct ct_dpif_entry *entry);
int (*ct_dump_done)(struct dpif *, struct ct_dpif_dump_state *state);
/* Flushes the connection tracking tables. If 'zone' is not NULL,
* only deletes connections in '*zone'. */
int (*ct_flush)(struct dpif *, const uint16_t *zone);
};
extern const struct dpif_class dpif_netlink_class;