aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/buffer.h
diff options
context:
space:
mode:
authorKlement Sekera <ksekera@cisco.com>2019-10-10 09:46:06 +0000
committerOle Trøan <otroan@employees.org>2020-01-03 10:10:15 +0000
commitf126e746fc01c75bc99329d10ce9127b26b23814 (patch)
treefaf9f09a363add6e140f30e25187b330843b3d21 /src/vnet/buffer.h
parent3535501b19aec95dfd32870c784f841f57b5c045 (diff)
nat: use SVR
Remove NAT's implementation of shallow virtual reassembly with corresponding CLIs, APIs & tests. Replace with standalone shallow virtual reassembly provided by ipX-sv-reass* nodes. Type: refactor Change-Id: I7e6c7487a5a500d591f6871474a359e0993e59b6 Signed-off-by: Klement Sekera <ksekera@cisco.com>
Diffstat (limited to 'src/vnet/buffer.h')
-rw-r--r--src/vnet/buffer.h45
1 files changed, 26 insertions, 19 deletions
diff --git a/src/vnet/buffer.h b/src/vnet/buffer.h
index 59a8256b902..b174587efdd 100644
--- a/src/vnet/buffer.h
+++ b/src/vnet/buffer.h
@@ -185,9 +185,8 @@ typedef struct
/* reassembly */
union
{
- /* group input/output/handoff to simplify the code, this way:
- * we can handoff while keeping input variables intact
- * and also we can write the output and still use next_index later */
+ /* group input/output to simplify the code, this way
+ * we can handoff while keeping input variables intact */
struct
{
/* input variables */
@@ -201,23 +200,28 @@ typedef struct
{
u16 owner_thread_index;
};
- /* output variables */
- struct
+ };
+ /* output variables */
+ struct
+ {
+ union
{
- union
+ /* shallow virtual reassembly output variables */
+ struct
{
- /* shallow virtual reassembly output variables */
- struct
- {
- u8 ip_proto; /* protocol in ip header */
- u16 l4_src_port; /* tcp/udp/icmp src port */
- u16 l4_dst_port; /* tcp/udp/icmp dst port */
- };
- /* full reassembly output variables */
- struct
- {
- u16 estimated_mtu; /* estimated MTU calculated during reassembly */
- };
+ u8 ip_proto; /* protocol in ip header */
+ u8 icmp_type_or_tcp_flags;
+ u8 is_non_first_fragment;
+ u8 save_rewrite_length;
+ u16 l4_src_port; /* tcp/udp/icmp src port */
+ u16 l4_dst_port; /* tcp/udp/icmp dst port */
+ u32 tcp_ack_number;
+ u32 tcp_seq_number;
+ };
+ /* full reassembly output variables */
+ struct
+ {
+ u16 estimated_mtu; /* estimated MTU calculated during reassembly */
};
};
};
@@ -384,7 +388,10 @@ typedef struct
STATIC_ASSERT (STRUCT_SIZE_OF (vnet_buffer_opaque_t, ip.save_rewrite_length)
== STRUCT_SIZE_OF (vnet_buffer_opaque_t,
- mpls.save_rewrite_length)
+ ip.reass.save_rewrite_length)
+ && STRUCT_SIZE_OF (vnet_buffer_opaque_t,
+ ip.reass.save_rewrite_length) ==
+ STRUCT_SIZE_OF (vnet_buffer_opaque_t, mpls.save_rewrite_length)
&& STRUCT_SIZE_OF (vnet_buffer_opaque_t,
mpls.save_rewrite_length) == 1
&& VNET_REWRITE_TOTAL_BYTES < UINT8_MAX,