Skip to content

Adding udp-v6 encap#1496

Closed
danielbarney wants to merge 2 commits into
openconfig:masterfrom
danielbarney:udp-v6
Closed

Adding udp-v6 encap#1496
danielbarney wants to merge 2 commits into
openconfig:masterfrom
danielbarney:udp-v6

Conversation

@danielbarney

Copy link
Copy Markdown
module: openconfig-network-instance-static
 
   grouping ni-static-structural
     +-- static
        +-- next-hop-groups
        |  +-- next-hop-group* [name]
        |     +-- name?        -> ../config/name
        |     +-- config
        |     |  +-- name?   string
        |     +--ro state
        |     |  +--ro name?   string
        |     +-- next-hops
        |        +-- next-hop* [index]
        |           +-- index?    -> ../config/index
        |           +-- config
        |           |  +-- index?   -> ../../../../../../next-hops/next-hop/index
        |           +--ro state
        |              +--ro index?   -> ../../../../../../next-hops/next-hop/index
        +-- next-hops
           +-- next-hop* [index]
              +-- index?           -> ../config/index
              +-- config
              |  +-- index?          string
              |  +-- next-hop?       union
              |  +-- recurse?        boolean
              |  +-- metric?         uint32
              |  +-- preference?     uint32
              |  +-- wecmp-weight?   union
              +--ro state
              |  +--ro index?          string
              |  +--ro next-hop?       union
              |  +--ro recurse?        boolean
              |  +--ro metric?         uint32
              |  +--ro preference?     uint32
              |  +--ro wecmp-weight?   union
              +-- encap-headers
                 +-- encap-header* [index]
                    +-- index?    -> ../config/index
                    +-- config
                    |  +-- index?   uint8
                    |  +-- type?    oc-aftt:encapsulation-header-type
                    +--ro state
                    |  +--ro index?   uint8
                    |  +--ro type?    oc-aftt:encapsulation-header-type
                    +-- udp-v4
                    |  +-- config
                    |  |  +-- src-ip?         oc-inet:ipv4-address
                    |  |  +-- dst-ip?         oc-inet:ipv4-address
                    |  |  +-- dscp?           oc-inet:dscp
                    |  |  +-- src-udp-port?   oc-inet:port-number
                    |  |  +-- dst-udp-port?   oc-inet:port-number
                    |  |  +-- ip-ttl?         uint8
                    |  +--ro state
                    |     +--ro src-ip?         oc-inet:ipv4-address
                    |     +--ro dst-ip?         oc-inet:ipv4-address
                    |     +--ro dscp?           oc-inet:dscp
                    |     +--ro src-udp-port?   oc-inet:port-number
                    |     +--ro dst-udp-port?   oc-inet:port-number
                    |     +--ro ip-ttl?         uint8
