diff options
author | William Tu <u9012063@gmail.com> | 2020-04-27 08:42:29 -0700 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2021-01-26 20:57:14 +0100 |
commit | b3a59a24a1db48dd6fe951443028577fa66890ae (patch) | |
tree | fb9886459f23a8714303f5bce672453da377cca9 | |
parent | d4f84875e301e5dbe1ccaf4bbccfc233037445a8 (diff) | |
download | openvswitch-b3a59a24a1db48dd6fe951443028577fa66890ae.tar.gz |
conntrack: Fix icmp conntrack state.
ICMP conntrack state should be ICMPS_REPLY after seeing both
side of ICMP traffic.
Signed-off-by: William Tu <u9012063@gmail.com>
Acked-by: Yi-Hung Wei <yihung.wei@gmail.com>
-rw-r--r-- | lib/conntrack-icmp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/conntrack-icmp.c b/lib/conntrack-icmp.c index 63246f012..6cbf9656d 100644 --- a/lib/conntrack-icmp.c +++ b/lib/conntrack-icmp.c @@ -50,9 +50,12 @@ icmp_conn_update(struct conntrack *ct, struct conn *conn_, struct dp_packet *pkt OVS_UNUSED, bool reply, long long now) { struct conn_icmp *conn = conn_icmp_cast(conn_); - conn->state = reply ? ICMPS_REPLY : ICMPS_FIRST; - conn_update_expiration(ct, &conn->up, icmp_timeouts[conn->state], now); + if (reply && conn->state == ICMPS_FIRST) { + conn->state = ICMPS_REPLY; + } + + conn_update_expiration(ct, &conn->up, icmp_timeouts[conn->state], now); return CT_UPDATE_VALID; } |