Commit 525280bd authored by Tien Thinh NGUYEN's avatar Tien Thinh NGUYEN

Code cleanup for DeregistrationRequest

parent e925922f
...@@ -21,8 +21,6 @@ ...@@ -21,8 +21,6 @@
#include "DeregistrationRequest.hpp" #include "DeregistrationRequest.hpp"
#include <string>
#include "3gpp_24.501.hpp" #include "3gpp_24.501.hpp"
#include "conversions.hpp" #include "conversions.hpp"
#include "logger.hpp" #include "logger.hpp"
...@@ -49,45 +47,45 @@ void DeregistrationRequest::SetHeader(uint8_t security_header_type) { ...@@ -49,45 +47,45 @@ void DeregistrationRequest::SetHeader(uint8_t security_header_type) {
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::setDeregistrationType(uint8_t dereg_type) { void DeregistrationRequest::SetDeregistrationType(uint8_t dereg_type) {
ie_deregistrationtype.set(dereg_type); ie_deregistrationtype.set(dereg_type);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::setDeregistrationType( void DeregistrationRequest::SetDeregistrationType(
_5gs_deregistration_type_t type) { const _5gs_deregistration_type_t& type) {
ie_deregistrationtype.set(type); ie_deregistrationtype.set(type);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::SetNgKsi(uint8_t tsc, uint8_t key_set_id) { void DeregistrationRequest::SetNgKsi(uint8_t tsc, uint8_t key_set_id) {
ie_ngKSI.Set(true); // high position ie_ng_ksi.Set(true); // high position
ie_ngKSI.SetTypeOfSecurityContext(tsc); ie_ng_ksi.SetTypeOfSecurityContext(tsc);
ie_ngKSI.SetNasKeyIdentifier(key_set_id); ie_ng_ksi.SetNasKeyIdentifier(key_set_id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::getDeregistrationType(uint8_t& dereg_type) { void DeregistrationRequest::GetDeregistrationType(uint8_t& dereg_type) const {
ie_deregistrationtype.get(dereg_type); ie_deregistrationtype.get(dereg_type);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::getDeregistrationType( void DeregistrationRequest::GetDeregistrationType(
_5gs_deregistration_type_t& type) { _5gs_deregistration_type_t& type) const {
ie_deregistrationtype.get(type); ie_deregistrationtype.get(type);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool DeregistrationRequest::getngKSI(uint8_t& ng_ksi) { bool DeregistrationRequest::GetNgKsi(uint8_t& ng_ksi) const {
ng_ksi = ng_ksi =
(ie_ngKSI.GetTypeOfSecurityContext()) | ie_ngKSI.GetNasKeyIdentifier(); (ie_ng_ksi.GetTypeOfSecurityContext()) | ie_ng_ksi.GetNasKeyIdentifier();
return true; return true;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::SetSuciSupiFormatImsi( void DeregistrationRequest::SetSuciSupiFormatImsi(
const string mcc, const string mnc, const string routingInd, const string& mcc, const string& mnc, const string& routing_ind,
uint8_t protection_sch_id, const string msin) { uint8_t protection_sch_id, const string& msin) {
if (protection_sch_id != NULL_SCHEME) { if (protection_sch_id != NULL_SCHEME) {
Logger::nas_mm().error( Logger::nas_mm().error(
"Encoding SUCI and SUPI format for IMSI error, please choose correct " "Encoding SUCI and SUPI format for IMSI error, please choose correct "
...@@ -95,23 +93,24 @@ void DeregistrationRequest::SetSuciSupiFormatImsi( ...@@ -95,23 +93,24 @@ void DeregistrationRequest::SetSuciSupiFormatImsi(
return; return;
} else { } else {
ie_5gs_mobility_id.SetSuciWithSupiImsi( ie_5gs_mobility_id.SetSuciWithSupiImsi(
mcc, mnc, routingInd, protection_sch_id, msin); mcc, mnc, routing_ind, protection_sch_id, msin);
} }
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::getMobilityIdentityType(uint8_t& type) { void DeregistrationRequest::GetMobilityIdentityType(uint8_t& type) const {
type = ie_5gs_mobility_id.GetTypeOfIdentity(); type = ie_5gs_mobility_id.GetTypeOfIdentity();
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool DeregistrationRequest::getSuciSupiFormatImsi(nas::SUCI_imsi_t& imsi) { bool DeregistrationRequest::GetSuciSupiFormatImsi(
nas::SUCI_imsi_t& imsi) const {
ie_5gs_mobility_id.GetSuciWithSupiImsi(imsi); ie_5gs_mobility_id.GetSuciWithSupiImsi(imsi);
return true; return true;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
std::string DeregistrationRequest::Get5gGuti() { std::string DeregistrationRequest::Get5gGuti() const {
std::optional<nas::_5G_GUTI_t> guti = std::nullopt; std::optional<nas::_5G_GUTI_t> guti = std::nullopt;
ie_5gs_mobility_id.Get5gGuti(guti); ie_5gs_mobility_id.Get5gGuti(guti);
if (!guti.has_value()) return {}; if (!guti.has_value()) return {};
...@@ -127,8 +126,10 @@ std::string DeregistrationRequest::Get5gGuti() { ...@@ -127,8 +126,10 @@ std::string DeregistrationRequest::Get5gGuti() {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::SetSuciSupiFormatImsi( void DeregistrationRequest::SetSuciSupiFormatImsi(
const string mcc, const string mnc, const string routingInd, const string& mcc, const string& mnc, const string& routing_ind,
uint8_t protection_sch_id, uint8_t hnpki, const string msin) {} uint8_t protection_sch_id, uint8_t hnpki, const string& msin) {
// TODO:
}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void DeregistrationRequest::Set5gGuti() {} void DeregistrationRequest::Set5gGuti() {}
...@@ -169,7 +170,7 @@ int DeregistrationRequest::Encode(uint8_t* buf, int len) { ...@@ -169,7 +170,7 @@ int DeregistrationRequest::Encode(uint8_t* buf, int len) {
return KEncodeDecodeError; return KEncodeDecodeError;
} }
size = ie_ngKSI.Encode(buf + encoded_size, len - encoded_size); size = ie_ng_ksi.Encode(buf + encoded_size, len - encoded_size);
if (size != KEncodeDecodeError) { if (size != KEncodeDecodeError) {
encoded_size++; // 1/2 octet for Deregistration Type, 1/2 for ngKSI encoded_size++; // 1/2 octet for Deregistration Type, 1/2 for ngKSI
} else { } else {
...@@ -216,7 +217,7 @@ int DeregistrationRequest::Decode(uint8_t* buf, int len) { ...@@ -216,7 +217,7 @@ int DeregistrationRequest::Decode(uint8_t* buf, int len) {
"Decoding %s error", _5GSDeregistrationType::GetIeName().c_str()); "Decoding %s error", _5GSDeregistrationType::GetIeName().c_str());
return KEncodeDecodeError; return KEncodeDecodeError;
} }
decoded_result = ie_ngKSI.Decode( decoded_result = ie_ng_ksi.Decode(
buf + decoded_size, len - decoded_size, true, false); // 4 higher bits buf + decoded_size, len - decoded_size, true, false); // 4 higher bits
if (decoded_result == KEncodeDecodeError) { if (decoded_result == KEncodeDecodeError) {
Logger::nas_mm().error( Logger::nas_mm().error(
......
...@@ -37,28 +37,28 @@ class DeregistrationRequest : public NasMmPlainHeader { ...@@ -37,28 +37,28 @@ class DeregistrationRequest : public NasMmPlainHeader {
void SetHeader(uint8_t security_header_type); void SetHeader(uint8_t security_header_type);
void setDeregistrationType(uint8_t dereg_type); void SetDeregistrationType(uint8_t dereg_type);
void getDeregistrationType(uint8_t& dereg_type); void GetDeregistrationType(uint8_t& dereg_type) const;
void setDeregistrationType(_5gs_deregistration_type_t type); void SetDeregistrationType(const _5gs_deregistration_type_t& type);
void getDeregistrationType(_5gs_deregistration_type_t& type); void GetDeregistrationType(_5gs_deregistration_type_t& type) const;
void SetNgKsi(uint8_t tsc, uint8_t key_set_id); void SetNgKsi(uint8_t tsc, uint8_t key_set_id);
bool getngKSI(uint8_t& ng_ksi); bool GetNgKsi(uint8_t& ng_ksi) const;
void setMobilityIdentityType(uint8_t type); void SetMobilityIdentityType(uint8_t type);
void getMobilityIdentityType(uint8_t& type); void GetMobilityIdentityType(uint8_t& type) const;
void SetSuciSupiFormatImsi( void SetSuciSupiFormatImsi(
const string mcc, const string mnc, const string routingInd, const string& mcc, const string& mnc, const string& routing_ind,
uint8_t protection_sch_id, const string msin); uint8_t protection_sch_id, const string& msin);
void SetSuciSupiFormatImsi( void SetSuciSupiFormatImsi(
const string mcc, const string mnc, const string routingInd, const string& mcc, const string& mnc, const string& routing_ind,
uint8_t protection_sch_id, uint8_t hnpki, const string msin); uint8_t protection_sch_id, uint8_t hnpki, const string& msin);
bool getSuciSupiFormatImsi(nas::SUCI_imsi_t& imsi); bool GetSuciSupiFormatImsi(nas::SUCI_imsi_t& imsi) const;
void Set5gGuti(); void Set5gGuti();
std::string Get5gGuti(); std::string Get5gGuti() const;
void SetImeiImeisv(); void SetImeiImeisv();
// TODO: Get // TODO: Get
...@@ -68,7 +68,7 @@ class DeregistrationRequest : public NasMmPlainHeader { ...@@ -68,7 +68,7 @@ class DeregistrationRequest : public NasMmPlainHeader {
public: public:
_5GSDeregistrationType ie_deregistrationtype; // Mandatory _5GSDeregistrationType ie_deregistrationtype; // Mandatory
NasKeySetIdentifier ie_ngKSI; // Mandatory NasKeySetIdentifier ie_ng_ksi; // Mandatory
_5GSMobileIdentity ie_5gs_mobility_id; // Mandatory _5GSMobileIdentity ie_5gs_mobility_id; // Mandatory
}; };
......
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