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:
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user