Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump @fbcnms/auth from 0.1.0 to 0.2.0 in /nms/app #86

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion docs/readmes/lte/enodebd.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ debug the S1 interface between the enodeB and the AGW (filter for SCTP).
*Magma officially supports auto-configuration of the following devices:*
* Baicells Nova-243 Outdoor FDD/TDD eNodeB
- Firmware Version: BaiBS_RTS_3.1.6
- Firmware Version: BaiBS_RTSH_2.6.0.1
* Baicells mBS1100 LTE-TDD Base Station
- Firmware Version: BaiStation_V100R001C00B110SPC003
* Baicells Neutrino-244 ID FDD/TDD enodeB
Expand Down
25 changes: 25 additions & 0 deletions lte/gateway/c/oai/lib/3gpp/3gpp_24.008.h
Original file line number Diff line number Diff line change
Expand Up @@ -579,6 +579,7 @@ typedef enum gprs_mobility_managenent_ie_e {
GMM_VOICE_DOMAIN_PREFERENCE_AND_UE_USAGE_SETTING_IEI = 0x5D, /* 0x5D = 93 */
GMM_TMSI_STATUS_IEI = 0x90, /* 0x90 = 144 (shifted by 4)*/
GMM_IMEISV_REQUEST_IEI = 0xC0, /* 0xC0 = 192 (shifted by 4)*/
GMM_EDRX_PARAMETER_IEI = 0x6E, /* 0x6E = 110 */
} gprs_mobility_managenent_ie_t;

//------------------------------------------------------------------------------
Expand Down Expand Up @@ -781,6 +782,30 @@ int decode_voice_domain_preference_and_ue_usage_setting(
voicedomainpreferenceandueusagesetting,
const bool iei_present, uint8_t* buffer, const uint32_t len);

//------------------------------------------------------------------------------
// 10.5.5.32 Extended DRX parameter
//------------------------------------------------------------------------------
#define EDRX_PARAMETER_IE_TYPE 3
#define EDRX_PARAMETER_IE_MIN_LENGTH 3
#define EDRX_PARAMETER_IE_MAX_LENGTH 3

typedef struct edrx_parameter_s {
uint8_t length;
uint8_t pagingtimewindow : 4;
uint8_t edrxvalue : 4;
} edrx_parameter_t;

int encode_edrx_parameter_ie(
edrx_parameter_t *edrxparameter,
const bool iei_present,
uint8_t *buffer,
const uint32_t len);
int decode_edrx_parameter_ie(
edrx_parameter_t *edrxparameter,
const bool iei_present,
uint8_t *buffer,
const uint32_t len);

//******************************************************************************
// 10.5.6 Session management information elements
//******************************************************************************
Expand Down
30 changes: 30 additions & 0 deletions lte/gateway/c/oai/lib/3gpp/3gpp_24.008_gmm_ies.c
Original file line number Diff line number Diff line change
Expand Up @@ -445,3 +445,33 @@ int encode_voice_domain_preference_and_ue_usage_setting(
*lenPtr = encoded - 1 - ((iei_present) ? 1 : 0);
return encoded;
}

//------------------------------------------------------------------------------
// 10.5.5.32 Extended DRX parameter
//------------------------------------------------------------------------------
int decode_edrx_parameter_ie(
edrx_parameter_t *edrxparameter,
const bool iei_present,
uint8_t *buffer,
const uint32_t len)
{
int decoded = 0;

if (iei_present) {
CHECK_PDU_POINTER_AND_LENGTH_DECODER(
buffer, EDRX_PARAMETER_IE_MAX_LENGTH, len);
CHECK_IEI_DECODER(GMM_EDRX_PARAMETER_IEI, *buffer);
decoded++;
} else {
CHECK_PDU_POINTER_AND_LENGTH_DECODER(
buffer, (EDRX_PARAMETER_IE_MAX_LENGTH - 1), len);
}

edrxparameter->length = *(buffer + decoded);
decoded++;
edrxparameter->pagingtimewindow = (*(buffer + decoded) >> 4) & 0xF;
edrxparameter->edrxvalue = *(buffer + decoded) & 0xF;
decoded++;
return decoded;
}

