pdcp_benchmark.c 5.56 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
/*
 *  * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
 *  * contributor license agreements.  See the NOTICE file distributed with
 *  * this work for additional information regarding copyright ownership.
 *  * The OpenAirInterface Software Alliance licenses this file to You under
 *  * the OAI Public License, Version 1.1  (the "License"); you may not use this file
 *  * except in compliance with the License.
 *  * You may obtain a copy of the License at
 *  *
 *  *      http://www.openairinterface.org/?page_id=698
 *  *
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS,
 *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  * See the License for the specific language governing permissions and
 *  * limitations under the License.
 *  *-------------------------------------------------------------------------------
 *  * For more information about the OpenAirInterface (OAI) Software Alliance:
 *  *      contact@openairinterface.org
 *  */

/*! \file pdcp_security.c
 *  * \brief PDCP Performance Benchmark 
 *  * \author 
 *  * \email 
 *  * \date 2020
 *  */
#include <stdint.h>
bussotti's avatar
bussotti committed
29 30
#include <stdlib.h>
#include <stdio.h>
31

32 33 34
#include "openair2/COMMON/platform_types.h"
#include "common/config/config_load_configmodule.h"
#include "common/utils/LOG/log.h"
bussotti's avatar
bussotti committed
35

bussotti's avatar
bussotti committed
36
#include "openair2/UTIL/MEM/mem_block.h"
37
#include "openair2/LAYER2/RLC/rlc.h"
bussotti's avatar
bussotti committed
38
#include "openair2/LAYER2/PDCP_v10.1.0/pdcp.h"
bussotti's avatar
bussotti committed
39
#include "openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h"
40
#include "openair2/UTIL/OSA/osa_defs.h"
bussotti's avatar
bussotti committed
41

42 43 44 45 46 47
#include "common/config/config_load_configmodule.h"
#include "common/utils/LOG/log.h"
#include "SIMULATION/TOOLS/sim.h"
#include "UTIL/LISTS/list.h"
#include "OCG_vars.h"

bussotti's avatar
bussotti committed
48
#include "common/config/config_userapi.h"
bussotti's avatar
bussotti committed
49

50 51 52 53 54 55 56 57
#include "LTE_RLC-Config.h"
#include "LTE_DRB-ToAddMod.h"
#include "LTE_DRB-ToAddModList.h"
#include "LTE_SRB-ToAddMod.h"
#include "LTE_SRB-ToAddModList.h"
#include "LTE_DL-UM-RLC.h"
#include "LTE_PMCH-InfoList-r9.h"

bussotti's avatar
bussotti committed
58

bussotti's avatar
test1  
bussotti committed
59 60 61
#define DUMMY_BUFFER ((unsigned char*)"123456789")
#define DUMMY_BUFFER_SIZE 10

62 63 64 65
uint64_t get_softmodem_optmask(void) {return 0;}
nfapi_mode_t nfapi_getmode(void) {return 0;}
softmodem_params_t *get_softmodem_params(void) {return NULL;}

66 67 68 69 70 71 72 73 74
rlc_op_status_t rrc_rlc_config_req   (
    const protocol_ctxt_t *const ctxt_pP,
  const srb_flag_t      srb_flagP,
  const MBMS_flag_t     mbms_flagP,
  const config_action_t actionP,
  const rb_id_t         rb_idP,
  const rlc_info_t      rlc_infoP) {return 0;}

rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t    *const ctxt_pP,
75 76 77 78 79 80 81
    const LTE_SRB_ToAddModList_t    *const srb2add_listP,
    const LTE_DRB_ToAddModList_t    *const drb2add_listP,
    const LTE_DRB_ToReleaseList_t   *const drb2release_listP,
    const LTE_PMCH_InfoList_r9_t *const pmch_InfoList_r9_pP,
    const uint32_t sourceL2Id,
    const uint32_t destinationL2Id

82
                                        ) { return 0;}
bussotti's avatar
bussotti committed
83 84 85 86 87 88 89 90 91 92 93 94 95 96
                                        
                                        
rlc_op_status_t rlc_data_req     (const protocol_ctxt_t *const ctxt_pP,
                                  const srb_flag_t   srb_flagP,
                                  const MBMS_flag_t  MBMS_flagP,
                                  const rb_id_t      rb_idP,
                                  const mui_t        muiP,
                                  confirm_t    confirmP,
                                  sdu_size_t   sdu_sizeP,
                                  mem_block_t *sdu_pP,
                                  const uint32_t *const sourceL2Id,
                                  const uint32_t *const destinationL2Id
                                 ) {return 0;}

