S1AP_TCFunctions.ttcn 301 KB
Newer Older
rennoch's avatar
rennoch committed
             */
            function f_TC_S1AP_mME_CMP_10() runs on S1APComponent { 
                // Local variables
                var template(value) Cause v_cause;
rennoch's avatar
rennoch committed
                const E_RAB_ID c_E_RAB_ID_A := 0;
rennoch's avatar
rennoch committed
                                
                // Preamble
                f_S1AP_mme_init();
                
                f_rABSetupRequest();
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
garciay's avatar
garciay committed

                f_send_Ue_Context_Resume_Request(
                    m_UeContextResumeRequestIEs_RABFailedToResumeItem(
garciay's avatar
garciay committed
                    vc_MME_UE_ID,
                        vc_eNB_UE_ID,
garciay's avatar
garciay committed
                        {
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                        }
garciay's avatar
garciay committed
                    
rennoch's avatar
rennoch committed
                f_recv_Ue_Context_Resume_Failure(mw_UeContextResumeFailureIEs);                
                
                // Postamble
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_CMP_10 
garciay's avatar
garciay committed
            
            /**
             * @desc Testcase function for TC_S1AP_mME_CMP_11
             */
            function f_TC_S1AP_mME_CMP_11() runs on S1APComponent { 
                // Local variables
                var template(value) Cause v_cause;
                                
                // Preamble
                f_S1AP_mme_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body                    
                action("trigger a Connection establishment indication");
                f_recv_Connection_Establishment_Indication(mw_ConnectionEstablishmentIndicationIEs);                
                
                // Postamble
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_CMP_11
garciay's avatar
garciay committed
            
        } // End of group Context_management_group
        /**
         * @desc Handover signalling group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.4  Handover signalling group
         */
        group Handover_signalling_group {
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_01
             */
            function f_TC_S1AP_MME_HAS_01() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,
                        m_cause_ran(unspecified),
                        m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
                                                       m_ENB_ID_macro),
                                       m_TAI('000001'O,
                                             '0001'O)),
                        c_source_ToTarget_TransparentContainer
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,//handover_Type
                        c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_01

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_02
             */
            function f_TC_S1AP_MME_HAS_02() runs on S1APComponent { 
                // Local variables
                const SourceRNC_ToTargetRNC_TransparentContainer c_sourceRNC_ToTargetRNC_TransparentContainer := '12121212'O;
                const TargetRNC_ToSourceRNC_TransparentContainer c_targetRNC_ToSourceRNC_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetoutran,
                        m_cause_ran(unspecified),
                        m_TargetRNC_ID(m_LAI('000001'O, //plmn id
                                             '0001'O),  //lac
                                       m_rNC_Id),
                        c_sourceRNC_ToTargetRNC_TransparentContainer
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs_NASSecurity(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetoutran,//handover_Type
                        c_targetRNC_ToSourceRNC_TransparentContainer,//TargetToSourceTransparentContainer
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_02

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_03
             */
            function f_TC_S1AP_MME_HAS_03() runs on S1APComponent { 
                // Local variables
                const SourceBSS_ToTargetBSS_TransparentContainer c_sourceBSS_ToTargetBSS_TransparentContainer := '12121212'O;
                const TargetBSS_ToSourceBSS_TransparentContainer c_targetBSS_ToSourceBSS_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetogeran,
                        m_cause_ran(unspecified),
                        m_Target_CGI('000001'O, //plmn id
                                     '0001'O,//lac
                                     '0001'O //ci
                                    ),
                        c_sourceBSS_ToTargetBSS_TransparentContainer
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs_NASSecurity(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetogeran,//handover_Type
                        c_targetBSS_ToSourceBSS_TransparentContainer,//TargetToSourceTransparentContainer
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_03
            
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_04_ENB1
             */
            function f_TC_S1AP_MME_HAS_04_ENB1() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs_CSGID_CellAccessMode(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,
                        m_cause_ran(unspecified),
                        m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
                                                       m_ENB_ID_macro),
                                       m_TAI('000001'O,
                                             '0001'O)),
                        c_source_ToTarget_TransparentContainer,
                        '000000000000000000000000001'B,
                        hybrid
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,//handover_Type
                        c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_04_ENB1
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_04_ENB2
             */
            function f_TC_S1AP_MME_HAS_04_ENB2() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_recv_HandoverRequest(
                    mw_HandoverRequestIEs_CSGID_CellAccessMode(
                        -,
                        -,
                        -,
                        -,
                        {?},//E_RabsToBeSetupItem
                        -,
                        -,
                        -,
                        -,
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                //send HandoverRequestAck
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_04_ENB2
5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_05
             */
            function f_TC_S1AP_MME_HAS_05() runs on S1APComponent { 
                // Local variables
                const SourceBSS_ToTargetBSS_TransparentContainer c_sourceBSS_ToTargetBSS_TransparentContainer := '12121212'O;
                const TargetBSS_ToSourceBSS_TransparentContainer c_targetBSS_ToSourceBSS_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs_SRVCCHOIndication(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetogeran,
                        m_cause_ran(unspecified),
                        m_Target_CGI('000001'O, //plmn id
                                     '0001'O,//lac
                                     '0001'O //ci
                                    ),
                        c_sourceBSS_ToTargetBSS_TransparentContainer,
                        cSonly //SRVCCHOIndication
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs_NASSecurity(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetogeran,//handover_Type
                        c_targetBSS_ToSourceBSS_TransparentContainer,//TargetToSourceTransparentContainer
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_05

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_06
             */
            function f_TC_S1AP_MME_HAS_06() runs on S1APComponent { 
                // Local variables
                const SourceRNC_ToTargetRNC_TransparentContainer c_sourceRNC_ToTargetRNC_TransparentContainer := '12121212'O;
                const TargetRNC_ToSourceRNC_TransparentContainer c_targetRNC_ToSourceRNC_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs_SRVCCHOIndication(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetoutran,
                        m_cause_ran(unspecified),
                        m_TargetRNC_ID(m_LAI('000001'O, //plmn id
                                             '0001'O),  //lac
                                       m_rNC_Id),
                        c_sourceRNC_ToTargetRNC_TransparentContainer,
                        cSonly //SRVCCHOIndication
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs_NASSecurity(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetoutran,//handover_Type
                        c_targetRNC_ToSourceRNC_TransparentContainer,//TargetToSourceTransparentContainer
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_06

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_07
             */
            function f_TC_S1AP_MME_HAS_07() runs on S1APComponent { 
                // Local variables
                const SourceBSS_ToTargetBSS_TransparentContainer c_sourceBSS_ToTargetBSS_TransparentContainer := '12121212'O;
                const SourceBSS_ToTargetBSS_TransparentContainer c_sourceBSS_ToTargetBSS_TransparentContainer_2nd := '12121212'O;
                
                const TargetBSS_ToSourceBSS_TransparentContainer c_targetBSS_ToSourceBSS_TransparentContainer := '12121212'O;
                const TargetBSS_ToSourceBSS_TransparentContainer c_targetBSS_ToSourceBSS_TransparentContainer_2nd := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs_SRVCCHOInd_S2TTransCont2nd_MSClassmark23(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetogeran,
                        m_cause_ran(unspecified),
                        m_Target_CGI('000001'O, //plmn id
                                     '0001'O,//lac
                                     '0001'O //ci
                                    ),
                        c_sourceBSS_ToTargetBSS_TransparentContainer,
                        c_sourceBSS_ToTargetBSS_TransparentContainer_2nd,
                        pSandCS, //SRVCCHOIndication
                        '0000'O, //MSclassmark2 need to be coded due to 9.2.1.64 and ts 48.008
                        '0000'O  //MSclassmark3 need to be coded due to 9.2.1.65 and ts 48.008
                ));
                 
                f_recv_HandoverCommand(
                mw_HandoverCommandIEs_T2STransCont2nd_NASSecurity(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetogeran,//handover_Type
                        c_targetBSS_ToSourceBSS_TransparentContainer,//TargetToSourceTransparentContainer
                        c_targetBSS_ToSourceBSS_TransparentContainer_2nd,//TargetToSourceTransparentContainer
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_07

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_08
             */
            function f_TC_S1AP_MME_HAS_08() runs on S1APComponent { 
                // Local variables
                const SourceRNC_ToTargetRNC_TransparentContainer c_sourceRNC_ToTargetRNC_TransparentContainer := '12121212'O;
                const TargetRNC_ToSourceRNC_TransparentContainer c_targetRNC_ToSourceRNC_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs_SRVCCHOIndication(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetoutran,
                        m_cause_ran(unspecified),
                        m_TargetRNC_ID(m_LAI('000001'O, //plmn id
                                             '0001'O),  //lac
                                       m_rNC_Id),
                        c_sourceRNC_ToTargetRNC_TransparentContainer,
                        pSandCS
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs_NASSecurity(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetoutran,//handover_Type
                        c_targetRNC_ToSourceRNC_TransparentContainer,//TargetToSourceTransparentContainer
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_08
            
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_09
             */
            function f_TC_S1AP_MME_HAS_09() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs_CSGID(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,
                        m_cause_ran(unspecified),
                        m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
                                                       m_ENB_ID_macro),
                                       m_TAI('000001'O,
                                             '0001'O)),
                        c_source_ToTarget_TransparentContainer,
                        '000000000000000000000000001'B
                ));
                 
                f_recv_HandoverPreparationFailure(
                    mw_HandoverPreparationFailureIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        -//cause
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_09
            
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_10
             */
            function f_TC_S1AP_MME_HAS_10() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                action("trigger an Handover request");
              
                f_recv_HandoverRequest(
                    mw_HandoverRequestIEs(
                        -,
                        -,
                        -,
                        -,
                        {?},//E_RabsToBeSetupItem
                        -,
                        -,
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                //send HandoverRequestAck
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_10
            
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_11
             */
            function f_TC_S1AP_MME_HAS_11() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_PathSwitchRequest(
                    m_PathSwitchRequestIEs(
                    vc_eNB_UE_ID,
                    {m_E_RABToBeSwitchedDLItem(1,-,-,-)},
                    vc_MME_UE_ID,
                    m_eUTRAN_CGI('000001'O, //plmn id
                                 '0000000000000000000000000001'B ),//ci
                    m_TAI('000001'O,'0001'O),
                    m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B)
                ));
                 
                f_recv_PathSwitchRequestAck(
                    mw_PathSwitchRequestAckIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        -//security context
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_11

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_12
             */
            function f_TC_S1AP_MME_HAS_12() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_PathSwitchRequest(
                    m_PathSwitchRequestIEs(
                    vc_eNB_UE_ID,
                    {m_E_RABToBeSwitchedDLItem(1,-,-,-)},
                    vc_MME_UE_ID,
                    m_eUTRAN_CGI('000001'O, //plmn id
                                 '0000000000000000000000000001'B ),//ci
                    m_TAI('000001'O,'0001'O),
                    m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B)
                ));
                 
                f_recv_PathSwitchRequestFailure(
                    mw_PathSwitchRequestFailureIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        -//cause
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_12

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_13
             */
            function f_TC_S1AP_MME_HAS_13() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_PathSwitchRequest(
                    m_PathSwitchRequestIEs(
                    vc_eNB_UE_ID,
                    {    m_E_RABToBeSwitchedDLItem(1,-,-,-),
                         m_E_RABToBeSwitchedDLItem(1,-,-,-)
                    },
                    vc_MME_UE_ID,
                    m_eUTRAN_CGI('000001'O, //plmn id
                                 '0000000000000000000000000001'B ),//ci
                    m_TAI('000001'O,'0001'O),
                    m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B)
                ));
                 
                f_recv_PathSwitchRequestFailure(
                    mw_PathSwitchRequestFailureIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        -//cause
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_13

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_14
             */
            function f_TC_S1AP_MME_HAS_14() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_PathSwitchRequest(
                    m_PathSwitchRequestIEs(
                    vc_eNB_UE_ID,
                    {m_E_RABToBeSwitchedDLItem(1,-,-,-)},
                    vc_MME_UE_ID,
                    m_eUTRAN_CGI('000001'O, //plmn id
                                 '0000000000000000000000000001'B ),//ci
                    m_TAI('000001'O,'0001'O),
                    m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B)
                ));
                 
                f_recv_PathSwitchRequestFailure(
                    mw_PathSwitchRequestFailureIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        -//cause
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_14
            
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_15
             */
            function f_TC_S1AP_MME_HAS_15() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,
                        m_cause_ran(unspecified),
                        m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
                                                       m_ENB_ID_macro),
                                       m_TAI('000001'O,
                                             '0001'O)),
                        c_source_ToTarget_TransparentContainer
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,//handover_Type
                        c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
                ));
                
                f_send_HandoverCancel(
                    m_HandoverCancelIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        m_cause_ran(unspecified)
                ));
                
                f_recv_HandoverCancelAck(
                    mw_HandoverCancelAckIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_15
            
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_16
             */
            function f_TC_S1AP_MME_HAS_16() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,
                        m_cause_ran(unspecified),
                        m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
                                                       m_ENB_ID_macro),
                                       m_TAI('000001'O,
                                             '0001'O)),
                        c_source_ToTarget_TransparentContainer
                ));
                 
//                f_recv_HandoverCommand(
//                    mw_HandoverCommandIEs(
//                        vc_MME_UE_ID,
//                        vc_eNB_UE_ID,
//                        intralte,//handover_Type
//                        c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
//                ));
                
                f_send_eNB_Status_Transfer(
                    m_eNB_Status_TransferIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        m_eNBStatusTransferTransparentContainer(
                          {{id:=89,//S1AP_Constants.id_Bearers_SubjectToStatusTransfer_Item,
                            criticality:=ignore,
                            value_:= {Bearers_SubjectToStatusTransfer_Item := valueof(
                                                 m_Bearers_SubjectToStatusTransfer_Item(1,
                                                                       m_COUNTvalue(0,0),
                                                                       m_COUNTvalue(0,0)))}
                           }
                          }
                        )
                ));
                
                f_recv_Mme_Status_Transfer(
                    mw_Mme_Status_TransferIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_16
            
        } // End of group Handover_signalling_group
        /**
         * @desc Paging group
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.5  Paging group
        group Pagin_group {
            /**
             * @desc Testcase function for TC_S1AP_MME_PAG_01
             */
            function f_TC_S1AP_MME_PAG_01() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a Paging procedure
                if (fx_MME_Paging_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a PAGING
                    f_recv_Paging(
                        mw_pagingIEs(
                            PX_UE_IDENTITY_INDEX_VALUE,
                            mw_uEPagingID_iMSI(
                                PX_IMSI
                            ),
garciay's avatar
garciay committed
                            PX_CNDOMAIN
                    ));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_PAG_01
            
        } // End of group Pagin_group
        
        /**
         * @desc NAS transport group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.6  NAS transport group
         */
        group NAS_transport_group {
            /**
             * @desc Testcase function for TC_S1AP_MME_NAS_01
             */
            function f_TC_S1AP_MME_NAS_01() runs on S1APComponent { 
                // Local variables
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");