Commit cdc8770f authored by Stefan Spettel's avatar Stefan Spettel

fix(upf): remove gtp_ext_hdr.patch for N9 support (may break rfsimulator)

parent a6a057e2
--- a/src/plugins/upf/upf_gtpu_encap.c 2021-03-07 13:19:40.937167871 +0000
+++ b/src/plugins/upf/upf_gtpu_encap.c 2021-03-07 15:27:03.082328061 +0000
@@ -604,6 +604,7 @@
ip6_header_t *ip6_0;
udp_header_t *udp0;
gtpu_header_t *gtpu0;
+ gtpu_ext_header_t *gtpu0_ext;
u64 *copy_src0, *copy_dst0;
u32 *copy_src_last0, *copy_dst_last0;
u16 new_l0;
@@ -636,6 +637,9 @@
next0 = peer0->next_dpo.dpoi_next_node;
vnet_buffer (b0)->ip.adj_index[VLIB_TX] =
peer0->next_dpo.dpoi_index;
+
+ upf_buffer_opaque (b0)->gtpu.ext_hdr_len = 0x08;
+ vlib_buffer_advance (b0, -upf_buffer_opaque (b0)->gtpu.ext_hdr_len);
if (PREDICT_FALSE ((upf_buffer_opaque (b0)->gtpu.hdr_flags & GTPU_E_S_PN_BIT) != 0))
vlib_buffer_advance (b0, -upf_buffer_opaque (b0)->gtpu.ext_hdr_len);
@@ -681,9 +685,19 @@
new_l0 =
clib_host_to_net_u16 (vlib_buffer_length_in_chain (vm, b0) -
sizeof (*ip4_0) - sizeof (*udp0) -
- GTPU_V1_HDR_LEN);
+// GTPU_V1_HDR_LEN);
+ GTPU_V1_HDR_LEN + GTPU_V1_EXT_HDR_LEN);
gtpu0->length = new_l0;
- gtpu0->ver_flags |= (upf_buffer_opaque (b0)->gtpu.hdr_flags & GTPU_E_S_PN_BIT);
+// gtpu0->ver_flags |= (upf_buffer_opaque (b0)->gtpu.hdr_flags & GTPU_E_S_PN_BIT);
+ gtpu0->ver_flags = GTPU_EXT_HDR_PRESENT;
+ gtpu0->pdu_number = 0x00;
+ gtpu0->sequence = 0x00;
+ gtpu0->next_ext_type = GTPU_EXT_HDR_PDU_SESSION_CONTAINER;
+
+ gtpu0_ext = (gtpu_ext_header_t *) (gtpu0 + 1);
+ gtpu0_ext->type = 0x01;
+ gtpu0_ext->len = 0x00;
+ gtpu0_ext->pad = GTPU_QFI;
}
else /* ip6 path */
--- a/src/plugins/upf/upf.h 2021-03-07 13:19:40.937167871 +0000
+++ b/src/plugins/upf/upf.h 2021-03-07 12:51:36.726939875 +0000
@@ -167,7 +167,8 @@
}) gtpu_ie_recovery_t;
/* *INDENT-ON* */
-#define GTPU_V1_HDR_LEN 8
+#define GTPU_V1_HDR_LEN 8
+#define GTPU_V1_EXT_HDR_LEN 8
#define GTPU_VER_MASK (7<<5)
#define GTPU_PT_BIT (1<<4)
@@ -187,6 +188,11 @@
#define GTPU_IE_RECOVERY 14
+#define GTPU_EXT_HDR_PRESENT 52
+#define GTPU_EXT_HDR_PDU_SESSION_CONTAINER 133
+#define GTPU_NO_MORE_EXT_HDR 0
+#define GTPU_QFI 6
+
/* *INDENT-OFF* */
typedef CLIB_PACKED(struct
{
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment