Commit 0ab4bece authored by wangyongshou's avatar wangyongshou

support the sessions 65536

parent 2f6109b0
...@@ -52,8 +52,8 @@ static fib_source_t upf_fib_source; ...@@ -52,8 +52,8 @@ static fib_source_t upf_fib_source;
#include <arpa/inet.h> #include <arpa/inet.h>
#define SESSIONS_MAX 1024 #define SESSIONS_MAX 1024*64
#define UE_IPS_MAX 1024 #define UE_IPS_MAX 1024*64
#define EXT_NUM_MAX 10 #define EXT_NUM_MAX 10
#define PEERS_NUM_MAX 32 #define PEERS_NUM_MAX 32
......
...@@ -54,11 +54,11 @@ unix_main_t *um = &unix_main; ...@@ -54,11 +54,11 @@ unix_main_t *um = &unix_main;
extern vlib_main_t vlib_global_main; extern vlib_main_t vlib_global_main;
extern upf_ueip_dl_gtpu4_header_t *upf_ueip_dl_gtpu4_header; extern upf_ueip_dl_gtpu4_header_t *upf_ueip_dl_gtpu4_header;
extern upf_if_info_t *if_info ; extern upf_if_info_t *if_info ;
#define UPF_BUF 1024 #define UPF_BUF 1024
const u32 gtpu_n3_dst_sw_if_index = 1; #define UPF_GTPU_N3_DST_SW_IF_INDEX 1
//cmd //cmd
#define GTPU_TUNNEL_ADD "create gtpu tunnel src %s dst %s teid %u encap-vrf-id 0 decap-next node ip4-lookup\n" #define GTPU_TUNNEL_ADD "create gtpu tunnel src %s dst %s teid %u encap-vrf-id 0 decap-next node ip4-lookup\n"
...@@ -154,19 +154,9 @@ upf_ip_udp_gtpu_rewrite (/*upf_far_forward_t * ff */upf_far_t *ff, u32 fib_index ...@@ -154,19 +154,9 @@ upf_ip_udp_gtpu_rewrite (/*upf_far_forward_t * ff */upf_far_t *ff, u32 fib_index
.rw = 0 .rw = 0
}; };
#if 0
if(ff->forward.rewrite)
{
clib_upf_debug(um->log_fd,"free, rewrite:%p", ff->forward.rewrite);
vec_free(ff->forward.rewrite);
}
#endif
int len = is_ip4 ? sizeof *r.h4 : sizeof *r.h6; int len = is_ip4 ? sizeof *r.h4 : sizeof *r.h6;
vec_validate_aligned (r.rw, len - 1, CLIB_CACHE_LINE_BYTES); vec_validate_aligned (r.rw, len - 1, CLIB_CACHE_LINE_BYTES);
clib_upf_debug(um->log_fd,"far_id:%u,rw:%p,rewrite:%p", ff->id, r.rw, ff->forward.rewrite); clib_upf_debug(um->log_fd,"far_id:%u,rw:%p,rewrite:%p", ff->id, r.rw, ff->forward.rewrite);
...@@ -193,7 +183,7 @@ upf_ip_udp_gtpu_rewrite (/*upf_far_forward_t * ff */upf_far_t *ff, u32 fib_index ...@@ -193,7 +183,7 @@ upf_ip_udp_gtpu_rewrite (/*upf_far_forward_t * ff */upf_far_t *ff, u32 fib_index
//After gtpu N3 is created, the interface index in VPP is 1, currently fixed value; //After gtpu N3 is created, the interface index in VPP is 1, currently fixed value;
//const u32 gtpu_n3_dst_sw_if_index = 1; //192.168.10.10 //const u32 gtpu_n3_dst_sw_if_index = 1; //192.168.10.10
ip4_address_t src_address = *(ip4_address_t *)ip_interface_get_first_ip (gtpu_n3_dst_sw_if_index, is_ip4); ip4_address_t src_address = *(ip4_address_t *)ip_interface_get_first_ip (UPF_GTPU_N3_DST_SW_IF_INDEX, is_ip4);
ip->src_address.data_u32 = src_address.data_u32; ip->src_address.data_u32 = src_address.data_u32;
ip->dst_address = ff->forward.outer_header_creation.ip.ip4; ip->dst_address = ff->forward.outer_header_creation.ip.ip4;
...@@ -960,8 +950,6 @@ bupt_handle_modify_update_pdr(upf_main_t *sm, upf_session_t *sx, vl_api_upf_ssm_ ...@@ -960,8 +950,6 @@ bupt_handle_modify_update_pdr(upf_main_t *sm, upf_session_t *sx, vl_api_upf_ssm_
{ {
u32 gnb_ip4 = 0; u32 gnb_ip4 = 0;
update_pdr->placeholder = 1; update_pdr->placeholder = 1;
update_pdr->precedence = clib_net_to_host_u16(mp->update_pdr.precedence); update_pdr->precedence = clib_net_to_host_u16(mp->update_pdr.precedence);
...@@ -1106,15 +1094,12 @@ bupt_handle_modify_update_pdr(upf_main_t *sm, upf_session_t *sx, vl_api_upf_ssm_ ...@@ -1106,15 +1094,12 @@ bupt_handle_modify_update_pdr(upf_main_t *sm, upf_session_t *sx, vl_api_upf_ssm_
//gnb old ip -> new ip //gnb old ip -> new ip
gtpu_dl->gnb_ip = clib_net_to_host_u32(gnb_ip4); gtpu_dl->gnb_ip = clib_net_to_host_u32(gnb_ip4);
//update_pdr->far_id = 1;
upf_far_t *far = NULL; upf_far_t *far = NULL;
for(int i = 0; i< UPF_FAR_MAX; i++) for(int i = 0; i< UPF_FAR_MAX; i++)
{ {
far = sx->rules[0].far + i; far = sx->rules[0].far + i;
clib_upf_debug(um->log_fd,"far->id:%u,update_pdr->far_id:%u, gtpu_dl->far_id:%u",far->id,update_pdr->far_id, gtpu_dl->far_id); clib_upf_debug(um->log_fd,"far->id:%u,update_pdr->far_id:%u, gtpu_dl->far_id:%u",far->id,update_pdr->far_id, gtpu_dl->far_id);
//if(far->id == update_pdr->far_id)
if(far->id == gtpu_dl->far_id) if(far->id == gtpu_dl->far_id)
{ {
clib_upf_debug(um->log_fd,"find pdr_id:%u, far_id:%u", update_pdr->id, far->id); clib_upf_debug(um->log_fd,"find pdr_id:%u, far_id:%u", update_pdr->id, far->id);
...@@ -1155,7 +1140,7 @@ bupt_handle_modify_update_pdr(upf_main_t *sm, upf_session_t *sx, vl_api_upf_ssm_ ...@@ -1155,7 +1140,7 @@ bupt_handle_modify_update_pdr(upf_main_t *sm, upf_session_t *sx, vl_api_upf_ssm_
upf_ip4_to_str(ip->dst_address.data_u32,new_n3_gnb,UPF_BUF); upf_ip4_to_str(ip->dst_address.data_u32,new_n3_gnb,UPF_BUF);
clib_upf_debug(um->log_fd,"00000, old_n3_gnb:%s, new_n3_gnb:%s", clib_upf_debug(um->log_fd,"old_n3_gnb:%s, new_n3_gnb:%s",
old_n3_gnb, new_n3_gnb); old_n3_gnb, new_n3_gnb);
} }
......
...@@ -963,10 +963,6 @@ upf_gtpu_input (vlib_main_t * vm, ...@@ -963,10 +963,6 @@ upf_gtpu_input (vlib_main_t * vm,
gtpu4_header_dl_t *gtpu_dl = upf_lookup_dl_gtpu4_header_by_ueip(ip4_0->src_address.as_u32); gtpu4_header_dl_t *gtpu_dl = upf_lookup_dl_gtpu4_header_by_ueip(ip4_0->src_address.as_u32);
//Avoid copying data multiple times //Avoid copying data multiple times
//if(gtpu_dl )
//clib_upf_debug(um->log_fd,"gtpu_dl:%p, gtpu_dl->cur_ext_num:%d", gtpu_dl, gtpu_dl->cur_ext_num);
if(gtpu_dl && (gtpu_dl->cur_ext_num == 0)) if(gtpu_dl && (gtpu_dl->cur_ext_num == 0))
{ {
gtpu_dl->ver_flags = gtpu0->ver_flags; gtpu_dl->ver_flags = gtpu0->ver_flags;
...@@ -976,8 +972,7 @@ upf_gtpu_input (vlib_main_t * vm, ...@@ -976,8 +972,7 @@ upf_gtpu_input (vlib_main_t * vm,
gtpu_dl->next_ext_type = gtpu0->next_ext_type; gtpu_dl->next_ext_type = gtpu0->next_ext_type;
gtpu_dl->cur_ext_num = cur_num; gtpu_dl->cur_ext_num = cur_num;
//if(cur_num) memcpy(gtpu_dl->ext_dl, gtpu_ext, cur_num * sizeof(gtpu_ext_header_t));
memcpy(gtpu_dl->ext_dl, gtpu_ext, cur_num * sizeof(gtpu_ext_header_t));
} }
} }
......
...@@ -33,7 +33,7 @@ statseg { ...@@ -33,7 +33,7 @@ statseg {
cpu { cpu {
main-core 13 main-core 13
corelist-workers 14 corelist-workers 14,15
scheduler-policy fifo scheduler-policy fifo
scheduler-priority 50 scheduler-priority 50
...@@ -73,7 +73,7 @@ dpdk { ...@@ -73,7 +73,7 @@ dpdk {
no-tx-checksum-offload no-tx-checksum-offload
} }
heapsize 2G heapsize 4G
plugins { plugins {
path ./build-root/install-vpp_debug-native/vpp/lib/vpp_plugins path ./build-root/install-vpp_debug-native/vpp/lib/vpp_plugins
......
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