+                   +-- udp-v6
+                   |  +-- config
+                   |  |  +-- src-ip?         oc-inet:ipv6-address
+                   |  |  +-- dst-ip?         oc-inet:ipv6-address
+                   |  |  +-- dscp?           oc-inet:dscp
+                   |  |  +-- src-udp-port?   oc-inet:port-number
+                   |  |  +-- dst-udp-port?   oc-inet:port-number
+                   |  |  +-- ip-ttl?         uint8
+                   |  +--ro state
+                   |     +--ro src-ip?         oc-inet:ipv6-address
+                   |     +--ro dst-ip?         oc-inet:ipv6-address
+                   |     +--ro dscp?           oc-inet:dscp
+                   |     +--ro src-udp-port?   oc-inet:port-number
+                   |     +--ro dst-udp-port?   oc-inet:port-number
+                   |     +--ro ip-ttl?         uint8
                    +-- gre
                    |  +-- config
                    |  |  +-- src-ip?   oc-inet:ip-address
                    |  |  +-- dst-ip?   oc-inet:ip-address
                    |  |  +-- ttl?      uint8
                    |  +--ro state
                    |     +--ro src-ip?   oc-inet:ip-address
                    |     +--ro dst-ip?   oc-inet:ip-address
                    |     +--ro ttl?      uint8
                    +-- mpls
                       +-- config
                       |  +-- traffic-class?   oc-mplst:mpls-tc
                       |  +-- label?           oc-mplst:mpls-label
                       +--ro state
                          +--ro traffic-class?   oc-mplst:mpls-tc
                          +--ro label?           oc-mplst:mpls-label
   grouping next-hop-groups-top
     +-- next-hop-groups
        +-- next-hop-group* [name]
           +-- name?        -> ../config/name
           +-- config
           |  +-- name?   string
           +--ro state
           |  +--ro name?   string
           +-- next-hops
              +-- next-hop* [index]
                 +-- index?    -> ../config/index
                 +-- config
                 |  +-- index?   -> ../../../../../../next-hops/next-hop/index
                 +--ro state
                    +--ro index?   -> ../../../../../../next-hops/next-hop/index
   grouping static-nhg-top
     +-- name?   string
   grouping static-nhg-next-hop
     +-- index?   -> ../../../../../../next-hops/next-hop/index
   grouping static-next-hops-top
     +-- next-hops
        +-- next-hop* [index]
           +-- index?           -> ../config/index
           +-- config
           |  +-- index?          string
           |  +-- next-hop?       union
           |  +-- recurse?        boolean
           |  +-- metric?         uint32
           |  +-- preference?     uint32
           |  +-- wecmp-weight?   union
           +--ro state
           |  +--ro index?          string
           |  +--ro next-hop?       union
           |  +--ro recurse?        boolean
           |  +--ro metric?         uint32
           |  +--ro preference?     uint32
           |  +--ro wecmp-weight?   union
           +-- encap-headers
              +-- encap-header* [index]
                 +-- index?    -> ../config/index
                 +-- config
                 |  +-- index?   uint8
                 |  +-- type?    oc-aftt:encapsulation-header-type
                 +--ro state
                 |  +--ro index?   uint8
                 |  +--ro type?    oc-aftt:encapsulation-header-type
                 +-- udp-v4
                 |  +-- config
                 |  |  +-- src-ip?         oc-inet:ipv4-address
                 |  |  +-- dst-ip?         oc-inet:ipv4-address
                 |  |  +-- dscp?           oc-inet:dscp
                 |  |  +-- src-udp-port?   oc-inet:port-number
                 |  |  +-- dst-udp-port?   oc-inet:port-number
                 |  |  +-- ip-ttl?         uint8
                 |  +--ro state
                 |     +--ro src-ip?         oc-inet:ipv4-address
                 |     +--ro dst-ip?         oc-inet:ipv4-address
                 |     +--ro dscp?           oc-inet:dscp
                 |     +--ro src-udp-port?   oc-inet:port-number
                 |     +--ro dst-udp-port?   oc-inet:port-number
                 |     +--ro ip-ttl?         uint8
+                +-- udp-v6
+                |  +-- config
+                |  |  +-- src-ip?         oc-inet:ipv6-address
+                |  |  +-- dst-ip?         oc-inet:ipv6-address
+                |  |  +-- dscp?           oc-inet:dscp
+                |  |  +-- src-udp-port?   oc-inet:port-number
+                |  |  +-- dst-udp-port?   oc-inet:port-number
+                |  |  +-- ip-ttl?         uint8
+                |  +--ro state
+                |     +--ro src-ip?         oc-inet:ipv6-address
+                |     +--ro dst-ip?         oc-inet:ipv6-address
+                |     +--ro dscp?           oc-inet:dscp
+                |     +--ro src-udp-port?   oc-inet:port-number
+                |     +--ro dst-udp-port?   oc-inet:port-number
+                |     +--ro ip-ttl?         uint8
                 +-- gre
                 |  +-- config
                 |  |  +-- src-ip?   oc-inet:ip-address
                 |  |  +-- dst-ip?   oc-inet:ip-address
                 |  |  +-- ttl?      uint8
                 |  +--ro state
                 |     +--ro src-ip?   oc-inet:ip-address
                 |     +--ro dst-ip?   oc-inet:ip-address
                 |     +--ro ttl?      uint8
                 +-- mpls
                    +-- config
                    |  +-- traffic-class?   oc-mplst:mpls-tc
                    |  +-- label?           oc-mplst:mpls-label
                    +--ro state
                       +--ro traffic-class?   oc-mplst:mpls-tc
                       +--ro label?           oc-mplst:mpls-label
   grouping static-encap-headers
     +-- encap-headers
        +-- encap-header* [index]
           +-- index?    -> ../config/index
           +-- config
           |  +-- index?   uint8
           |  +-- type?    oc-aftt:encapsulation-header-type
           +--ro state
           |  +--ro index?   uint8
           |  +--ro type?    oc-aftt:encapsulation-header-type
           +-- udp-v4
           |  +-- config
           |  |  +-- src-ip?         oc-inet:ipv4-address
           |  |  +-- dst-ip?         oc-inet:ipv4-address
           |  |  +-- dscp?           oc-inet:dscp
           |  |  +-- src-udp-port?   oc-inet:port-number
           |  |  +-- dst-udp-port?   oc-inet:port-number
           |  |  +-- ip-ttl?         uint8
           |  +--ro state
           |     +--ro src-ip?         oc-inet:ipv4-address
           |     +--ro dst-ip?         oc-inet:ipv4-address
           |     +--ro dscp?           oc-inet:dscp
           |     +--ro src-udp-port?   oc-inet:port-number
           |     +--ro dst-udp-port?   oc-inet:port-number
           |     +--ro ip-ttl?         uint8
+          +-- udp-v6
+          |  +-- config
+          |  |  +-- src-ip?         oc-inet:ipv6-address
+          |  |  +-- dst-ip?         oc-inet:ipv6-address
+          |  |  +-- dscp?           oc-inet:dscp
+          |  |  +-- src-udp-port?   oc-inet:port-number
+          |  |  +-- dst-udp-port?   oc-inet:port-number
+          |  |  +-- ip-ttl?         uint8
+          |  +--ro state
+          |     +--ro src-ip?         oc-inet:ipv6-address
+          |     +--ro dst-ip?         oc-inet:ipv6-address
+          |     +--ro dscp?           oc-inet:dscp
+          |     +--ro src-udp-port?   oc-inet:port-number
+          |     +--ro dst-udp-port?   oc-inet:port-number
+          |     +--ro ip-ttl?         uint8
           +-- gre
           |  +-- config
           |  |  +-- src-ip?   oc-inet:ip-address
           |  |  +-- dst-ip?   oc-inet:ip-address
           |  |  +-- ttl?      uint8
           |  +--ro state
           |     +--ro src-ip?   oc-inet:ip-address
           |     +--ro dst-ip?   oc-inet:ip-address
           |     +--ro ttl?      uint8
           +-- mpls
              +-- config
              |  +-- traffic-class?   oc-mplst:mpls-tc
              |  +-- label?           oc-mplst:mpls-label
              +--ro state
                 +--ro traffic-class?   oc-mplst:mpls-tc
                 +--ro label?           oc-mplst:mpls-label

```
  grouping static-encap-headers
    +-- encap-headers
       +-- encap-header* [index]
          +-- index?    -> ../config/index
          +-- config
          |  +-- index?   uint8
          |  +-- type?    oc-aftt:encapsulation-header-type
          +--ro state
          |  +--ro index?   uint8
          |  +--ro type?    oc-aftt:encapsulation-header-type
          +-- udp-v4
          |  +-- config
          |  |  +-- src-ip?         oc-inet:ipv4-address
          |  |  +-- dst-ip?         oc-inet:ipv4-address
          |  |  +-- dscp?           oc-inet:dscp
          |  |  +-- src-udp-port?   oc-inet:port-number
          |  |  +-- dst-udp-port?   oc-inet:port-number
          |  |  +-- ip-ttl?         uint8
          |  +--ro state
          |     +--ro src-ip?         oc-inet:ipv4-address
          |     +--ro dst-ip?         oc-inet:ipv4-address
          |     +--ro dscp?           oc-inet:dscp
          |     +--ro src-udp-port?   oc-inet:port-number
          |     +--ro dst-udp-port?   oc-inet:port-number
          |     +--ro ip-ttl?         uint8
          +-- udp-v6
          |  +-- config
          |  |  +-- src-ip?         oc-inet:ipv6-address
          |  |  +-- dst-ip?         oc-inet:ipv6-address
          |  |  +-- dscp?           oc-inet:dscp
          |  |  +-- src-udp-port?   oc-inet:port-number
          |  |  +-- dst-udp-port?   oc-inet:port-number
          |  |  +-- ip-ttl?         uint8
          |  +--ro state
          |     +--ro src-ip?         oc-inet:ipv6-address
          |     +--ro dst-ip?         oc-inet:ipv6-address
          |     +--ro dscp?           oc-inet:dscp
          |     +--ro src-udp-port?   oc-inet:port-number
          |     +--ro dst-udp-port?   oc-inet:port-number
          |     +--ro ip-ttl?         uint8
          +-- gre
          |  +-- config
          |  |  +-- src-ip?   oc-inet:ip-address
          |  |  +-- dst-ip?   oc-inet:ip-address
          |  |  +-- ttl?      uint8
          |  +--ro state
          |     +--ro src-ip?   oc-inet:ip-address
          |     +--ro dst-ip?   oc-inet:ip-address
          |     +--ro ttl?      uint8
          +-- mpls
             +-- config
             |  +-- traffic-class?   oc-mplst:mpls-tc
             |  +-- label?           oc-mplst:mpls-label
             +--ro state
                +--ro traffic-class?   oc-mplst:mpls-tc
                +--ro label?           oc-mplst:mpls-label
```

Diffs

