diff --git a/openair3/NAS/UE/ESM/SAP/esm_send.c b/openair3/NAS/UE/ESM/SAP/esm_send.c index ab5341062a697d78286d9037913f3cf228a74bc5..51cd96fdc88bcb532894b1a72e8b7602a4c98209 100755 --- a/openair3/NAS/UE/ESM/SAP/esm_send.c +++ b/openair3/NAS/UE/ESM/SAP/esm_send.c @@ -181,6 +181,35 @@ int esm_send_pdn_connectivity_request(int pti, int is_emergency, int pdn_type, } } + /* Add PCO */ +# define CONFIGURATION_PROTOCOL_PPP 0 +# define PROTOCOL_ID_IPCP 0x8021 +# define PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS 0x000D +# define PROTOCOL_ID_IP_ADDR_NAS_SIGNALING 0x000A + + msg->presencemask |= PDN_CONNECTIVITY_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT; + msg->protocolconfigurationoptions.configurationprotol = CONFIGURATION_PROTOCOL_PPP; + msg->protocolconfigurationoptions.num_protocol_id_or_container_id = 3; + msg->protocolconfigurationoptions.protocolid[0] = PROTOCOL_ID_IPCP; + msg->protocolconfigurationoptions.lengthofprotocolid[0] = 16; /* Size of PROTOCOL_ID_IPCP */ + msg->protocolconfigurationoptions.protocolidcontents[0].value = (uint8_t *) + /* PROTOCOL_ID_IPCP data */ + /* the format is as of RFC 1331 (see page 27) */ + "\x01" /* Configure-Request */ + "\x00" /* Indentifier (set to 0) */ + "\x00\x10" /* Length (16 bytes) */ + "\x81" /* Type = Primary DNS - see RFC 1877 */ + "\x06" /* length */ + "\x00\x00\x00\x00" /* IP address set to 0 */ + "\x83" /* Type = Secondary DNS - see RFC 1877 */ + "\x06" /* length */ + "\x00\x00\x00\x00"; /* IP address set to 0 */ + msg->protocolconfigurationoptions.protocolidcontents[0].length = 16; + msg->protocolconfigurationoptions.protocolid[1] = PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS; + msg->protocolconfigurationoptions.lengthofprotocolid[1] = 0x00; + msg->protocolconfigurationoptions.protocolid[2] = PROTOCOL_ID_IP_ADDR_NAS_SIGNALING; + msg->protocolconfigurationoptions.lengthofprotocolid[2] = 0x00; + LOG_TRACE(INFO, "ESM-SAP - Send PDN Connectivity Request message " "(pti=%d, ebi=%d)", msg->proceduretransactionidentity, msg->epsbeareridentity);