16 changes: 16 additions & 0 deletions lte/gateway/c/oai/tasks/nas/emm/msg/AttachRequest.c
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,22 @@ int decode_attach_request(
attach_request->presencemask |=
ATTACH_REQUEST_NETWORK_RESOURCE_IDENTIFIER_CONTAINER_PRESENT;
break;
case ATTACH_REQUEST_EDRX_PARAMETER_IEI:
if (
(decoded_result = decode_edrx_parameter_ie(
&attach_request->edrxparameter,
true,
buffer + decoded,
len - decoded)) <= 0) {
OAILOG_FUNC_RETURN(LOG_NAS_EMM, decoded_result);
}

decoded += decoded_result;
/*
* Set corresponding mask to 1 in presencemask
*/
attach_request->presencemask |= ATTACH_REQUEST_EDRX_PARAMETER_PRESENT;
break;

default:
errorCodeDecoder = TLV_UNEXPECTED_IEI;
Expand Down
5 changes: 4 additions & 1 deletion lte/gateway/c/oai/tasks/nas/emm/msg/AttachRequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
(1 << 12)
#define ATTACH_REQUEST_MS_NETWORK_FEATURE_SUPPORT_PRESENT (1 << 13)
#define ATTACH_REQUEST_NETWORK_RESOURCE_IDENTIFIER_CONTAINER_PRESENT (1 << 14)
#define ATTACH_REQUEST_EDRX_PARAMETER_PRESENT (1 << 15)

typedef enum attach_request_iei_tag {
ATTACH_REQUEST_OLD_PTMSI_SIGNATURE_IEI = GMM_PTMSI_SIGNATURE_IEI,
Expand All @@ -96,7 +97,8 @@ typedef enum attach_request_iei_tag {
ATTACH_REQUEST_OLD_GUTI_TYPE_IEI = 0xE0, /* 0xE0 = 224 */
ATTACH_REQUEST_VOICE_DOMAIN_PREFERENCE_AND_UE_USAGE_SETTING_IEI =
GMM_VOICE_DOMAIN_PREFERENCE_AND_UE_USAGE_SETTING_IEI,
ATTACH_REQUEST_NETWORK_RESOURCE_IDENTIFIER_CONTAINER_IEI = 0x10
ATTACH_REQUEST_NETWORK_RESOURCE_IDENTIFIER_CONTAINER_IEI = 0x10,
ATTACH_REQUEST_EDRX_PARAMETER_IEI = 0x6e
} attach_request_iei;

/*
Expand Down Expand Up @@ -134,6 +136,7 @@ typedef struct attach_request_msg_tag {
voicedomainpreferenceandueusagesetting;
ms_network_feature_support_t msnetworkfeaturesupport;
network_resource_identifier_container_t networkresourceidentifiercontainer;
edrx_parameter_t edrxparameter;
} attach_request_msg;

int decode_attach_request(
Expand Down
2 changes: 0 additions & 2 deletions lte/gateway/python/magma/enodebd/devices/device_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,6 @@ def get_device_name(
return EnodebDeviceName.BAICELLS
elif sw_version.startswith('BaiBS_RTS_'):
return EnodebDeviceName.BAICELLS_RTS
elif sw_version.startswith('BaiBS_RTSH_'):
return EnodebDeviceName.BAICELLS_RTS
else:
raise UnrecognizedEnodebError("Device %s unsupported: Software (%s)"
% (device_oui, sw_version))
Expand Down
2 changes: 1 addition & 1 deletion nms/app/packages/magmalte/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"dependencies": {
"@date-io/moment": "1.3.13",
"@fbcnms/alarms": "^0.1.12",
"@fbcnms/auth": "^0.1.0",
"@fbcnms/auth": "^0.2.0",
"@fbcnms/babel-register": "^0.1.2",
"@fbcnms/magma-api": "^0.1.0",
"@fbcnms/platform-server": "^0.1.16",
Expand Down
Loading