RAB parameters: add Extended Max Bitrate
Adjust test expectation in test-ranap.c.
This IE is seen in a "real life" pcap of hNodeB operation. We did not need it
so far, but add it to test the ip.access nano3G.
Comment from the future: the ip.access nano3G rebooted upon RAB Assignment
Request, and after adding/tweaking some IEs it stopped rebooting. This is one
of the changes that fixed the reboot issue. The changes have been tested
incrementally until reboots vanished, but it's not clear/hasn't been tested
whether omitting this change alone will cause reboots to re-appear.
diff --git a/src/ranap_msg_factory.c b/src/ranap_msg_factory.c
index 1305bc2..041e546 100644
--- a/src/ranap_msg_factory.c
+++ b/src/ranap_msg_factory.c
@@ -609,7 +609,21 @@
rab->allocationOrRetentionPriority = new_alloc_ret_prio(RANAP_PriorityLevel_no_priority, 0, 0, 0);
- /* FIXME: RAB-Parameter-ExtendedMaxBitrateList for 42Mbps? */
+ RANAP_ProtocolExtensionField_t *pxf = CALLOC(1, sizeof(*pxf));
+ pxf->id = RANAP_ProtocolIE_ID_id_RAB_Parameter_ExtendedMaxBitrateList;
+ pxf->criticality = RANAP_Criticality_ignore;
+
+ RANAP_RAB_Parameter_ExtendedMaxBitrateList_t *rab_mbrlist = CALLOC(1, sizeof(*rab_mbrlist));
+ RANAP_ExtendedMaxBitrate_t *xmbr = CALLOC(1, sizeof(*xmbr));
+ *xmbr = 42000000;
+ ASN_SEQUENCE_ADD(&rab_mbrlist->list, xmbr);
+
+ ANY_fromType_aper(&pxf->value, &asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList, rab_mbrlist);
+
+ ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_Parameter_ExtendedMaxBitrateList, rab_mbrlist);
+
+ rab->iE_Extensions = CALLOC(1, sizeof(*rab->iE_Extensions));
+ ASN_SEQUENCE_ADD(&rab->iE_Extensions->list, pxf);
return rab;
}