def __init__(self): self._set_session = SetSMSessionContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI12345"), ue_ipv4="192.168.128.11", apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), sm_session_state=SMSessionFSMState.Name(0), sm_session_version=0, ), rat_specific_context=RatSpecificContext( m5gsm_session_context=M5GSMSessionContext( pdu_session_id=1, request_type=RequestType.Name(0, ), gnode_endpoint=TeidSet( teid=10000, end_ipv4_addr="192.168.60.141", ), pdu_session_type=PduSessionType.Name(0), ssc_mode=SscMode.Name(2), subscribed_qos=M5GQosInformationRequest( apn_ambr_ul=750000, apn_ambr_dl=1000000, priority_level=1, preemption_capability=1, preemption_vulnerability=1, qos_class_id=9, br_unit=M5GQosInformationRequest.BitrateUnitsAMBR.Name( 1), ), ), ), )
def __init__(self): self._set_session =\ SetSMSessionContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI987654"), ue_ipv4="192.168.128.111", apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), sm_session_state=SMSessionFSMState.Name(0), sm_session_version=0, ), rat_specific_context=RatSpecificContext( m5gsm_session_context=M5GSMSessionContext( pdu_session_id=2, request_type=RequestType.Name( 0, ), gnode_endpoint=TeidSet( teid=300, end_ipv4_addr="192.168.60.141", ), pdu_session_type=PduSessionType.Name(0), ssc_mode=SscMode.Name(2), ), ), )
def __init__(self): self._set_session = SetSMSessionContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI12345"), ue_ipv4="192.168.128.11", apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), sm_session_state=SMSessionFSMState.Name(0), sm_session_version=0, ), rat_specific_context=RatSpecificContext( m5gsm_session_context=M5GSMSessionContext( pdu_session_id=1, request_type=RequestType.Name( 0, ), gnode_endpoint=TeidSet( teid=10000, end_ipv4_addr="192.168.60.141", ), pdu_session_type=PduSessionType.Name(0), ssc_mode=SscMode.Name(2), default_ambr=AggregatedMaximumBitrate( max_bandwidth_ul=750000, max_bandwidth_dl=1000000, ), ), ), )
def __init__(self): self._set_session =\ SetSMSessionContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI12345"), apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), sm_session_state=SMSessionFSMState.Name(0), sm_session_version=0, ), rat_specific_context=RatSpecificContext( m5gsm_session_context=M5GSMSessionContext( pdu_session_id=2, request_type=RequestType.Name( 0, ), gnode_endpoint=TeidSet( teid=10001, end_ipv4_addr="192.168.60.141", ), pdu_address=RedirectServer( redirect_address_type=RedirectServer.IPV4, redirect_server_address="192.168.128.12", ), pdu_session_type=PduSessionType.Name(0), ssc_mode=SscMode.Name(2), ), ), )
def __init__(self): self._set_session =\ SetSmNotificationContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI12345"), apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), sm_session_state=SMSessionFSMState.Name(2), sm_session_version=6, ), rat_specific_notification=RatSpecificNotification( pdu_session_id=1, request_type=RequestType.Name(1), notify_ue_event=5, ), )
def __init__(self): self._set_session = SetSMSessionContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI12345"), ue_ipv4="192.168.128.11", apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), sm_session_state=SMSessionFSMState.Name(2), sm_session_version=1, ), rat_specific_context=RatSpecificContext( m5gsm_session_context=M5GSMSessionContext( pdu_session_id=1, request_type=RequestType.Name( 1, ), gnode_endpoint=TeidSet( teid=10000, end_ipv4_addr="192.168.60.141", ), pdu_session_type=PduSessionType.Name(0), ssc_mode=SscMode.Name(2), qos_policy=[ QosPolicy( policy_state=0, policy_action=1, version=2, qos=PolicyRule( id="ims-voice", priority=10, flow_list=[], qos=FlowQos( qci=int(5), max_req_bw_ul=100000, max_req_bw_dl=100000, arp=QosArp( priority_level=1, pre_capability=1, pre_vulnerability=0, ), ), ), ), ], ), ), )
def _build_create_session_data(subs: List[SubscriberID]): reqs = [] for sid in subs: # build request req = LocalCreateSessionRequest( common_context=CommonSessionContext( sid=sid, apn=TEST_APN, rat_type=TGPP_LTE, ), rat_specific_context=RatSpecificContext( lte_context=LTESessionContext(bearer_id=1, ), ), ) req_dict = json_format.MessageToDict(req) # Dumping AllocateIP request into json reqs.append(req_dict) with open(CREATE_SESSION_FILENAME, 'w') as file: json.dump(reqs, file, separators=(',', ':'))
def __init__(self): self._set_session =\ SetSMSessionContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI987654"), apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), ue_ipv4="192.168.128.111", sm_session_state=SMSessionFSMState.Name(4), sm_session_version=6, ), rat_specific_context=RatSpecificContext( m5gsm_session_context=M5GSMSessionContext( pdu_session_id=2, request_type=RequestType.Name( 1, ), pdu_session_type=PduSessionType.IPV4, ), ), )
def __init__(self): self._set_session =\ SetSMSessionContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI12345"), ue_ipv6="2001:db8::1", apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), sm_session_state=SMSessionFSMState.Name(4), sm_session_version=6, ), rat_specific_context=RatSpecificContext( m5gsm_session_context=M5GSMSessionContext( pdu_session_id=1, request_type=RequestType.Name( 1, ), pdu_session_type=PduSessionType.IPV6, ), ), )
def test_CreateSession(self): """ Create a session Assert: There is a high volume of granted credits A static rule is installed for redirection to the captive portal server Two dynamic rules are installed for traffic from UE to captive portal and vice versa """ msg = CreateSessionRequest( session_id = '1234', common_context = CommonSessionContext( sid = SubscriberID( id = 'IMSI1234', ) ), rat_specific_context = RatSpecificContext( lte_context = LTESessionContext( imsi_plmn_id = '00101', ), ), ) resp = self.servicer.CreateSession(msg, None) # There should be a static rule installed for the redirection static_rules = self._rm_whitespace(str(resp.static_rules)) expected = self._rm_whitespace(CSR_STATIC_RULES) self.assertEqual(static_rules, expected, 'There should be one static ' 'rule installed for redirection.') # Credit granted should be unlimited and un-metered credit_limit_type = resp.credits[0].limit_type expected = CreditLimitType.Value("INFINITE_UNMETERED") self.assertEqual(credit_limit_type, expected, 'There should be an ' 'infinite, unmetered credit grant')
def __init__(self): self._set_session =\ SetSMSessionContext( common_context=CommonSessionContext( sid=SubscriberID(id="IMSI12345"), apn=bytes("BLR", 'utf-8'), rat_type=RATType.Name(2), sm_session_state=SMSessionFSMState.Name(4), sm_session_version=6, ), rat_specific_context=RatSpecificContext( m5gsm_session_context=M5GSMSessionContext( pdu_session_id=1, request_type=RequestType.Name( 1, ), pdu_address=RedirectServer( redirect_address_type=RedirectServer.IPV4, redirect_server_address="192.168.128.11", ), pdu_session_type=PduSessionType.IPV4, ), ), )