Skip to content

Commit

Permalink
Merge branch 'main' into remove-deviations
Browse files Browse the repository at this point in the history
  • Loading branch information
rszarecki authored Jan 22, 2025
2 parents cd79063 + 3947e68 commit 5764f2b
Show file tree
Hide file tree
Showing 9 changed files with 585 additions and 215 deletions.
80 changes: 2 additions & 78 deletions feature/gribi/otg_tests/mpls_in_udp/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
# TE-18.1 gRIBI MPLS in UDP Encapsulation and Decapsulation
# TE-18.1 gRIBI MPLS in UDP Encapsulation

Create AFT entries using gRIBI to match on next hop group in a
network-instance and encapsulate the matching packets in MPLS in UDP.

Create a policy routing configuration using gNMI to decapsulate MPLS
in UDP packets which are sent to a loopback address and apply to
the DUT.
network-instance and encapsulate the matching packets in MPLS in UDP with outer header as IPv6 Header.

The MPLS in UDP encapsulation is expected to follow
[rfc7510](https://datatracker.ietf.org/doc/html/rfc7510#section-3),
Expand Down Expand Up @@ -186,72 +182,6 @@ encapsulate in GRE.
* Generate traffic from ATE port 1 to ATE port 2
* Validate ATE port 2 receives GRE traffic with correct inner and outer IPs

### TE-18.1.3 - MPLS in GRE decapsulation set by gNMI

Canonical OpenConfig for policy forwarding, matching IP prefix with action
decapsulate in GRE. # TODO: Move to dedicated README

```yaml
openconfig-network-instance:
network-instances:
- network-instance: "DEFAULT"
afts:
policy-forwarding:
policies:
policy: "default decap rule"
config:
policy-id: "default decap rule"
type: PBR_POLICY
rules:
rule: 1
config:
sequence-id: 1
ipv6:
config:
destination-address: "decap_loopback_ipv6"
action:
decapsulate-mpls-in-gre: TRUE # TODO: add to OC model/PR in progress
```
* Push the gNMI the policy forwarding configuration
* Push the configuration to DUT using gnmi.Set with REPLACE option
* Configure ATE port 1 with traffic flow which matches the decap loopback IP address
* Generate traffic from ATE port 1
* Validate ATE port 2 receives packets with correct VLAN and the inner inner_decap_ipv6
### TE-18.1.4 - MPLS in UDP decapsulation set by gNMI
Canonical OpenConfig for policy forwarding, matching IP prefix with action
decapsulate MPLS in UDP. # TODO: Move to dedicated README
```yaml
openconfig-network-instance:
network-instances:
- network-instance: "DEFAULT"
afts:
policy-forwarding:
policies:
policy: "default decap rule"
config:
policy-id: "default decap rule"
type: PBR_POLICY
rules:
rule: 1
config:
sequence-id: 1
ipv6:
config:
destination-address: "decap_loopback_ipv6"
action:
decapsulate-mpls-in-udp: TRUE
```
* Push the gNMI the policy forwarding configuration
* Push the configuration to DUT using gnmi.Set with REPLACE option
* Configure ATE port 1 with traffic flow
* Flow should have a packet encap format : outer_decap_udp_ipv6 <- MPLS label <- inner_decap_ipv6
* Generate traffic from ATE port 1
* Validate ATE port 2 receives the innermost IPv4 traffic with correct VLAN and inner_decap_ipv6

## OpenConfig Path and RPC Coverage

Expand Down Expand Up @@ -294,12 +224,6 @@ paths:
#/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encap-headers/encap-header/gre/config/ip-ttl:
#/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/encap-headers/encap-header/gre/config/source-ip:

# Paths added for TE-18.1.3 - MPLS in GRE decapsulation set by gNMI
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/config/destination-address:
# TODO: /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/decapsulate-mpls-in-gre:

# Paths added for TE-18.1.4 - MPLS in UDP decapsulation set by gNMI
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/decapsulate-mpls-in-udp:

rpcs:
gnmi:
Expand Down
158 changes: 158 additions & 0 deletions feature/policy_forwarding/otg_tests/mpls_gre_udp_decap_test/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# PF-1.7 Decapsulate MPLS in GRE and UDP

Create a policy-forwarding configuration using gNMI to decapsulate MPLS
in GRE and UDP packets which are sent to a IP from a decap pool or loopback address and apply to
the DUT.

## Topology

* [`featureprofiles/topologies/atedut_2.testbed`](https://github.com/openconfig/featureprofiles/blob/main/topologies/atedut_2.testbed)

## Test setup

TODO: Complete test environment setup steps

inner_ipv6_dst_A = "2001:aa:bb::1/128"
inner_ipv6_dst_B = "2001:aa:bb::2/128"
inner_ipv6_default = "::/0"

ipv4_inner_dst_A = "10.5.1.1/32"
ipv4_inner_dst_B = "10.5.1.2/32"
ipv4_inner_default = "0.0.0.0/0"

outer_ipv6_src = "2001:f:a:1::0"
outer_ipv6_dst_A = "2001:f:c:e::1"
outer_ipv6_dst_B = "2001:f:c:e::2"
outer_ipv6_dst_def = "2001:1:1:1::0"
outer_dst_udp_port = "6635"
outer_dscp = "26"
outer_ip-ttl = "64"

## Procedure

### PF-1.7.1 - MPLS in GRE decapsulation set by gNMI

Canonical OpenConfig for policy forwarding, matching IP prefix with action
decapsulate in GRE.

```json
{
"openconfig-network-instance": {
"network-instances": [
{
"afts": {
"policy-forwarding": {
"policies": [
{
"config": {
"policy-id": "default decap rule",
"type": "PBR_POLICY"
},
"policy": "default decap rule",
"rules": [
{
"config": {
"sequence-id": 1,
},
"ipv6": {
"config": {
"destination-address": "decap_ipv6"
}
},
"action": {
"decapsulate-mpls-in-gre": TRUE
}
}
]
}
]
}
}
}
]
}
}
```
* Push the gNMI the policy forwarding configuration
* Push the configuration to DUT using gnmi.Set with REPLACE option
* Configure ATE port 1 with traffic flow
* Flow should have a packet encap format : outer_decap_gre_ipv6 <- MPLS label <- inner_decap_ipv6
* Generate traffic from ATE port 1
* Validate ATE port 2 receives the innermost IPv4 traffic with correct VLAN and inner_decap_ipv6

### PF-1.7.2 - MPLS in UDP decapsulation set by gNMI

Canonical OpenConfig for policy forwarding, matching IP prefix with action
decapsulate MPLS in UDP.

```json
{
"openconfig-network-instance": {
"network-instances": [
{
"afts": {
"policy-forwarding": {
"policies": [
{
"config": {
"policy-id": "default decap rule",
"type": "PBR_POLICY"
},
"policy": "default decap rule",
"rules": [
{
"config": {
"sequence-id": 1,
},
"ipv6": {
"config": {
"destination-address": "decap_ipv6"
}
},
"action": {
"decapsulate-mpls-in-udp": TRUE
}
}
]
}
]
}
}
}
]
}
}
```
* Push the gNMI the policy forwarding configuration
* Push the configuration to DUT using gnmi.Set with REPLACE option
* Configure ATE port 1 with traffic flow
* Flow should have a packet encap format : outer_decap_udp_ipv6 <- MPLS label <- inner_decap_ipv6
* Generate traffic from ATE port 1
* Validate ATE port 2 receives the innermost IPv4 traffic with correct VLAN and inner_decap_ipv6

## OpenConfig Path and RPC Coverage

```yaml
paths:

# Paths added for PF-1.7.1 - MPLS in GRE decapsulation set by gNMI
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/ipv6/config/destination-address:
# TODO: /network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/decapsulate-mpls-in-gre:

# Paths added for PF-1.7.2 - MPLS in UDP decapsulation set by gNMI
/network-instances/network-instance/policy-forwarding/policies/policy/rules/rule/action/config/decapsulate-mpls-in-udp:


rpcs:
gnmi:
gNMI.Set:
union_replace: true
replace: true
gNMI.Subscribe:
on_change: true

```

## Required DUT platform

* FFF
2 changes: 1 addition & 1 deletion feature/qos/otg_tests/ingress_police_default/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# DP-2.4 Police traffic on input matching all packets using 1 rate, 2 color marker
# DP-2.4: Police traffic on input matching all packets using 1 rate, 2 color marker

## Summary

Expand Down
Loading

0 comments on commit 5764f2b

Please sign in to comment.