unsigned DataRLCPDU::LI() const { size_t base = LIBase(); size_t rp = base+8; unsigned val = 0; while (peekField(rp-1,1)==1) { val = (val<<7) + peekField(rp-8,7); rp += 8; } return val; }
size_t DataRLCPDU::LILen() const { size_t base = LIBase(); size_t rp = base+8; while (peekField(rp-1,1)==1) { rp += 8; } return rp - base; }
// 25.321 Table 9.2.1.2 Coding of the Target Channel Type Field on FACH for FDD // This table is needed by the UE to decode the TCTF, but not by UTRAN except // for humans to inspect the PDU. size_t FACH_MACPDU::TCTFSize() const { static const size_t sz[16] = { 2, 2, 2, 2, // 00XX for BCCH 8, 8, 4, 4, // 010X, 0110, 0111 8, 8, 8, 8, // 10XX 2, 2, 2, 2 // 11XX DTCH/DCCH over FACH }; // 3GPP 25.321 9.2.1, Table 9.2.1.2. const unsigned first4 = peekField(TCTFBase(),4); return sz[first4]; }
field_t Packet_v1::peekRequestId(Packet::buffer_t const &buffer) { return peekField(buffer, PROTOV1_REQUESTID_OFF, PROTOV1_REQUESTID_SIZE); }
field_t Packet_v1::peekComponentId(Packet::buffer_t const &buffer) { return peekField(buffer, PROTOV1_COMPONENTID_OFF, PROTOV1_COMPONENTID_SIZE); }