Code Review
/
vpp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
review
|
tree
raw
|
patch
|
inline
| side by side (parent:
1bd2c01
)
tcp: allow local port sharing if 5-tuple available
73/26473/4
author
Florin Coras
<fcoras@cisco.com>
Fri, 10 Apr 2020 14:51:46 +0000
(14:51 +0000)
committer
Dave Barach
<openvpp@barachs.net>
Wed, 15 Apr 2020 14:04:04 +0000
(14:04 +0000)
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id0c4b46247e7419a328387678a4753cfb1e42d75
src/vnet/tcp/tcp.c
patch
|
blob
|
history
diff --git
a/src/vnet/tcp/tcp.c
b/src/vnet/tcp/tcp.c
index
b1ae374
..
e4335e0
100644
(file)
--- a/
src/vnet/tcp/tcp.c
+++ b/
src/vnet/tcp/tcp.c
@@
-764,7
+764,20
@@
tcp_session_open (transport_endpoint_cfg_t * rmt)
rmt, &lcl_addr, &lcl_port);
if (rv)
rmt, &lcl_addr, &lcl_port);
if (rv)
- return rv;
+ {
+ if (rv != SESSION_E_PORTINUSE)
+ return rv;
+
+ if (session_lookup_connection (rmt->fib_index, &lcl_addr, &rmt->ip,
+ lcl_port, rmt->port, TRANSPORT_PROTO_UDP,
+ rmt->is_ip4))
+ return SESSION_E_PORTINUSE;
+
+ /* 5-tuple is available so increase lcl endpoint refcount and proceed
+ * with connection allocation */
+ transport_share_local_endpoint (TRANSPORT_PROTO_UDP, &lcl_addr,
+ lcl_port);
+ }
/*
* Create connection and send SYN
/*
* Create connection and send SYN