summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/Conntrack-other.c
diff options
context:
space:
mode:
authorRui Cao <rcao@vmware.com>2020-06-23 06:46:22 +0000
committerWilliam Tu <u9012063@gmail.com>2020-06-27 16:49:54 -0700
commit7d68168468b1f862953d38010cbf3d1079eaf621 (patch)
tree5a8155eb2b463786e1ae77fb61426805e0f1ba0a /datapath-windows/ovsext/Conntrack-other.c
parent98670b77ffe8b36c9d5089022ee36680aeecc542 (diff)
downloadopenvswitch-7d68168468b1f862953d38010cbf3d1079eaf621.tar.gz
datapath-windows, conntrack: Fix conntrack new state
On windows, if we send a connection setup packet in one direction twice, it will make the connection to be in established state. The same issue happened in Linux userspace conntrack module and has been fixed. This patch port the following previous fixes to windows datapath to fix the issue: - a867c010ee9183885ee9d3eb76a0005c075c4d2e - ac23d20fc90da3b1c9b2117d1e22102e99fba006 Acked-by: Yi-Hung Wei <yihung.wei@gmail.com> Signed-off-by: Rui Cao <rcao@vmware.com> Signed-off-by: William Tu <u9012063@gmail.com>
Diffstat (limited to 'datapath-windows/ovsext/Conntrack-other.c')
-rw-r--r--datapath-windows/ovsext/Conntrack-other.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/datapath-windows/ovsext/Conntrack-other.c b/datapath-windows/ovsext/Conntrack-other.c
index 962cc8ac6..8580415a6 100644
--- a/datapath-windows/ovsext/Conntrack-other.c
+++ b/datapath-windows/ovsext/Conntrack-other.c
@@ -49,17 +49,19 @@ OvsConntrackUpdateOtherEntry(OVS_CT_ENTRY *conn_,
{
ASSERT(conn_);
struct conn_other *conn = OvsCastConntrackEntryToOtherEntry(conn_);
+ enum CT_UPDATE_RES ret = CT_UPDATE_VALID;
if (reply && conn->state != OTHERS_BIDIR) {
conn->state = OTHERS_BIDIR;
} else if (conn->state == OTHERS_FIRST) {
conn->state = OTHERS_MULTIPLE;
+ ret = CT_UPDATE_VALID_NEW;
}
OvsConntrackUpdateExpiration(&conn->up, now,
other_timeouts[conn->state]);
- return CT_UPDATE_VALID;
+ return ret;
}
OVS_CT_ENTRY *