diff options
Diffstat (limited to 'gsm_rlcmac.cpp')
-rw-r--r-- | gsm_rlcmac.cpp | 142 |
1 files changed, 71 insertions, 71 deletions
diff --git a/gsm_rlcmac.cpp b/gsm_rlcmac.cpp index 32694fe3..995ca2b1 100644 --- a/gsm_rlcmac.cpp +++ b/gsm_rlcmac.cpp @@ -714,7 +714,7 @@ CSN_DESCR_BEGIN(Receive_N_PDU_Number_t) M_UINT (Receive_N_PDU_Number_t, value, 8), CSN_DESCR_END (Receive_N_PDU_Number_t) -gint16 Receive_N_PDU_Number_list_Dissector(csnStream_t* ar, BitVector *vector, size_t& readIndex, void* data) +gint16 Receive_N_PDU_Number_list_Dissector(csnStream_t* ar, bitvec *vector, size_t& readIndex, void* data) { if (ar->direction == 0) { @@ -825,7 +825,7 @@ CSN_DESCR_BEGIN (Content_t) M_UINT (Content_t, PS_HandoverCapability, 1), CSN_DESCR_END (Content_t) -gint16 Content_Dissector(csnStream_t* ar, BitVector *vector, size_t& readIndex, void* data) +gint16 Content_Dissector(csnStream_t* ar, bitvec *vector, size_t& readIndex, void* data) { if (ar->direction == 0) { @@ -849,7 +849,7 @@ CSN_DESCR_BEGIN (Additional_access_technologies_t) M_REC_TARRAY (Additional_access_technologies_t, Additional_access_technologies[0], Additional_access_technologies_struct_t, Count_additional_access_technologies), CSN_DESCR_END (Additional_access_technologies_t) -gint16 Additional_access_technologies_Dissector(csnStream_t* ar, BitVector* vector, size_t& readIndex, void* data) +gint16 Additional_access_technologies_Dissector(csnStream_t* ar, bitvec* vector, size_t& readIndex, void* data) { if (ar->direction == 0) { @@ -4716,11 +4716,11 @@ CSN_DESCR_BEGIN (SI6_RestOctet_t) M_UINT_LH (SI6_RestOctet_t, BandIndicator, 1), CSN_DESCR_END (SI6_RestOctet_t) -void decode_gsm_rlcmac_uplink(BitVector * vector, RlcMacUplink_t * data) +void decode_gsm_rlcmac_uplink(bitvec * vector, RlcMacUplink_t * data) { csnStream_t ar; size_t readIndex = 0; - guint8 payload_type = vector->readField(readIndex, 2); + guint8 payload_type = bitvec_read_field(vector, readIndex, 2); if (payload_type == PAYLOAD_TYPE_DATA) { @@ -4735,7 +4735,7 @@ void decode_gsm_rlcmac_uplink(BitVector * vector, RlcMacUplink_t * data) data->NrOfBits = (23 - 1) * 8; csnStreamInit(&ar, 0, data->NrOfBits); readIndex += 6; - data->u.MESSAGE_TYPE = vector->readField(readIndex, 6); + data->u.MESSAGE_TYPE = bitvec_read_field(vector, readIndex, 6); readIndex = 0; switch (data->u.MESSAGE_TYPE) { @@ -4821,17 +4821,17 @@ void decode_gsm_rlcmac_uplink(BitVector * vector, RlcMacUplink_t * data) } } -void decode_gsm_rlcmac_downlink(BitVector * vector, RlcMacDownlink_t * data) +void decode_gsm_rlcmac_downlink(bitvec * vector, RlcMacDownlink_t * data) { csnStream_t ar; /* See RLC/MAC downlink control block structure in TS 44.060 / 10.3.1 */ gint bit_offset = 0; gint bit_length; size_t readIndex = 0; - data->PAYLOAD_TYPE = vector->readField(readIndex, 2); - data->RRBP = vector->readField(readIndex, 2); - data->SP = vector->readField(readIndex, 1); - data->USF = vector->readField(readIndex, 3); + data->PAYLOAD_TYPE = bitvec_read_field(vector, readIndex, 2); + data->RRBP = bitvec_read_field(vector, readIndex, 2); + data->SP = bitvec_read_field(vector, readIndex, 1); + data->USF = bitvec_read_field(vector, readIndex, 3); if (data->PAYLOAD_TYPE == PAYLOAD_TYPE_DATA) { @@ -4850,27 +4850,27 @@ void decode_gsm_rlcmac_downlink(BitVector * vector, RlcMacDownlink_t * data) bit_offset = 8; if (data->PAYLOAD_TYPE == PAYLOAD_TYPE_CTRL_OPT_OCTET) { - data->RBSN = vector->readField(readIndex, 1); - data->RTI = vector->readField(readIndex, 5); - data->FS = vector->readField(readIndex, 1); - data->AC = vector->readField(readIndex, 1); + data->RBSN = bitvec_read_field(vector, readIndex, 1); + data->RTI = bitvec_read_field(vector, readIndex, 5); + data->FS = bitvec_read_field(vector, readIndex, 1); + data->AC = bitvec_read_field(vector, readIndex, 1); bit_offset += 8; if (data->AC == 1) { - data->PR = vector->readField(readIndex, 2); - data->TFI = vector->readField(readIndex, 5); - data->D = vector->readField(readIndex, 1); + data->PR = bitvec_read_field(vector, readIndex, 2); + data->TFI = bitvec_read_field(vector, readIndex, 5); + data->D = bitvec_read_field(vector, readIndex, 1); bit_offset += 8; } if ((data->RBSN == 1) && (data->FS == 0)) { - data->RBSNe = vector->readField(readIndex, 3); - data->FSe = vector->readField(readIndex, 1); - data->spare = vector->readField(readIndex, 4); + data->RBSNe = bitvec_read_field(vector, readIndex, 3); + data->FSe = bitvec_read_field(vector, readIndex, 1); + data->spare = bitvec_read_field(vector, readIndex, 4); bit_offset += 8; } } - data->u.MESSAGE_TYPE = vector->readField(readIndex, 6); + data->u.MESSAGE_TYPE = bitvec_read_field(vector, readIndex, 6); } /* Initialize the contexts */ @@ -5013,7 +5013,7 @@ void decode_gsm_rlcmac_downlink(BitVector * vector, RlcMacDownlink_t * data) } } -void encode_gsm_rlcmac_uplink(BitVector * vector, RlcMacUplink_t * data) +void encode_gsm_rlcmac_uplink(bitvec * vector, RlcMacUplink_t * data) { csnStream_t ar; size_t writeIndex = 0; @@ -5104,7 +5104,7 @@ void encode_gsm_rlcmac_uplink(BitVector * vector, RlcMacUplink_t * data) } } -void encode_gsm_rlcmac_downlink(BitVector * vector, RlcMacDownlink_t * data) +void encode_gsm_rlcmac_downlink(bitvec * vector, RlcMacDownlink_t * data) { csnStream_t ar; @@ -5127,30 +5127,30 @@ void encode_gsm_rlcmac_downlink(BitVector * vector, RlcMacDownlink_t * data) else { /* First print the message type and create a tree item */ - vector->writeField(writeIndex, data->PAYLOAD_TYPE, 2); - vector->writeField(writeIndex, data->RRBP, 2); - vector->writeField(writeIndex, data->SP, 1); - vector->writeField(writeIndex, data->USF, 3); + bitvec_write_field(vector, writeIndex, data->PAYLOAD_TYPE, 2); + bitvec_write_field(vector, writeIndex, data->RRBP, 2); + bitvec_write_field(vector, writeIndex, data->SP, 1); + bitvec_write_field(vector, writeIndex, data->USF, 3); bit_offset = 8; if (data->PAYLOAD_TYPE == PAYLOAD_TYPE_CTRL_OPT_OCTET) { - vector->writeField(writeIndex, data->RBSN, 1); - vector->writeField(writeIndex, data->RTI, 5); - vector->writeField(writeIndex, data->FS, 1); - vector->writeField(writeIndex, data->AC, 1); + bitvec_write_field(vector, writeIndex, data->RBSN, 1); + bitvec_write_field(vector, writeIndex, data->RTI, 5); + bitvec_write_field(vector, writeIndex, data->FS, 1); + bitvec_write_field(vector, writeIndex, data->AC, 1); bit_offset += 8; if (data->AC == 1) { - vector->writeField(writeIndex, data->PR, 2); - vector->writeField(writeIndex, data->TFI, 5); - vector->writeField(writeIndex, data->D, 1); + bitvec_write_field(vector, writeIndex, data->PR, 2); + bitvec_write_field(vector, writeIndex, data->TFI, 5); + bitvec_write_field(vector, writeIndex, data->D, 1); bit_offset += 8; } if ((data->RBSN == 1) && (data->FS == 0)) { - vector->writeField(writeIndex, data->RBSNe, 3); - vector->writeField(writeIndex, data->FSe, 1); - vector->writeField(writeIndex, data->spare, 4); + bitvec_write_field(vector, writeIndex, data->RBSNe, 3); + bitvec_write_field(vector, writeIndex, data->FSe, 1); + bitvec_write_field(vector, writeIndex, data->spare, 4); bit_offset += 8; } } @@ -5295,36 +5295,36 @@ void encode_gsm_rlcmac_downlink(BitVector * vector, RlcMacDownlink_t * data) } } -void decode_gsm_rlcmac_uplink_data(BitVector * vector, RlcMacUplinkDataBlock_t * data) +void decode_gsm_rlcmac_uplink_data(bitvec * vector, RlcMacUplinkDataBlock_t * data) { size_t readIndex = 0; //unsigned dataLen = 0; - guint8 payload_type = vector->readField(readIndex, 2); + guint8 payload_type = bitvec_read_field(vector, readIndex, 2); if (payload_type == PAYLOAD_TYPE_DATA) { readIndex = 0; // MAC header - data->PAYLOAD_TYPE = vector->readField(readIndex, 2); - data->CV = vector->readField(readIndex, 4); - data->SI = vector->readField(readIndex, 1); - data->R = vector->readField(readIndex, 1); + data->PAYLOAD_TYPE = bitvec_read_field(vector, readIndex, 2); + data->CV = bitvec_read_field(vector, readIndex, 4); + data->SI = bitvec_read_field(vector, readIndex, 1); + data->R = bitvec_read_field(vector, readIndex, 1); LOG(INFO) << " PAYLOAD_TYPE = " << (unsigned)(data->PAYLOAD_TYPE); LOG(INFO) << " CV = " << (unsigned)(data->CV); LOG(INFO) << " SI = " << (unsigned)(data->SI); LOG(INFO) << " R = " << (unsigned)(data->R); // Octet 1 - data->spare = vector->readField(readIndex, 1); - data->PI = vector->readField(readIndex, 1); - data->TFI = vector->readField(readIndex, 5); - data->TI = vector->readField(readIndex, 1); + data->spare = bitvec_read_field(vector, readIndex, 1); + data->PI = bitvec_read_field(vector, readIndex, 1); + data->TFI = bitvec_read_field(vector, readIndex, 5); + data->TI = bitvec_read_field(vector, readIndex, 1); LOG(INFO) << " spare = " << (unsigned)(data->spare); LOG(INFO) << " PI = " << (unsigned)(data->PI); LOG(INFO) << " TFI = " << (unsigned)(data->TFI); LOG(INFO) << " TI = " << (unsigned)(data->TI); // Octet 2 - data->BSN = vector->readField(readIndex, 7); - data->E_1 = vector->readField(readIndex, 1); + data->BSN = bitvec_read_field(vector, readIndex, 7); + data->E_1 = bitvec_read_field(vector, readIndex, 1); LOG(INFO) << " BSN = " << (unsigned)(data->BSN); LOG(INFO) << " E_1 = " << (unsigned)(data->E_1); @@ -5334,9 +5334,9 @@ void decode_gsm_rlcmac_uplink_data(BitVector * vector, RlcMacUplinkDataBlock_t * unsigned i = 0; do { - data->LENGTH_INDICATOR[i] = vector->readField(readIndex, 6); - data->M[i] = vector->readField(readIndex, 1); - data->E[i] = vector->readField(readIndex, 1); + data->LENGTH_INDICATOR[i] = bitvec_read_field(vector, readIndex, 6); + data->M[i] = bitvec_read_field(vector, readIndex, 1); + data->E[i] = bitvec_read_field(vector, readIndex, 1); LOG(INFO) << " LENGTH_INDICATOR[" << i << "] = " << (unsigned)(data->LENGTH_INDICATOR[i]); LOG(INFO) << " M[" << i << "] = " << (unsigned)(data->M[i]); LOG(INFO) << " E[" << i << "] = " << (unsigned)(data->E[i]); @@ -5345,12 +5345,12 @@ void decode_gsm_rlcmac_uplink_data(BitVector * vector, RlcMacUplinkDataBlock_t * } if(data->TI == 1) // TLLI field is present { - data->TLLI = vector->readField(readIndex, 32); + data->TLLI = bitvec_read_field(vector, readIndex, 32); LOG(INFO) << " TLLI = " << data->TLLI; if (data->PI == 1) // PFI is present if TI field indicates presence of TLLI { - data->PFI = vector->readField(readIndex, 7); - data->E_2 = vector->readField(readIndex, 1); + data->PFI = bitvec_read_field(vector, readIndex, 7); + data->E_2 = bitvec_read_field(vector, readIndex, 1); LOG(INFO) << " PFI = " << (unsigned)(data->PFI); LOG(INFO) << " E_2 = " << (unsigned)(data->E_2); } @@ -5358,7 +5358,7 @@ void decode_gsm_rlcmac_uplink_data(BitVector * vector, RlcMacUplinkDataBlock_t * unsigned dataLen = 23 - readIndex/8; for (unsigned i = 0; i < dataLen; i++) { - data->RLC_DATA[i] = vector->readField(readIndex, 8); + data->RLC_DATA[i] = bitvec_read_field(vector, readIndex, 8); LOG(INFO) << " DATA[" << i << "] = " << (unsigned)(data->RLC_DATA[i]); } LOG(INFO) << "\n"; @@ -5370,31 +5370,31 @@ void decode_gsm_rlcmac_uplink_data(BitVector * vector, RlcMacUplinkDataBlock_t * } } -void encode_gsm_rlcmac_downlink_data(BitVector * vector, RlcMacDownlinkDataBlock_t * data) +void encode_gsm_rlcmac_downlink_data(bitvec * vector, RlcMacDownlinkDataBlock_t * data) { size_t writeIndex = 0; if (data->PAYLOAD_TYPE == PAYLOAD_TYPE_DATA) { // MAC header - vector->writeField(writeIndex, data->PAYLOAD_TYPE, 2); - vector->writeField(writeIndex, data->RRBP, 2); - vector->writeField(writeIndex, data->SP, 1); - vector->writeField(writeIndex, data->USF, 3); + bitvec_write_field(vector, writeIndex, data->PAYLOAD_TYPE, 2); + bitvec_write_field(vector, writeIndex, data->RRBP, 2); + bitvec_write_field(vector, writeIndex, data->SP, 1); + bitvec_write_field(vector, writeIndex, data->USF, 3); LOG(INFO) << " PAYLOAD_TYPE = " << (unsigned)(data->PAYLOAD_TYPE); LOG(INFO) << " RRBP = " << (unsigned)(data->RRBP); LOG(INFO) << " SP = " << (unsigned)(data->SP); LOG(INFO) << " USF = " << (unsigned)(data->USF); // Octet 1 - vector->writeField(writeIndex, data->PR, 2); - vector->writeField(writeIndex, data->TFI, 5); - vector->writeField(writeIndex, data->FBI, 1); + bitvec_write_field(vector, writeIndex, data->PR, 2); + bitvec_write_field(vector, writeIndex, data->TFI, 5); + bitvec_write_field(vector, writeIndex, data->FBI, 1); LOG(INFO) << " PR = " << (unsigned)(data->PR); LOG(INFO) << " TFI = " << (unsigned)(data->TFI); LOG(INFO) << " FBI = " << (unsigned)(data->FBI); // Octet 2 - vector->writeField(writeIndex, data->BSN, 7); - vector->writeField(writeIndex, data->E_1, 1); + bitvec_write_field(vector, writeIndex, data->BSN, 7); + bitvec_write_field(vector, writeIndex, data->E_1, 1); LOG(INFO) << " BSN = " << (unsigned)(data->BSN); LOG(INFO) << " E_1 = " << (unsigned)(data->E_1); // Octet 3 (optional) @@ -5403,9 +5403,9 @@ void encode_gsm_rlcmac_downlink_data(BitVector * vector, RlcMacDownlinkDataBlock unsigned i = 0; do { - vector->writeField(writeIndex, data->LENGTH_INDICATOR[i], 6); - vector->writeField(writeIndex, data->M[i], 1); - vector->writeField(writeIndex, data->E[i], 1); + bitvec_write_field(vector, writeIndex, data->LENGTH_INDICATOR[i], 6); + bitvec_write_field(vector, writeIndex, data->M[i], 1); + bitvec_write_field(vector, writeIndex, data->E[i], 1); LOG(INFO) << " LENGTH_INDICATOR[" << i << "] = " << (unsigned)(data->LENGTH_INDICATOR[i]); LOG(INFO) << " M[" << i << "] = " << (unsigned)(data->M[i]); LOG(INFO) << " E[" << i << "] = " << (unsigned)(data->E[i]); @@ -5416,7 +5416,7 @@ void encode_gsm_rlcmac_downlink_data(BitVector * vector, RlcMacDownlinkDataBlock unsigned dataNumOctets = 23 - writeIndex/8; for (unsigned i = 0; i < dataNumOctets; i++) { - vector->writeField(writeIndex, data->RLC_DATA[i], 8); + bitvec_write_field(vector, writeIndex, data->RLC_DATA[i], 8); LOG(INFO) << " DATA[" << i << "] = " << (unsigned)(data->RLC_DATA[i]); } } |