NAS: Minor comments and logs
This commit is contained in:
@@ -56,12 +56,17 @@ static int capture_ipv6_addr(const uint8_t *addr, char *ip, size_t len)
|
|||||||
addr[7]);
|
addr[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief PDU session establishment accept (8.3.2 of 3GPP TS 24.501)
|
||||||
|
* network to UE
|
||||||
|
*/
|
||||||
void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_length)
|
void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_length)
|
||||||
{
|
{
|
||||||
security_protected_nas_5gs_msg_t sec_nas_hdr;
|
security_protected_nas_5gs_msg_t sec_nas_hdr;
|
||||||
security_protected_plain_nas_5gs_msg_t sec_nas_msg;
|
security_protected_plain_nas_5gs_msg_t sec_nas_msg;
|
||||||
pdu_session_establishment_accept_msg_t psea_msg;
|
pdu_session_establishment_accept_msg_t psea_msg;
|
||||||
uint8_t *curPtr = buffer;
|
uint8_t *curPtr = buffer;
|
||||||
|
// Security protected NAS header (7 bytes)
|
||||||
sec_nas_hdr.epd = *curPtr++;
|
sec_nas_hdr.epd = *curPtr++;
|
||||||
sec_nas_hdr.sht = *curPtr++;
|
sec_nas_hdr.sht = *curPtr++;
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
@@ -69,6 +74,7 @@ void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_
|
|||||||
sec_nas_hdr.mac = htonl(tmp);
|
sec_nas_hdr.mac = htonl(tmp);
|
||||||
curPtr += sizeof(sec_nas_hdr.mac);
|
curPtr += sizeof(sec_nas_hdr.mac);
|
||||||
sec_nas_hdr.sqn = *curPtr++;
|
sec_nas_hdr.sqn = *curPtr++;
|
||||||
|
// Security protected plain NAS message
|
||||||
sec_nas_msg.epd = *curPtr++;
|
sec_nas_msg.epd = *curPtr++;
|
||||||
sec_nas_msg.sht = *curPtr++;
|
sec_nas_msg.sht = *curPtr++;
|
||||||
sec_nas_msg.msg_type = *curPtr++;
|
sec_nas_msg.msg_type = *curPtr++;
|
||||||
@@ -144,6 +150,8 @@ void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_
|
|||||||
capture_ipv4_addr(&addr[0], ip, sizeof(ip));
|
capture_ipv4_addr(&addr[0], ip, sizeof(ip));
|
||||||
tun_config(1, ip, NULL, "oaitun_ue");
|
tun_config(1, ip, NULL, "oaitun_ue");
|
||||||
setup_ue_ipv4_route(1, ip, "oaitun_ue");
|
setup_ue_ipv4_route(1, ip, "oaitun_ue");
|
||||||
|
LOG_I(NAS, "Received PDU Session Establishment Accept, UE IP: %u.%u.%u.%u\n",
|
||||||
|
addr[0], addr[1], addr[2], addr[3]);
|
||||||
} else if (psea_msg.pdu_addr_ie.pdu_type == PDU_SESSION_TYPE_IPV6) {
|
} else if (psea_msg.pdu_addr_ie.pdu_type == PDU_SESSION_TYPE_IPV6) {
|
||||||
for (int i = 0; i < IPv6_INTERFACE_ID_LENGTH; ++i)
|
for (int i = 0; i < IPv6_INTERFACE_ID_LENGTH; ++i)
|
||||||
addr[i] = *curPtr++;
|
addr[i] = *curPtr++;
|
||||||
|
|||||||
@@ -120,10 +120,13 @@ typedef struct session_ambr_s {
|
|||||||
/* Optional Presence IE - TS 24.501 Table 8.3.2.1.1 */
|
/* Optional Presence IE - TS 24.501 Table 8.3.2.1.1 */
|
||||||
|
|
||||||
typedef struct pdu_address_s {
|
typedef struct pdu_address_s {
|
||||||
uint8_t pdu_iei; /* PDU Address IEI (0x29) */
|
// PDU address IEI (0x29) (octet 1)
|
||||||
uint8_t pdu_length; /* Length of PDU address contents */
|
uint8_t pdu_iei;
|
||||||
uint8_t pdu_type; /* PDU session type value */
|
// Length of PDU address contents (octet 2)
|
||||||
/// PDU address information (depending on type, up to 12 bytes)
|
uint8_t pdu_length;
|
||||||
|
// PDU session type value (9.11.4.11 of TS 24.501)
|
||||||
|
uint8_t pdu_type;
|
||||||
|
// PDU address IE (depending on type, up to 12 bytes)
|
||||||
uint8_t pdu_addr_oct[IPv4_ADDRESS_LENGTH + IPv6_INTERFACE_ID_LENGTH];
|
uint8_t pdu_addr_oct[IPv4_ADDRESS_LENGTH + IPv6_INTERFACE_ID_LENGTH];
|
||||||
} pdu_address_t; /* TS 24.501 9.11.4.10 */
|
} pdu_address_t; /* TS 24.501 9.11.4.10 */
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
* \brief simulator for nr nas message
|
* \brief simulator for nr nas message
|
||||||
* \author Yoshio INOUE, Masayuki HARADA
|
* \author Yoshio INOUE, Masayuki HARADA
|
||||||
* \email yoshio.inoue@fujitsu.com,masayuki.harada@fujitsu.com
|
* \email yoshio.inoue@fujitsu.com,masayuki.harada@fujitsu.com
|
||||||
|
* \protocol 5GS (5GMM and 5GSM)
|
||||||
* \date 2020
|
* \date 2020
|
||||||
* \version 0.1
|
* \version 0.1
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user