go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/crudIPv6/srv6_crudIPv6.robot (about)

     1  *** Settings ***
     2  Library      OperatingSystem
     3  #Library      RequestsLibrary
     4  #Library      SSHLibrary      timeout=60s
     5  #Library      String
     6  
     7  Resource     ../../variables/${VARIABLES}_variables.robot
     8  
     9  Resource     ../../libraries/all_libs.robot
    10  Resource    ../../libraries/pretty_keywords.robot
    11  
    12  Force Tags        crud     IPv6
    13  Suite Setup       Testsuite Setup
    14  Suite Teardown    Testsuite Teardown
    15  Test Setup        TestSetup
    16  Test Teardown     TestTeardown
    17  
    18  *** Variables ***
    19  ${VARIABLES}=          common
    20  ${ENV}=                common
    21  ${WAIT_TIMEOUT}=       20s
    22  ${SYNC_SLEEP}=         3s
    23  # wait for resync vpps after restart
    24  ${RESYNC_WAIT}=        30s
    25  @{segmentList1}    b::    c::    d::
    26  @{segmentList2}    c::    d::    e::
    27  @{segmentList3}    d::    e::    a::
    28  @{segmentList4}    e::    a::    b::
    29  @{segmentList1weight1}    1    @{segmentList1}    # segment list's weight and segments
    30  @{segmentList2weight2}    2    @{segmentList2}    # segment list's weight and segments
    31  @{segmentList3weight3}    3    @{segmentList3}    # segment list's weight and segments
    32  @{segmentList3weight4}    4    @{segmentList3}    # segment list's weight and segments
    33  @{segmentList4weight4}    4    @{segmentList4}    # segment list's weight and segments
    34  @{segmentLists1weight1}        ${segmentList1weight1}
    35  @{segmentLists3weight3}        ${segmentList3weight3}
    36  @{segmentLists3weight4}        ${segmentList3weight4}
    37  @{segmentLists4weight4}        ${segmentList4weight4}
    38  @{segmentLists12weight12}      ${segmentList1weight1}    ${segmentList2weight2}
    39  @{segmentLists23weight23}      ${segmentList2weight2}    ${segmentList3weight3}
    40  
    41  *** Test Cases ***
    42  Configure Environment
    43      [Tags]    setup
    44      Add Agent VPP Node            agent_vpp_1
    45      Put Veth Interface With IP    node=agent_vpp_1    name=vpp1_veth1        mac=12:11:11:11:11:11    peer=vpp1_veth2    ip=10.10.1.1
    46      Put Veth Interface            node=agent_vpp_1    name=vpp1_veth2        mac=12:12:12:12:12:12    peer=vpp1_veth1
    47      Put Afpacket Interface        node=agent_vpp_1    name=vpp1_afpacket1    mac=a2:a1:a1:a1:a1:a1    host_int=vpp1_veth2
    48      Put Veth Interface With IP    node=agent_vpp_1    name=vpp1_veth3        mac=12:13:13:13:13:13    peer=vpp1_veth4    ip=10.10.1.2
    49      Put Veth Interface            node=agent_vpp_1    name=vpp1_veth4        mac=12:14:14:14:14:14    peer=vpp1_veth3
    50      Put Afpacket Interface        node=agent_vpp_1    name=vpp1_afpacket2    mac=a2:a2:a2:a2:a2:a2    host_int=vpp1_veth4
    51  
    52  #TODO Add CRUD test for LocalSIDs with END.DX function (VPP CLI dump writes that DX2 is unsupported, but note in NB model tells that only case with vlan != 0 should not be supported)
    53  
    54  Check CRUD For Local SID With END Function (Base End)
    55      Put Local SID With Base End function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0
    56      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=BASE
    57      # can't really modify something visible in CLI output -> can't test update
    58      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
    59      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Deleted     node=agent_vpp_1    sidAddress=a::
    60  
    61  Check CRUD For Local SID With END.X Function
    62      Put Local SID With End.X function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          outinterface=vpp1_afpacket1           nexthop=a::1    psp=false
    63      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=X   interface=host-vpp1_veth2    nexthop=a::1
    64      Put Local SID With End.X function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          outinterface=vpp1_afpacket1           nexthop=c::1    psp=false   #modification
    65      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=X   interface=host-vpp1_veth2    nexthop=c::1
    66      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
    67      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Deleted     node=agent_vpp_1    sidAddress=a::
    68  
    69  Check CRUD For Local SID With END.T Function
    70      Create VRF Table    node=agent_vpp_1    id=21    protocol=ipv6
    71      Create VRF Table    node=agent_vpp_1    id=22    protocol=ipv6
    72      Put Local SID With End.T function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          vrfid=21    psp=false
    73      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=T   fibtable=1
    74      Put Local SID With End.T function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          vrfid=22    psp=false    #modification (fibtable is index for structure from memory pool (1-to-1 mapping between vrf and fib table id) -> track changes of vrf with fibtable id)
    75      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=T   fibtable=2
    76      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
    77      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Deleted     node=agent_vpp_1    sidAddress=a::
    78  
    79  Check CRUD For Local SID With END.DT4 Function
    80      Create VRF Table    node=agent_vpp_1    id=11    protocol=ipv4
    81      Create VRF Table    node=agent_vpp_1    id=12    protocol=ipv4
    82      Put Local SID With End.DT4 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          vrfid=11
    83      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=DT4   fibtable=1
    84      Put Local SID With End.DT4 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          vrfid=12    #modification (fibtable is index for structure from memory pool (1-to-1 mapping between vrf and fib table id) -> track changes of vrf with fibtable id)
    85      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=DT4   fibtable=2
    86      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
    87      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Deleted     node=agent_vpp_1    sidAddress=a::
    88  
    89  Check CRUD For Local SID With END.DT6 Function
    90      Create VRF Table    node=agent_vpp_1    id=23    protocol=ipv6
    91      Create VRF Table    node=agent_vpp_1    id=24    protocol=ipv6
    92      Put Local SID With End.DT6 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          vrfid=23
    93      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=DT6   fibtable=3
    94      Put Local SID With End.DT6 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          vrfid=24    #modification (fibtable is index for structure from memory pool (1-to-1 mapping between vrf and fib table id) -> track changes of vrf with fibtable id)
    95      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=DT6   fibtable=4
    96      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
    97      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Deleted     node=agent_vpp_1    sidAddress=a::
    98  
    99  Check CRUD For Local SID With END.DX4 Function
   100      Put Local SID With End.DX4 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          outinterface=vpp1_afpacket1           nexthop=1.1.1.1
   101      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=DX4    interface=host-vpp1_veth2    nexthop=1.1.1.1
   102      Put Local SID With End.DX4 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          outinterface=vpp1_afpacket1           nexthop=1.1.1.2   #modification
   103      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=DX4    interface=host-vpp1_veth2    nexthop=1.1.1.2
   104      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
   105      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Deleted     node=agent_vpp_1    sidAddress=a::
   106  
   107  Check CRUD For Local SID With END.DX6 Function
   108      Put Local SID With End.DX6 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          outinterface=vpp1_afpacket1           nexthop=a::1
   109      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=DX6   interface=host-vpp1_veth2    nexthop=a::1
   110      Put Local SID With End.DX6 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0          outinterface=vpp1_afpacket1           nexthop=c::1   #modification
   111      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=DX6   interface=host-vpp1_veth2    nexthop=c::1
   112      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
   113      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Deleted     node=agent_vpp_1    sidAddress=a::
   114  
   115  Check CRUD For Local SID With END.AD Function (SR-Proxy)
   116      # SR-proxy is actual a Local SID with End.AD end function, but VPP is configured in this case differently in compare to other local SIDs (VPP CLI(using VPE binary API) vs binary VPP API) -> need to test this
   117      Put Local SID With End.AD function     node=agent_vpp_1    sidAddress=a::    l3serviceaddress=10.10.1.2    outinterface=vpp1_afpacket1    ininterface=vpp1_afpacket2
   118      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=AD    serviceaddress=10.10.1.2    outinterface=host-vpp1_veth2    ininterface=host-vpp1_veth4
   119      Put Local SID With End.AD function     node=agent_vpp_1    sidAddress=a::    l3serviceaddress=10.10.1.2    outinterface=vpp1_afpacket2    ininterface=vpp1_afpacket1   #modification
   120      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Presence    node=agent_vpp_1    sidAddress=a::    endFunctionType=AD    serviceaddress=10.10.1.2    outinterface=host-vpp1_veth4    ininterface=host-vpp1_veth2
   121      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
   122      Wait Until Keyword Succeeds        ${WAIT_TIMEOUT}     ${SYNC_SLEEP}     vpp_term: Check Local SID Deleted     node=agent_vpp_1    sidAddress=a::
   123  
   124  Check Policy CRUD
   125      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists1weight1}    installationVrfId=0         srhEncapsulation=true      sprayBehaviour=true
   126      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists1weight1}    fibtable=0    behaviour=Encapsulation    type=Spray    index=0
   127      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists1weight1}    installationVrfId=0         srhEncapsulation=false      sprayBehaviour=true    # modification of non-segment list part
   128      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists1weight1}    fibtable=0    behaviour=SRH insertion    type=Spray    index=0
   129      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists12weight12}    installationVrfId=0         srhEncapsulation=false      sprayBehaviour=true    # modification - adding one new segment list (+preserving one existing segment key)
   130      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists12weight12}    fibtable=0    behaviour=SRH insertion    type=Spray    index=0
   131      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists23weight23}    installationVrfId=0         srhEncapsulation=false      sprayBehaviour=true    # modification - mixing addition of mew segment list with removal of existing segment list (+preserving one existing segment key)
   132      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists23weight23}    fibtable=0    behaviour=SRH insertion    type=Spray    index=0
   133      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists3weight3}    installationVrfId=0         srhEncapsulation=false      sprayBehaviour=true    # modification - removing of existing segment list (+preserving one existing segment key)
   134      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists3weight3}    fibtable=0    behaviour=SRH insertion    type=Spray    index=0
   135      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists3weight4}    installationVrfId=0         srhEncapsulation=false      sprayBehaviour=true    # modification - modify weight of existing segment list
   136      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists3weight4}    fibtable=0    behaviour=SRH insertion    type=Spray    index=0
   137      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists4weight4}    installationVrfId=0         srhEncapsulation=false      sprayBehaviour=true    # modification - modify segments of existing segment list
   138      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    segmentlists=${segmentLists4weight4}    fibtable=0    behaviour=SRH insertion    type=Spray    index=0
   139      Delete SRv6 Policy                 node=agent_vpp_1    bsid=a::e
   140      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Nonexistence    node=agent_vpp_1    bsid=a::e
   141  
   142  Check Steering CRUD
   143      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e       installationVrfId=0         srhEncapsulation=true    sprayBehaviour=true    segmentlists=${segmentLists1weight1}
   144      Put SRv6 L3 Steering               node=agent_vpp_1    name=toE        bsid=a::e          installationVrfId=0               prefixAddress=e::/64
   145      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering Presence      node=agent_vpp_1    bsid=a::e    prefixAddress=e::/64
   146      Put SRv6 L3 Steering               node=agent_vpp_1    name=toE        bsid=a::e          installationVrfId=0               prefixAddress=d::/64   # modification
   147      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering Presence      node=agent_vpp_1    bsid=a::e    prefixAddress=d::/64
   148      Delete SRv6 Steering               node=agent_vpp_1    name=toE
   149      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering NonExistence  node=agent_vpp_1    bsid=a::e    prefixAddress=d::/64
   150      Delete SRv6 Policy                 node=agent_vpp_1    bsid=a::e       #cleanup
   151  
   152  #TODO Steering can reference policy also by index -> add test (currently NOT WORKING on VPP side!)
   153  
   154  Check Steering Creation By Using Reversed-Ordered Steering And Policy Setting (Delayed Configuration)
   155      Put SRv6 L3 Steering                  node=agent_vpp_1    name=toE        bsid=a::e          installationVrfId=0               prefixAddress=e::/64
   156      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e       installationVrfId=0         srhEncapsulation=true    sprayBehaviour=true    segmentlists=${segmentLists1weight1}
   157      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering Presence      node=agent_vpp_1    bsid=a::e    prefixAddress=e::/64
   158      Delete SRv6 Steering               node=agent_vpp_1    name=toE        #cleanup
   159      Delete SRv6 Policy                 node=agent_vpp_1    bsid=a::e       #cleanup
   160  
   161  Check Steering Delete By Removal of Policy
   162      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e       installationVrfId=0         srhEncapsulation=true    sprayBehaviour=true    segmentlists=${segmentLists1weight1}
   163      Put SRv6 L3 Steering                  node=agent_vpp_1    name=toE        bsid=a::e          installationVrfId=0               prefixAddress=e::/64
   164      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering Presence      node=agent_vpp_1    bsid=a::e    prefixAddress=e::/64
   165      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    fibtable=0    behaviour=Encapsulation    type=Spray    index=0    segmentlists=${segmentLists1weight1}
   166      Delete SRv6 Policy                 node=agent_vpp_1    bsid=a::e
   167      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Nonexistence    node=agent_vpp_1    bsid=a::e
   168      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering NonExistence  node=agent_vpp_1    bsid=a::e    prefixAddress=e::/64
   169      Delete SRv6 Steering               node=agent_vpp_1    name=toE        #cleanup
   170  
   171  Check Update Of Policy Should Not Trigger Cascade Delete Of Steering
   172      Put SRv6 L3 Steering                  node=agent_vpp_1    name=toE        bsid=a::e          installationVrfId=0               prefixAddress=e::/64
   173      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e       installationVrfId=0         srhEncapsulation=true    sprayBehaviour=true    segmentlists=${segmentLists1weight1}
   174      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering Presence      node=agent_vpp_1    bsid=a::e    prefixAddress=e::/64
   175      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    fibtable=0    behaviour=Encapsulation    type=Spray    index=0    segmentlists=${segmentLists1weight1}
   176      Put SRv6 Policy                    node=agent_vpp_1    bsid=a::e       installationVrfId=0         srhEncapsulation=false    sprayBehaviour=true    segmentlists=${segmentLists1weight1}    #modification of non-segment attribute
   177      Sleep    5s    # waiting constant time is bad practice, but how to otherwise check that nothing has changed?
   178      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering Presence      node=agent_vpp_1    bsid=a::e    prefixAddress=e::/64
   179      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e    fibtable=0    behaviour=SRH insertion    type=Spray    index=0    segmentlists=${segmentLists1weight1}
   180      Delete SRv6 Steering               node=agent_vpp_1    name=toE        #cleanup
   181      Delete SRv6 Policy                 node=agent_vpp_1    bsid=a::e       #cleanup
   182  
   183  Check Resynchronization for clean VPP start
   184      Put Local SID With End.DX6 function    node=agent_vpp_1    sidAddress=a::    installationVrfId=0    outinterface=vpp1_afpacket1    nexthop=a::1
   185      Put SRv6 Policy                        node=agent_vpp_1    bsid=a::e         installationVrfId=0    srhEncapsulation=true    sprayBehaviour=true            segmentlists=${segmentLists1weight1}
   186      Put SRv6 L3 Steering                   node=agent_vpp_1    name=toE          bsid=a::e     installationVrfId=0               prefixAddress=e::/64
   187      Remove All VPP Nodes
   188      Sleep                                       3s
   189      Add Agent VPP Node                          agent_vpp_1
   190      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check Local SID Presence          node=agent_vpp_1    endFunctionType=DX6    sidAddress=a::    interface=host-vpp1_veth2    nexthop=a::1
   191      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Policy Presence        node=agent_vpp_1    bsid=a::e              fibtable=0                   behaviour=Encapsulation    type=Spray    index=0    segmentlists=${segmentLists1weight1}
   192      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Check SRv6 Steering Presence      node=agent_vpp_1    bsid=a::e              prefixAddress=e::/64
   193      Delete SRv6 Steering                   node=agent_vpp_1    name=toE        #cleanup
   194      Delete SRv6 Policy                     node=agent_vpp_1    bsid=a::e       #cleanup
   195      Delete Local SID                       node=agent_vpp_1    sidAddress=a::
   196  
   197  *** Keywords ***
   198  TestSetup
   199      Make Datastore Snapshots    ${TEST_NAME}_test_setup
   200  
   201  TestTeardown
   202      Make Datastore Snapshots    ${TEST_NAME}_test_teardown