aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/udp/udp.h
diff options
context:
space:
mode:
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>2019-05-13 16:25:50 +0200
committerFlorin Coras <florin.coras@gmail.com>2019-05-14 02:02:43 +0000
commit161638f14b967c9b11dee130c596f008c9e857c3 (patch)
tree9c969b7c2ed1b1646c8f986096fa6f20f7fc75a9 /src/vnet/udp/udp.h
parent07c0a9d0687a8f38b2863ada33836caf05399bac (diff)
Unregister UDPC port only when owned
Needed in QUIC, when cleaning up accepted UDP sessions Change-Id: Ifcb32687175562bed4ca69bdc519cedd4dc3c2bc Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Diffstat (limited to 'src/vnet/udp/udp.h')
-rw-r--r--src/vnet/udp/udp.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vnet/udp/udp.h b/src/vnet/udp/udp.h
index 03dbcdd5cac..f5efbbca0ff 100644
--- a/src/vnet/udp/udp.h
+++ b/src/vnet/udp/udp.h
@@ -41,6 +41,7 @@ typedef struct
transport_connection_t connection; /**< must be first */
clib_spinlock_t rx_lock; /**< rx fifo lock */
u8 is_connected; /**< connected mode */
+ u8 owns_port; /**< does port belong to conn (UDPC) */
} udp_connection_t;
#define foreach_udp4_dst_port \
@@ -234,6 +235,8 @@ udp_connection_clone_safe (u32 connection_index, u32 thread_index)
udp_pool_remove_peeker (thread_index);
new_c->c_thread_index = current_thread_index;
new_c->c_c_index = udp_connection_index (new_c);
+ new_c->is_connected = old_c->is_connected;
+ new_c->c_fib_index = old_c->c_fib_index;
return new_c;
}