```
--- scratch/original_tree.txt   2026-05-18 17:16:44.000000000 +0000
+++ scratch/modified_tree.txt   2026-05-18 17:16:56.000000000 +0000
@@ -57,6 +57,21 @@
                    |     +--ro src-udp-port?   oc-inet:port-number
                    |     +--ro dst-udp-port?   oc-inet:port-number
                    |     +--ro ip-ttl?         uint8
+                   +-- udp-v6
+                   |  +-- config
+                   |  |  +-- src-ip?         oc-inet:ipv6-address
+                   |  |  +-- dst-ip?         oc-inet:ipv6-address
+                   |  |  +-- dscp?           oc-inet:dscp
+                   |  |  +-- src-udp-port?   oc-inet:port-number
+                   |  |  +-- dst-udp-port?   oc-inet:port-number
+                   |  |  +-- ip-ttl?         uint8
+                   |  +--ro state
+                   |     +--ro src-ip?         oc-inet:ipv6-address
+                   |     +--ro dst-ip?         oc-inet:ipv6-address
+                   |     +--ro dscp?           oc-inet:dscp
+                   |     +--ro src-udp-port?   oc-inet:port-number
+                   |     +--ro dst-udp-port?   oc-inet:port-number
+                   |     +--ro ip-ttl?         uint8
                    +-- gre
                    |  +-- config
                    |  |  +-- src-ip?   oc-inet:ip-address
@@ -134,6 +149,21 @@
                 |     +--ro src-udp-port?   oc-inet:port-number
                 |     +--ro dst-udp-port?   oc-inet:port-number
                 |     +--ro ip-ttl?         uint8
+                +-- udp-v6
+                |  +-- config
+                |  |  +-- src-ip?         oc-inet:ipv6-address
+                |  |  +-- dst-ip?         oc-inet:ipv6-address
+                |  |  +-- dscp?           oc-inet:dscp
+                |  |  +-- src-udp-port?   oc-inet:port-number
+                |  |  +-- dst-udp-port?   oc-inet:port-number
+                |  |  +-- ip-ttl?         uint8
+                |  +--ro state
+                |     +--ro src-ip?         oc-inet:ipv6-address
+                |     +--ro dst-ip?         oc-inet:ipv6-address
+                |     +--ro dscp?           oc-inet:dscp
+                |     +--ro src-udp-port?   oc-inet:port-number
+                |     +--ro dst-udp-port?   oc-inet:port-number
+                |     +--ro ip-ttl?         uint8
                 +-- gre
                 |  +-- config
                 |  |  +-- src-ip?   oc-inet:ip-address
@@ -174,6 +204,21 @@
           |     +--ro dscp?           oc-inet:dscp
           |     +--ro src-udp-port?   oc-inet:port-number
           |     +--ro dst-udp-port?   oc-inet:port-number
+          |     +--ro ip-ttl?         uint8
+          +-- udp-v6
+          |  +-- config
+          |  |  +-- src-ip?         oc-inet:ipv6-address
+          |  |  +-- dst-ip?         oc-inet:ipv6-address
+          |  |  +-- dscp?           oc-inet:dscp
+          |  |  +-- src-udp-port?   oc-inet:port-number
+          |  |  +-- dst-udp-port?   oc-inet:port-number
+          |  |  +-- ip-ttl?         uint8
+          |  +--ro state
+          |     +--ro src-ip?         oc-inet:ipv6-address
+          |     +--ro dst-ip?         oc-inet:ipv6-address
+          |     +--ro dscp?           oc-inet:dscp
+          |     +--ro src-udp-port?   oc-inet:port-number
+          |     +--ro dst-udp-port?   oc-inet:port-number
           |     +--ro ip-ttl?         uint8
           +-- gre
           |  +-- config
 ```

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new udp-v6 container to the openconfig-network-instance-static.yang model, enabling support for UDP in IPv6 encapsulation within static network instances. The addition includes both configuration and state containers that utilize the common UDP-v6 encapsulation grouping. I have no feedback to provide as there were no review comments.

@dplore

dplore commented May 18, 2026

Copy link
Copy Markdown
Member

/gcbrun

@OpenConfigBot

Copy link
Copy Markdown

No major YANG version changes in commit 5c6bd2b

@dplore

dplore commented May 18, 2026

Copy link
Copy Markdown
Member

@danielbarney note, you can refer to #1234 for implementation references and update your description for this pull request.

@dplore

dplore commented May 18, 2026

Copy link
Copy Markdown
Member

#1492 looks like it's adding the same?

@danielbarney

Copy link
Copy Markdown
Author

Yes, same. Closing this as duplciate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants