comm_match_action_test - bstoll/featureprofiles GitHub Wiki
Configure bgp policy to add communities to routes by matching on the following criteria.
- RT-7.8.1 Validate test environment
 - RT-7.8.2 Validate policy to set standard community for various policies using OC release 3.x
 
- 
Testbed configuration - Setup eBGP sessions and prefixes.
- Generate config for 2 DUT and ATE ports where:
- DUT port 1 to ATE port 1.
 - DUT port 2 to ATE port 2.
 
 - Configure ATE port 1 with an external type BGP session to DUT port 1.
- Advertise ipv4 and ipv6 prefixes to DUT port 1 using the following communities:
- prefix-set-1 with 2 ipv6 and 2 ipv4 routes without communities.
 - prefix-set-2 with 2 ipv6 and 2 ipv4 routes with communities 
[5:5, 6:6 ]. 
 
 - Advertise ipv4 and ipv6 prefixes to DUT port 1 using the following communities:
 
 - Generate config for 2 DUT and ATE ports where:
 - 
RT-7.8.1 - Validate prefixes are propagated by DUT
- For IPv4 and IPv6 prefixes:
- Observe received prefixes at ATE port-2.
 
 - Send traffic from ATE port-2 to all prefix-sets-1,2.
- Verify traffic is received on ATE port 1 for all prefixes.
 - Stop traffic
 
 
 - For IPv4 and IPv6 prefixes:
 - 
RT-7.8.2 - Create policy to set standard community for all routes using OC release 3.x
- 
Configure the following community sets on the DUT. (prefix:
/routing-policy/defined-sets/bgp-defined-sets/)- Create a 
community-sets/community-setnamed 'match_std_comms' with members as follows:- community-member = [ "5:5" ]
 
 - Create a 
community-sets/community-setnamed 'add_std_comms' with members as follows:- community-member = [ "10:10", "20:20", "30:30" ]
 
 
 - Create a 
 - 
Create
/routing-policy/policy-definitions/policy-definition/policy-definition[name='add_std_comms']/with the followingstatements/- statement[name='add_std_comms']/
- actions/bgp-actions/set-community/reference/config/community-set-refs = /routing-policy/defined-sets/bgp-defined-sets/community-sets/community-set[name='add_std_comms']
 - actions/bgp-actions/set-community/config/options = ADD
 - actions/bgp-actions/set-community/config/method = REFERENCE
 - actions/config/policy-result = NEXT_STATEMENT
 
 - statement[name='accept_all_routes']/
- actions/config/policy-result = ACCEPT_ROUTE
 
 
 - statement[name='add_std_comms']/
 - 
Create a
/routing-policy/policy-definitions/policy-definition/policy-definition[name='match_and_add_comms'/with the followingstatements/- statement[name='match_and_add_std_comms']/
- conditions/bgp-conditions/match-community-set/config/community-set = 'match_std_comms'
 - conditions/bgp-conditions/match-community-set/config/match-set-options = ANY
 - actions/bgp-actions/set-community/reference/config/community-set-refs = 'add_std_comms'
 - actions/bgp-actions/set-community/config/options = ADD
 - actions/bgp-actions/set-community/config/method = REFERENCE
 - actions/config/policy-result = NEXT_STATEMENT
 
 - statement[name='accept_all_routes']/
- actions/config/policy-result = ACCEPT_ROUTE
 
 
 - statement[name='match_and_add_std_comms']/
 - 
For each policy-definition created, run a subtest (RT-7.8.2.x-neighbor-<policy_name_here>) to
- Use gnmi Set REPLACE option for:
- 
/routing-policy/policy-definitionsto configure the policy - Use 
/network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/config/import-policyto apply the policy on the DUT bgp neighbor to the ATE port 1. 
 - 
 - Verify routes are received on ATE port 1 for all prefixes (since all routes are accepted by policies).
 - Verify expected communities are present in ATE.
 - Verify expected communities are present in DUT state.
- Do not fail test if this path is not supported, only log results
 /network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state/community-index/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state/community-index
 
 - Use gnmi Set REPLACE option for:
 - 
For each policy-definition created, run a sub-test (RT-7.8.2.x-peer-group-<policy_name_here>) to
- 
Use gnmi Set REPLACE option for:
- 
/routing-policy/policy-definitionsto configure the policy - Use 
/network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/afi-safis/afi-safi/apply-policy/config/import-policyto apply the policy on the DUT bgp neighbor to the ATE port 1. 
 - 
 - 
Verify expected communities are present in ATE.
 - 
Verify expected communities are present in DUT state.
- Do not fail test if this path is not supported, only log results
 /network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state/community-index/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state/community-index
 - 
Expected result - communities
add_std_comms match_and_add_std_comms prefix-set-1 [ 10:10, 20:20, 30:30 ] none prefix-set-2 [ 10:10, 20:20, 30:30, 5:5, 6:6 ] [ 10:10, 20:20, 30:30, 5:5, 6:6 ]  
 - 
 
 - 
 
- /routing-policy/defined-sets/bgp-defined-sets/community-sets/community-set/config/community-set-name
 - /routing-policy/defined-sets/bgp-defined-sets/community-sets/community-set/config/community-member
 
- /routing-policy/policy-definitions/policy-definition/config/name
 - /routing-policy/policy-definitions/policy-definition/statements/statement/config/name
 - /routing-policy/policy-definitions/policy-definition/statements/statement/actions/bgp-actions/set-community/reference/config/community-set-refs
 
- /routing-policy/policy-definitions/policy-definition/statements/statement/conditions/bgp-conditions/config/community-set
 - /routing-policy/policy-definitions/policy-definition/statements/statement/conditions/bgp-conditions/match-community-set/config/match-set-options
 
- /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/config/import-policy
 - /network-instances/network-instance/protocols/protocol/bgp/neighbors/neighbor/afi-safis/afi-safi/apply-policy/config/export-policy
 - /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy/config/import-policy
 - /network-instances/network-instance/protocols/protocol/bgp/peer-groups/peer-group/apply-policy/config/export-policy
 
- /network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv4-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state/community-index
 - /network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/ipv6-unicast/neighbors/neighbor/adj-rib-in-post/routes/route/state/community-index
 
rpcs:
  gnmi:
    gNMI.Get:
    gNMI.Set:
    gNMI.Subscribe:vRX - Virtual Router Device