Commit d804b703 authored by Stefan Spettel's avatar Stefan Spettel

Merge remote-tracking branch 'origin/cu_du_testing' into ulcl_release16_testing

parents c18a6bfc 2be197aa
......@@ -212,8 +212,8 @@ enum class sm_context_status_e {
SM_CONTEXT_STATUS_RELEASED = 1
};
static const std::vector<std::string> sm_context_status_e2str = {"ACTIVE",
"RELEASED"};
static const std::vector<std::string> sm_context_status_e2str = {
"ACTIVE", "RELEASED"};
typedef struct qos_profile_gbr_s {
gfbr_t gfbr; // Guaranteed Flow Bit Rate
......@@ -277,7 +277,8 @@ constexpr uint64_t SECONDS_SINCE_FIRST_EPOCH = 2208988800;
// 8.22 Fully Qualified TEID (F-TEID) - 3GPP TS 29.274 V16.0.0
#define TEID_GRE_KEY_LENGTH 4
#define DEFAULT_QFI 6
#define DEFAULT_QFI 1
#define DEFAULT_5QI 9 // TODO: from conf file
typedef struct dnn_smf_info_item_s {
std::string dnn;
......
......@@ -1126,14 +1126,14 @@ void smf_context::get_default_qos_rule(
(Create_ModifyAndAdd_ModifyAndReplace*) calloc(
1, sizeof(Create_ModifyAndAdd_ModifyAndReplace));
qos_rule.packetfilterlist.create_modifyandadd_modifyandreplace[0]
.packetfilterdirection = 0b11; // bi-directional
.packetfilterdirection = 0b10; // TODO: Uplink only!
qos_rule.packetfilterlist.create_modifyandadd_modifyandreplace[0]
.packetfilteridentifier = 1;
qos_rule.packetfilterlist.create_modifyandadd_modifyandreplace[0]
.packetfiltercontents.component_type = QOS_RULE_MATCHALL_TYPE;
// qos_rule.packetfilterlist.create_modifyandadd_modifyandreplace[0].packetfiltercontents.component_value
// = bfromcstralloc(2, "\0");
qos_rule.qosruleprecedence = 0xff;
qos_rule.qosruleprecedence = 0x01;
}
if (pdu_session_type == PDU_SESSION_TYPE_E_UNSTRUCTURED) {
......@@ -1174,7 +1174,7 @@ void smf_context::get_default_qos_flow_description(
(ParametersList*) calloc(3, sizeof(ParametersList));
qos_flow_description.parameterslist[0].parameteridentifier =
PARAMETER_IDENTIFIER_5QI;
qos_flow_description.parameterslist[0].parametercontents._5qi = qfi.qfi;
qos_flow_description.parameterslist[0].parametercontents._5qi = DEFAULT_5QI;
/*
qos_flow_description.parameterslist[1].parameteridentifier =
PARAMETER_IDENTIFIER_GFBR_UPLINK;
......
......@@ -231,7 +231,7 @@ bool smf_n2::create_n2_pdu_session_resource_setup_request_transfer(
.choice.nonDynamic5QI = (Ngap_NonDynamic5QIDescriptor_t*) (calloc(
1, sizeof(Ngap_NonDynamic5QIDescriptor_t)));
ngap_QosFlowSetupRequestItem->qosFlowLevelQosParameters.qosCharacteristics
.choice.nonDynamic5QI->fiveQI = (uint8_t) qos_flow.qfi.qfi;
.choice.nonDynamic5QI->fiveQI = (uint8_t) DEFAULT_5QI;
ngap_QosFlowSetupRequestItem->qosFlowLevelQosParameters
.allocationAndRetentionPriority.priorityLevelARP =
qos_flow.qos_profile.arp.priority_level;
......
......@@ -197,51 +197,51 @@ int smf_app::process_pco_request_ipcp(
* returning the IP address of a valid DNS server.
* By default, no secondary DNS address is provided.
*/
Logger::smf_app().debug(
"PCO: Protocol identifier IPCP option "
"SECONDARY_DNS_SERVER_IP_ADDRESS length %u",
ipcp_req_option_length);
if (ipcp_req_option_length >= 6) {
ipcp_dns_sec_ipv4_addr = htonl(
(((uint32_t) poc_id->protocol_id_contents.at(pco_in_index + 2))
<< 24) |
(((uint32_t) poc_id->protocol_id_contents.at(pco_in_index + 3))
<< 16) |
(((uint32_t) poc_id->protocol_id_contents.at(pco_in_index + 4))
<< 8) |
(((uint32_t) poc_id->protocol_id_contents.at(pco_in_index + 5))));
Logger::smf_app().debug(
"PCO: Protocol identifier IPCP option "
"SECONDARY_DNS_SERVER_IP_ADDRESS ipcp_dns_sec_ipv4_addr 0x%x",
ipcp_dns_sec_ipv4_addr);
if (ipcp_dns_sec_ipv4_addr == INADDR_ANY) {
ipcp_out_dns_sec_ipv4_addr = smf_cfg.default_dns_secv4.s_addr;
ipcp_out_code = IPCP_CODE_CONFIGURE_NACK;
} else if (
smf_cfg.default_dns_secv4.s_addr != ipcp_dns_sec_ipv4_addr) {
ipcp_out_code = IPCP_CODE_CONFIGURE_NACK;
ipcp_out_dns_sec_ipv4_addr = smf_cfg.default_dns_secv4.s_addr;
} else {
ipcp_out_dns_sec_ipv4_addr = ipcp_dns_sec_ipv4_addr;
}
Logger::smf_app().debug(
"PCO: Protocol identifier IPCP option "
"SECONDARY_DNS_SERVER_IP_ADDRESS ipcp_out_dns_sec_ipv4_addr 0x%x",
ipcp_out_dns_sec_ipv4_addr);
}
uint8_t ids[6] = {0};
ids[0] = IPCP_OPTION_SECONDARY_DNS_SERVER_IP_ADDRESS;
ids[1] = 6;
ids[2] = (uint8_t)(ipcp_out_dns_sec_ipv4_addr & 0x000000FF);
ids[3] = (uint8_t)((ipcp_out_dns_sec_ipv4_addr >> 8) & 0x000000FF);
ids[4] = (uint8_t)((ipcp_out_dns_sec_ipv4_addr >> 16) & 0x000000FF);
ids[5] = (uint8_t)((ipcp_out_dns_sec_ipv4_addr >> 24) & 0x000000FF);
ipcp_out_length += 6;
std::string tmp_s((const char*) &ids[0], 6);
poc_id_resp.protocol_id_contents.append(tmp_s);
/* Logger::smf_app().debug(
"PCO: Protocol identifier IPCP option "
"SECONDARY_DNS_SERVER_IP_ADDRESS length %u",
ipcp_req_option_length);
if (ipcp_req_option_length >= 6) {
ipcp_dns_sec_ipv4_addr = htonl(
(((uint32_t) poc_id->protocol_id_contents.at(pco_in_index + 2))
<< 24) |
(((uint32_t) poc_id->protocol_id_contents.at(pco_in_index + 3))
<< 16) |
(((uint32_t) poc_id->protocol_id_contents.at(pco_in_index + 4))
<< 8) |
(((uint32_t) poc_id->protocol_id_contents.at(pco_in_index +
5)))); Logger::smf_app().debug( "PCO: Protocol identifier IPCP option "
"SECONDARY_DNS_SERVER_IP_ADDRESS ipcp_dns_sec_ipv4_addr 0x%x",
ipcp_dns_sec_ipv4_addr);
if (ipcp_dns_sec_ipv4_addr == INADDR_ANY) {
ipcp_out_dns_sec_ipv4_addr = smf_cfg.default_dns_secv4.s_addr;
ipcp_out_code = IPCP_CODE_CONFIGURE_NACK;
} else if (
smf_cfg.default_dns_secv4.s_addr != ipcp_dns_sec_ipv4_addr) {
ipcp_out_code = IPCP_CODE_CONFIGURE_NACK;
ipcp_out_dns_sec_ipv4_addr = smf_cfg.default_dns_secv4.s_addr;
} else {
ipcp_out_dns_sec_ipv4_addr = ipcp_dns_sec_ipv4_addr;
}
Logger::smf_app().debug(
"PCO: Protocol identifier IPCP option "
"SECONDARY_DNS_SERVER_IP_ADDRESS ipcp_out_dns_sec_ipv4_addr
0x%x", ipcp_out_dns_sec_ipv4_addr);
}
uint8_t ids[6] = {0};
ids[0] = IPCP_OPTION_SECONDARY_DNS_SERVER_IP_ADDRESS;
ids[1] = 6;
ids[2] = (uint8_t)(ipcp_out_dns_sec_ipv4_addr & 0x000000FF);
ids[3] = (uint8_t)((ipcp_out_dns_sec_ipv4_addr >> 8) & 0x000000FF);
ids[4] = (uint8_t)((ipcp_out_dns_sec_ipv4_addr >> 16) & 0x000000FF);
ids[5] = (uint8_t)((ipcp_out_dns_sec_ipv4_addr >> 24) & 0x000000FF);
ipcp_out_length += 6;
std::string tmp_s((const char*) &ids[0], 6);
poc_id_resp.protocol_id_contents.append(tmp_s);
*/
} break;
default:
......
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