mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 14:25:26 +00:00
flow: New function flow_clear_conntrack().
This will have a new user in an upcoming commit. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Miguel Angel Ajo <majopela@redhat.com>
This commit is contained in:
21
lib/flow.c
21
lib/flow.c
@@ -1024,6 +1024,27 @@ ct_state_from_string(const char *s)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Clears the fields in 'flow' associated with connection tracking. */
|
||||
void
|
||||
flow_clear_conntrack(struct flow *flow)
|
||||
{
|
||||
flow->ct_state = 0;
|
||||
flow->ct_zone = 0;
|
||||
flow->ct_mark = 0;
|
||||
flow->ct_label = OVS_U128_ZERO;
|
||||
|
||||
flow->ct_nw_proto = 0;
|
||||
flow->ct_tp_src = 0;
|
||||
flow->ct_tp_dst = 0;
|
||||
if (flow->dl_type == htons(ETH_TYPE_IP)) {
|
||||
flow->ct_nw_src = 0;
|
||||
flow->ct_nw_dst = 0;
|
||||
} else if (flow->dl_type == htons(ETH_TYPE_IPV6)) {
|
||||
memset(&flow->ct_ipv6_src, 0, sizeof flow->ct_ipv6_src);
|
||||
memset(&flow->ct_ipv6_dst, 0, sizeof flow->ct_ipv6_dst);
|
||||
}
|
||||
}
|
||||
|
||||
char *
|
||||
flow_to_string(const struct flow *flow)
|
||||
{
|
||||
|
@@ -74,6 +74,7 @@ void flow_get_metadata(const struct flow *, struct match *flow_metadata);
|
||||
|
||||
const char *ct_state_to_string(uint32_t state);
|
||||
uint32_t ct_state_from_string(const char *);
|
||||
void flow_clear_conntrack(struct flow *);
|
||||
|
||||
char *flow_to_string(const struct flow *);
|
||||
void format_flags(struct ds *ds, const char *(*bit_to_string)(uint32_t),
|
||||
|
@@ -3216,23 +3216,7 @@ static void
|
||||
clear_conntrack(struct xlate_ctx *ctx)
|
||||
{
|
||||
ctx->conntracked = false;
|
||||
|
||||
struct flow *flow = &ctx->xin->flow;
|
||||
flow->ct_state = 0;
|
||||
flow->ct_zone = 0;
|
||||
flow->ct_mark = 0;
|
||||
flow->ct_label = OVS_U128_ZERO;
|
||||
|
||||
flow->ct_nw_proto = 0;
|
||||
flow->ct_tp_src = 0;
|
||||
flow->ct_tp_dst = 0;
|
||||
if (flow->dl_type == htons(ETH_TYPE_IP)) {
|
||||
flow->ct_nw_src = 0;
|
||||
flow->ct_nw_dst = 0;
|
||||
} if (flow->dl_type == htons(ETH_TYPE_IPV6)) {
|
||||
memset(&flow->ct_ipv6_src, 0, sizeof flow->ct_ipv6_src);
|
||||
memset(&flow->ct_ipv6_dst, 0, sizeof flow->ct_ipv6_dst);
|
||||
}
|
||||
flow_clear_conntrack(&ctx->xin->flow);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
Reference in New Issue
Block a user