Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
thread: Add show threads api
[vpp.git]
/
src
/
plugins
/
nat
/
dslite_in2out.c
diff --git
a/src/plugins/nat/dslite_in2out.c
b/src/plugins/nat/dslite_in2out.c
index
5456891
..
4eec595
100644
(file)
--- a/
src/plugins/nat/dslite_in2out.c
+++ b/
src/plugins/nat/dslite_in2out.c
@@
-13,6
+13,7
@@
* limitations under the License.
*/
#include <nat/dslite.h>
* limitations under the License.
*/
#include <nat/dslite.h>
+#include <nat/nat_inlines.h>
vlib_node_registration_t dslite_in2out_node;
vlib_node_registration_t dslite_in2out_slowpath_node;
vlib_node_registration_t dslite_in2out_node;
vlib_node_registration_t dslite_in2out_slowpath_node;
@@
-44,7
+45,6
@@
slow_path (dslite_main_t * dm, dslite_session_key_t * in2out_key,
u32 oldest_index;
dslite_session_t *s;
snat_session_key_t out2in_key;
u32 oldest_index;
dslite_session_t *s;
snat_session_key_t out2in_key;
- u32 address_index;
out2in_key.protocol = in2out_key->proto;
out2in_key.fib_index = 0;
out2in_key.protocol = in2out_key->proto;
out2in_key.fib_index = 0;
@@
-102,19
+102,17
@@
slow_path (dslite_main_t * dm, dslite_session_key_t * in2out_key,
clib_bihash_add_del_8_8 (&dm->per_thread_data[thread_index].out2in,
&out2in_kv, 0);
snat_free_outside_address_and_port (dm->addr_pool, thread_index,
clib_bihash_add_del_8_8 (&dm->per_thread_data[thread_index].out2in,
&out2in_kv, 0);
snat_free_outside_address_and_port (dm->addr_pool, thread_index,
- &s->out2in,
- s->outside_address_index);
- s->outside_address_index = ~0;
+ &s->out2in);
if (snat_alloc_outside_address_and_port
(dm->addr_pool, 0, thread_index, &out2in_key,
if (snat_alloc_outside_address_and_port
(dm->addr_pool, 0, thread_index, &out2in_key,
-
&s->outside_address_index, 0,
dm->port_per_thread, thread_index))
+ dm->port_per_thread, thread_index))
ASSERT (0);
}
else
{
if (snat_alloc_outside_address_and_port
ASSERT (0);
}
else
{
if (snat_alloc_outside_address_and_port
- (dm->addr_pool, 0, thread_index, &out2in_key,
&address_index, 0,
+ (dm->addr_pool, 0, thread_index, &out2in_key,
dm->port_per_thread, thread_index))
{
*error = DSLITE_ERROR_OUT_OF_PORTS;
dm->port_per_thread, thread_index))
{
*error = DSLITE_ERROR_OUT_OF_PORTS;
@@
-122,7
+120,6
@@
slow_path (dslite_main_t * dm, dslite_session_key_t * in2out_key,
}
pool_get (dm->per_thread_data[thread_index].sessions, s);
memset (s, 0, sizeof (*s));
}
pool_get (dm->per_thread_data[thread_index].sessions, s);
memset (s, 0, sizeof (*s));
- s->outside_address_index = address_index;
b4->nsessions++;
pool_get (dm->per_thread_data[thread_index].list_pool, elt);
b4->nsessions++;
pool_get (dm->per_thread_data[thread_index].list_pool, elt);
@@
-227,7
+224,7
@@
dslite_in2out_node_fn_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
dslite_in2out_next_t next_index;
u32 node_index;
vlib_node_runtime_t *error_node;
dslite_in2out_next_t next_index;
u32 node_index;
vlib_node_runtime_t *error_node;
- u32 thread_index = v
lib_get_thread_index ()
;
+ u32 thread_index = v
m->thread_index
;
f64 now = vlib_time_now (vm);
dslite_main_t *dm = &dslite_main;
f64 now = vlib_time_now (vm);
dslite_main_t *dm = &dslite_main;
@@
-377,6
+374,7
@@
dslite_in2out_node_fn_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
sum0 =
ip_csum_update (sum0, old_port0, new_port0, ip4_header_t,
length);
sum0 =
ip_csum_update (sum0, old_port0, new_port0, ip4_header_t,
length);
+ mss_clamping (&snat_main, tcp0, &sum0);
tcp0->checksum = ip_csum_fold (sum0);
}
else
tcp0->checksum = ip_csum_fold (sum0);
}
else