bussotti's avatar
bussotti committed
97 98 99 100 101 102
void
rrc_data_ind(
  const protocol_ctxt_t *const ctxt_pP,
  const rb_id_t                Srb_id,
  const sdu_size_t             sdu_sizeP,
  const uint8_t   *const       buffer_pP
bussotti's avatar
bussotti committed
103
) {return;}
bussotti's avatar
bussotti committed
104

105 106 107 108 109 110 111 112

void rlc_util_print_hex_octets(
  const comp_name_t componentP,
  unsigned char *const dataP,
  const signed long sizeP) {return;}

unsigned char NB_eNB_INST=1;
uint16_t NB_UE_INST=1;
113 114 115
int mbms_rab_id = 2047;
int otg_enabled=0;
int opp_enabled=0;
bussotti's avatar
test1  
bussotti committed
116 117
pdcp_t pdcp_el;
list_t pdu_tx_list;
bussotti's avatar
bussotti committed
118 119 120
//Not sure at all about that, but I didn't knew which library I should include and I try with that. 
volatile int oai_exit=0;

bussotti's avatar
bussotti committed
121 122 123 124
//Same thing, but found it like that elsewhere
void exit_function(const char *file, const char *function, const int line, const char *s) {
}

125 126
#include "common/ran_context.h"
RAN_CONTEXT_t RC;
bussotti's avatar
test1  
bussotti committed
127 128 129

int main(int argc, char *argv[])
{
bussotti's avatar
bussotti committed
130
    printf("1");
bussotti's avatar
test1  
bussotti committed
131
	int resQ;
bussotti's avatar
bussotti committed
132 133
	resQ=1;
	/*if(argc < 2)
bussotti's avatar
bussotti committed
134
	{
bussotti's avatar
bussotti committed
135
	    printf("You should pass the test you want as parameter");
bussotti's avatar
bussotti committed
136 137
	}
	resQ = atoi(argv[1]);
bussotti's avatar
bussotti committed
138
	*/pool_buffer_init();
bussotti's avatar
test1  
bussotti committed
139
	list_init(&pdu_tx_list, NULL);
bussotti's avatar
bussotti committed
140
	printf("2");
bussotti's avatar
bussotti committed
141
	//logInit();
bussotti's avatar
bussotti committed
142
    printf("3");
bussotti's avatar
bussotti committed
143
	pdcp_el.next_pdcp_tx_sn = 0;
bussotti's avatar
bussotti committed
144
	pdcp_el.next_pdcp_rx_sn = 0;
bussotti's avatar
bussotti committed
145 146 147 148
	pdcp_el.tx_hfn = 0;
	pdcp_el.rx_hfn = 0;
	pdcp_el.last_submitted_pdcp_rx_sn = 4095;
	pdcp_el.seq_num_size = 12;
149
	pdcp_el.cipheringAlgorithm = (resQ==1?EEA1_128_ALG_ID:EEA2_128_ALG_ID);
bussotti's avatar
bussotti committed
150
	printf("4");
bussotti's avatar
bussotti committed
151
	pdcp_init_seq_numbers(&pdcp_el);
bussotti's avatar
bussotti committed
152
	printf("5");
153 154 155 156 157 158 159 160 161
	protocol_ctxt_t ctxt;
    ctxt.module_id = 0 ;
    ctxt.instance = 0;
    ctxt.rnti = 0;
    ctxt.enb_flag = 1;
    ctxt.frame = 0;
    ctxt.subframe = 0;

	pdcp_data_req(ctxt, //ctxt_pP
162 163 164 165 166 167 168
		      0,    //srb_flagP
	              3,    // rb_id
	              0,    // muiP
	              0,    //confirmP
                      DUMMY_BUFFER_SIZE, //sdu_buffer_size
                      DUMMY_BUFFER,  // sdu_buffer 
                      PDCP_TRANSMISSION_MODE_DATA, // pdcp_transmission_mod
169
                      0,0);
bussotti's avatar
test1  
bussotti committed
170 171 172


}