Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for vni-peer-group container #1015

Merged
merged 4 commits into from
Apr 11, 2024

Conversation

mikewiebe
Copy link
Contributor

@mikewiebe mikewiebe commented Dec 12, 2023

Change Scope

The changes introduce operational state properties only.

  • Deprecate two properties control-plane-vnis and router-mac
    • This means the properties will be supported but deprecated and removed in a future OC model release
  • Add the new container structure vni-peer-group which allows the association between cp-vni-id, egress-vni and router-mac
  • Keying on both cp-vni and egress-vni allows flexibility for both symmetric and asymmetric use cases. For symmetric VNIs both keys would be set to the same value.
  • The change is backwards compatible

Tree Structure

        |           +--rw vxlan
        |              +--rw config
        |              |  +--rw description?        string
        |              |  +--rw enabled?            boolean
        |              |  +--rw source-interface?   string
        |              +--ro state
        |              |  +--ro description?        string
        |              |  +--ro enabled?            boolean
        |              |  +--ro source-interface?   string
        |              +--ro endpoint-peers
        |              |  +--ro endpoint-peer* [peer-address]
        |              |     +--ro peer-address      -> ../state/peer-address
        |              |     +--ro state
        |              |     |  +--ro peer-address?         oc-inet:ip-address
        |              |     |  +--ro peer-state?           enumeration
        |              |     |  +--ro uptime?               oc-types:timeticks64
        |              |     |  x--ro control-plane-vnis*   oc-evpn-types:vni-id
        |              |     |  x--ro router-mac?           oc-yang:mac-address
        |              |     +--ro vni-peer-group
        |              |        +--ro vni-peer-group* [cp-vni egress-vni]
        |              |           +--ro cp-vni        -> ../state/cp-vni
        |              |           +--ro egress-vni    -> ../state/egress-vni
        |              |           +--ro state
        |              |              +--ro cp-vni?       oc-evpn-types:vni-id
        |              |              +--ro egress-vni?   oc-evpn-types:vni-id
        |              |              +--ro router-mac?   oc-yang:mac-address
        |              +--ro endpoint-vnis

With new counters included in the output

        |           +--rw vxlan
        |              +--rw config
        |              |  +--rw description?        string
        |              |  +--rw enabled?            boolean
        |              |  +--rw source-interface?   string
        |              +--ro state
        |              |  +--ro description?        string
        |              |  +--ro enabled?            boolean
        |              |  +--ro source-interface?   string
        |              +--ro endpoint-peers
        |              |  +--ro endpoint-peer* [peer-address]
        |              |     +--ro peer-address       -> ../state/peer-address
        |              |     +--ro state
        |              |     |  +--ro peer-address?         oc-inet:ip-address
        |              |     |  +--ro peer-state?           enumeration
        |              |     |  +--ro uptime?               oc-types:timeticks64
        |              |     |  x--ro control-plane-vnis*   oc-evpn-types:vni-id
        |              |     |  x--ro router-mac?           oc-yang:mac-address
        |              |     |  +--ro counters
        |              |     |     +--ro total-encap-pkts?           oc-yang:counter64
        |              |     |     +--ro total-encap-bytes?          oc-yang:counter64
        |              |     |     +--ro bum-encap-pkts?             oc-yang:counter64
        |              |     |     +--ro total-decap-pkts?           oc-yang:counter64
        |              |     |     +--ro total-decap-bytes?          oc-yang:counter64
        |              |     |     +--ro unicast-decap-pkts?         oc-yang:counter64
        |              |     |     +--ro bum-decap-pkts?             oc-yang:counter64
        |              |     |     +--ro bum-decap-multicast-pkts?   oc-yang:counter64
        |              |     |     +--ro bum-decap-ir-pkts?          oc-yang:counter64
        |              |     |     +--ro drop-decap-pkts?            oc-yang:counter64
        |              |     |     +--ro except-decap-pkts?          oc-yang:counter64
        |              |     +--ro vni-peer-groups
        |              |        +--ro vni-peer-group* [cp-vni egress-vni]
        |              |           +--ro cp-vni        -> ../state/cp-vni
        |              |           +--ro egress-vni    -> ../state/egress-vni
        |              |           +--ro state
        |              |              +--ro cp-vni?       oc-evpn-types:vni-id
        |              |              +--ro egress-vni?   oc-evpn-types:vni-id
        |              |              +--ro router-mac?   oc-yang:mac-address
        |              +--ro endpoint-vnis

Platform Implementations

switch# show nve peers control-plane-vni peer-ip 203.1.1.1
Peer       VNI     Learn-Source Gateway-MAC     Peer-type  Egress-VNI SW-BD  State                 
---------  -----   ------------ --------------- ---------- ---------- -----  ----------------------
203.1.1.1  2000003 BGP          f40f.1b6f.f8db   FAB        3000003      3005   peer-vni-add-complete
  • Nokia: link to documentation
    • From the document: VNIs configured in static VXLAN instances are ‟symmetric”, that is, the same ingress and egress VNIs are used for VXLAN packets using that instance. Note that asymmetric VNIs are actually possible in EVPN VXLAN instances.

@mikewiebe mikewiebe requested a review from a team as a code owner December 12, 2023 16:59
@OpenConfigBot
Copy link

OpenConfigBot commented Dec 12, 2023

No major YANG version changes in commit 897de89

@dplore dplore self-assigned this Jan 16, 2024
Copy link
Member

@dplore dplore left a comment

Choose a reason for hiding this comment

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

Looks good, please update the container to be named with plural vni-peer-groups

release/models/network-instance/openconfig-evpn.yang Outdated Show resolved Hide resolved
@mikewiebe
Copy link
Contributor Author

@dplore I did a rebase and updated the name of the container as requested. There was a failure in the pyangbind step that does not seem related to my chanages.

The error states the following: Validator script failed -- infra bug?

@mikewiebe
Copy link
Contributor Author

@dplore I did a rebase but there was a failure in the pyangbind step that does not seem related to my chanages.

The error states the following: Validator script failed -- infra bug?

@dplore dplore closed this Feb 2, 2024
@dplore dplore reopened this Feb 2, 2024
@dplore
Copy link
Member

dplore commented Feb 2, 2024

@dplore I did a rebase but there was a failure in the pyangbind step that does not seem related to my chanages.

The error states the following: Validator script failed -- infra bug?

@wenovus apologies, I pinged you for the wrong PR. This is the one where pyangbind check is failing.

@wenovus
Copy link
Contributor

wenovus commented Feb 2, 2024

@dplore I did a rebase but there was a failure in the pyangbind step that does not seem related to my chanages.
The error states the following: Validator script failed -- infra bug?

@wenovus apologies, I pinged you for the wrong PR. This is the one where pyangbind check is failing.

Hi @mikewiebe this seems like it might be a one-off error (maybe the cloud VM got killed) especially since the main branch is passing for this check. Can you push an empty commit to re-trigger the CI:

 git commit --allow-empty -m "Retrigger CI" && git push

@wenovus
Copy link
Contributor

wenovus commented Feb 5, 2024

Merging into main branch for pyangbind check fix.

@mikewiebe
Copy link
Contributor Author

mikewiebe commented Feb 13, 2024

@dplore I did a rebase but there was a failure in the pyangbind step that does not seem related to my chanages.
The error states the following: Validator script failed -- infra bug?

@wenovus apologies, I pinged you for the wrong PR. This is the one where pyangbind check is failing.

Hi @mikewiebe this seems like it might be a one-off error (maybe the cloud VM got killed) especially since the main branch is passing for this check. Can you push an empty commit to re-trigger the CI:

 git commit --allow-empty -m "Retrigger CI" && git push

@wenovus, sorry, I was traveling last couple of weeks so just seeing this. I will try this. Thanks!

@mikewiebe
Copy link
Contributor Author

mikewiebe commented Feb 21, 2024

@wenovus tried a rebase and git commit --allow-empty -m "Retrigger CI" && git push but now it's failing on a different step. public-pr (disco-idea-817). There are no details about the failure except a message Needs /gcbrun from a collaborator so unsure how to proceed. Thanks!

@wenovus
Copy link
Contributor

wenovus commented Feb 21, 2024

/gcbrun

@wenovus
Copy link
Contributor

wenovus commented Feb 21, 2024

@wenovus tried a rebase and git commit --allow-empty -m "Retrigger CI" && git push but now it's failing on a different step. public-pr (disco-idea-817). There are no details about the failure except a message Needs /gcbrun from a collaborator so unsure how to proceed. Thanks!

Are you able to see the "Needs /gcbrun from a collaborator" comment in the failure summary?

We recently changed the CI to only be runnable by a maintainer, so it's little cumbersome. I'll investigate whether this can be changed.

@mikewiebe
Copy link
Contributor Author

@wenovus tried a rebase and git commit --allow-empty -m "Retrigger CI" && git push but now it's failing on a different step. public-pr (disco-idea-817). There are no details about the failure except a message Needs /gcbrun from a collaborator so unsure how to proceed. Thanks!

Are you able to see the "Needs /gcbrun from a collaborator" comment in the failure summary?

We recently changed the CI to only be runnable by a maintainer, so it's little cumbersome. I'll investigate whether this can be changed.

Ah, ok. Yes I do see the Needs /gcbrun from a collaborator comment.

@dplore
Copy link
Member

dplore commented Feb 24, 2024

/gcbrun

1 similar comment
@dplore
Copy link
Member

dplore commented Mar 12, 2024

/gcbrun

@mikewiebe mikewiebe force-pushed the evpn-vni-peergroup branch from e09bb9e to 9dc4975 Compare March 13, 2024 16:05
@dplore
Copy link
Member

dplore commented Mar 13, 2024

/gcbrun

@wenovus
Copy link
Contributor

wenovus commented Apr 3, 2024

/gcbrun

Copy link
Member

@dplore dplore left a comment

Choose a reason for hiding this comment

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

This has been reviewed in previous OC Community meetings, including the most recent April 4th 2024 OC Community meeting without objection.

@dplore dplore merged commit 4177f94 into openconfig:master Apr 11, 2024
14 checks passed
romeyod pushed a commit to romeyod/aftNextHop that referenced this pull request Sep 19, 2024
* Add support for /network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers/vni-peer-groups container
* deprecate control-plane-vnis, router-mac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants