Commit 5d1652e3 authored by Tien Thinh NGUYEN's avatar Tien Thinh NGUYEN

Encode Rejected NSSAI - add Length IE

parent e6ccc06e
......@@ -71,15 +71,26 @@ int Rejected_NSSAI::encode2buffer(uint8_t* buf, int len) {
if (_iei) {
ENCODE_U8(buf + encoded_size, _iei, encoded_size);
}
// Skip Length for now
uint8_t len_pos = encoded_size;
encoded_size++;
uint8_t payload_len = 0;
for (auto n : rejected_nssais) {
int size = n.encode2buffer(buf + encoded_size, len - encoded_size);
if (size > -1) {
encoded_size += size;
payload_len += size;
} else {
return -1;
}
}
// Length
uint8_t encoded_size_length = 0;
ENCODE_U8(buf + len_pos, payload_len, encoded_size_length);
Logger::nas_mm().debug("Encoded Rejected_NSSAI (len %d)", encoded_size);
return encoded_size;
}
......
......@@ -70,7 +70,7 @@ uint8_t Rejected_SNSSAI::getSST() {
//------------------------------------------------------------------------------
void Rejected_SNSSAI::setSd(const uint32_t& sd) {
sd_ = std::optional<uint32_t>(sd);
sd_.emplace(sd);
length_ += 3;
}
......@@ -123,8 +123,10 @@ int Rejected_SNSSAI::encode2buffer(uint8_t* buf, int len) {
octet = (length_ << 4) | (0x0f & cause_);
ENCODE_U8(buf + encoded_size, octet, encoded_size);
ENCODE_U8(buf + encoded_size, sst_, encoded_size);
Logger::nas_mm().debug("SST %d", sst_);
if (sd_.has_value()) {
ENCODE_U24(buf + encoded_size, sd_.value(), encoded_size);
Logger::nas_mm().debug("SD 0x%x", sd_.value());
}
Logger::nas_mm().debug("Encoded Rejected_SNSSAI (len %d)", encoded_size);
return encoded_size;
......
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