Skip to content

Reapply "Add BGP group/neighbor level and policy support for AIGP (#1…#1484

Open
jenna-mccampbell wants to merge 3 commits into
openconfig:masterfrom
jenna-mccampbell:resubmit-aigp-1
Open

Reapply "Add BGP group/neighbor level and policy support for AIGP (#1…#1484
jenna-mccampbell wants to merge 3 commits into
openconfig:masterfrom
jenna-mccampbell:resubmit-aigp-1

Conversation

@jenna-mccampbell
Copy link
Copy Markdown
Contributor

Please note: this PR includes changes made in #1451, which was accidentally submitted too early and was subsequently reverted. Please see original pull request for earlier comments and discussion on this change

Change Scope

  • This change adds the ability to enable BGP AIGP exchange between peers at
    the group and neighbor level for IPv4 and IPv6 unicast address families.
    It also adds the ability to set an arbitrary AIGP value in a BGP policy.
  • This change is backwards compatible.

Platform Implementations

Note: Implementation A and Implementation B align well with the paths added
here. Implementation C does not allow setting an arbitrary AIGP value in
policy. AIGP value can instead be originated and adjusted via addition,
subtraction, multiplication, or division. Implementation D supports AIGP
enablement only in the base router BGP instance (not per group or
neighbor) and does not support AIGP manipulation in route policies.

Tree View

 module: openconfig-network-instance
   +--rw network-instances
      +--rw network-instance* [name]
         +--rw protocols
         |  +--rw protocol* [identifier name]
         |     +--rw bgp
         |     |  +--rw neighbors
         |     |  |  +--rw neighbor* [neighbor-address]
         |     |  |     +--rw afi-safis
         |     |  |     |  +--rw afi-safi* [afi-safi-name]
         |     |  |     |     +--rw ipv4-unicast
         |     |  |     |     |  +--rw prefix-limit
         |     |  |     |     |  +--rw prefix-limit-received
         |     |  |     |     |  +--rw config
         |     |  |     |     |  |  +--rw send-default-route?           boolean
         |     |  |     |     |  |  +--rw extended-next-hop-encoding?   boolean
+        |     |  |     |     |  |  +--rw enable-aigp?                  boolean
         |     |  |     |     |  +--ro state
         |     |  |     |     |     +--ro send-default-route?           boolean
         |     |  |     |     |     +--ro extended-next-hop-encoding?   boolean
+        |     |  |     |     |     +--ro enable-aigp?                  boolean
         |     |  |     |     +--rw ipv6-unicast
         |     |  |     |     |  +--rw prefix-limit
         |     |  |     |     |  +--rw prefix-limit-received
         |     |  |     |     |  +--rw config
         |     |  |     |     |  |  +--rw send-default-route?   boolean
+        |     |  |     |     |  |  +--rw enable-aigp?          boolean
         |     |  |     |     |  +--ro state
         |     |  |     |     |     +--ro send-default-route?   boolean
+        |     |  |     |     |     +--ro enable-aigp?          boolean
         |     |  |     |     +--rw ipv4-labeled-unicast
         |     |  +--rw peer-groups
         |     |  |  +--rw peer-group* [peer-group-name]
         |     |  |     +--rw afi-safis
         |     |  |     |  +--rw afi-safi* [afi-safi-name]
         |     |  |     |     +--rw ipv4-unicast
         |     |  |     |     |  +--rw prefix-limit
         |     |  |     |     |  +--rw prefix-limit-received
         |     |  |     |     |  +--rw config
         |     |  |     |     |  |  +--rw send-default-route?           boolean
         |     |  |     |     |  |  +--rw extended-next-hop-encoding?   boolean
+        |     |  |     |     |  |  +--rw enable-aigp?                  boolean
         |     |  |     |     |  +--ro state
         |     |  |     |     |     +--ro send-default-route?           boolean
         |     |  |     |     |     +--ro extended-next-hop-encoding?   boolean
+        |     |  |     |     |     +--ro enable-aigp?                  boolean
         |     |  |     |     +--rw ipv6-unicast
         |     |  |     |     |  +--rw prefix-limit
         |     |  |     |     +--rw ipv4-labeled-unicast
         |     |  +--ro rib
         |     |     +--ro attr-sets
         |     |     |  +--ro attr-set* [index]
         |     |     |     +--ro index                   -> ../state/index
         |     |     |     +--ro state
         |     |     |     |  +--ro index?              uint64
         |     |     |     |  +--ro origin?             oc-bgpt:bgp-origin-attr-type
         |     |     |     |  +--ro atomic-aggregate?   boolean
         |     |     |     |  +--ro next-hop?           oc-inet:ip-address
         |     |     |     |  +--ro med?                uint32
         |     |     |     |  +--ro local-pref?         uint32
         |     |     |     |  +--ro originator-id?      oc-inet:ipv4-address
         |     |     |     |  +--ro cluster-list*       oc-inet:ipv4-address
-        |     |     |     |  +--ro aigp?               uint64
+        |     |     |     |  +--ro aigp?               oc-bgpt:bgp-aigp-metric
         |     |     |     +--ro aggregator

module: openconfig-routing-policy
  +--rw routing-policy
     +--rw policy-definitions
        +--rw policy-definition* [name]
           +--rw statements
              +--rw statement* [name]
                  +--rw actions
                     +--rw oc-bgp-pol:bgp-actions
                     |  +--rw oc-bgp-pol:config
                     |  |  +--rw oc-bgp-pol:set-route-origin?   oc-bgp-types:bgp-origin-attr-type
                     |  |  +--rw oc-bgp-pol:set-local-pref?     uint64
                     |  |  +--rw oc-bgp-pol:set-next-hop?       bgp-next-hop-type
                     |  |  +--rw oc-bgp-pol:set-med?            bgp-set-med-type
                     |  |  +--rw oc-bgp-pol:set-med-action?     bgp-set-med-action
+                    |  |  +--rw oc-bgp-pol:set-aigp?           oc-bgp-types:bgp-aigp-metric
+                    |  |  +--rw oc-bgp-pol:set-aigp-action?    bgp-set-aigp-action
                     |  +--ro oc-bgp-pol:state
                     |  |  +--ro oc-bgp-pol:set-route-origin?   oc-bgp-types:bgp-origin-attr-type
                     |  |  +--ro oc-bgp-pol:set-local-pref?     uint64
                     |  |  +--ro oc-bgp-pol:set-next-hop?       bgp-next-hop-type
                     |  |  +--ro oc-bgp-pol:set-med?            bgp-set-med-type
                     |  |  +--ro oc-bgp-pol:set-med-action?     bgp-set-med-action
+                    |  |  +--rw oc-bgp-pol:set-aigp?           oc-bgp-types:bgp-aigp-metric
+                    |  |  +--rw oc-bgp-pol:set-aigp-action?    bgp-set-aigp-action

@jenna-mccampbell jenna-mccampbell requested a review from a team as a code owner April 28, 2026 18:39
Copy link
Copy Markdown
Contributor

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

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 support for the Accumulated IGP (AIGP) metric across BGP policy, configuration, and RIB models. Key changes include the definition of a 64-bit AIGP metric type, the addition of policy actions to set the AIGP value, and the inclusion of an enable flag for AIGP within neighbor and peer-group address family configurations. Review feedback suggests expanding the available policy actions to include increment and decrement operations (ADD and SUBTRACT) for better alignment with existing MED actions and generalizing documentation to accommodate these potential extensions.

Comment thread release/models/bgp/openconfig-bgp-policy.yang
Comment thread release/models/bgp/openconfig-bgp-policy.yang Outdated
@dplore
Copy link
Copy Markdown
Member

dplore commented Apr 28, 2026

/gcbrun

@dplore dplore moved this to last-call in OC Operator Review Apr 28, 2026
@dplore
Copy link
Copy Markdown
Member

dplore commented Apr 28, 2026

Last call for May 12, 2026

@OpenConfigBot
Copy link
Copy Markdown

OpenConfigBot commented Apr 28, 2026

No major YANG version changes in commit 0f5dde9

@ElodinLaarz
Copy link
Copy Markdown
Contributor

/gcbrun

@dplore
Copy link
Copy Markdown
Member

dplore commented May 13, 2026

/gcbrun

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

Projects

Status: last-call

Development

Successfully merging this pull request may close these issues.

4 participants