[ovs-dev] [PATCH] conntrack: fix sport selection for dnat case
wenxu at ucloud.cn
wenxu at ucloud.cn
Fri Aug 27 05:52:35 UTC 2021
From: wenxu <wenxu at ucloud.cn>
For DNAT case the sport should never modified.
Fixes: 61e48c2d1db2 ("conntrack: Handle SNAT with all-zero IP address")
Signed-off-by: wenxu <wenxu at ucloud.cn>
---
lib/conntrack.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/lib/conntrack.c b/lib/conntrack.c
index 551c206..0b27c67 100644
--- a/lib/conntrack.c
+++ b/lib/conntrack.c
@@ -2258,11 +2258,12 @@ set_sport_range(struct nat_action_info_t *ni, const struct conn_key *k,
uint32_t hash, uint16_t *curr, uint16_t *min,
uint16_t *max)
{
- if (((ni->nat_action & NAT_ACTION_SNAT_ALL) == NAT_ACTION_SRC) ||
- ((ni->nat_action & NAT_ACTION_DST))) {
+ if ((ni->nat_action & NAT_ACTION_SNAT_ALL) == NAT_ACTION_SRC) {
*curr = ntohs(k->src.port);
*min = MIN_NAT_EPHEMERAL_PORT;
- *max = MAX_NAT_EPHEMERAL_PORT;
+ } else if (ni->nat_action & NAT_ACTION_DST) {
+ *curr = ntohs(k->src.port);
+ *min = *max = *curr;
} else {
*min = ni->min_port;
*max = ni->max_port;
--
1.8.3.1
More information about the dev
mailing list