Interface OpenconfigBgpPolicyData

  • All Superinterfaces:
    org.opendaylight.yangtools.yang.binding.DataRoot

    @Generated("mdsal-binding-generator")
    public interface OpenconfigBgpPolicyData
    extends org.opendaylight.yangtools.yang.binding.DataRoot
    This module contains data definitions for BGP routing policy. It augments the base routing-policy module with BGP-specific options for conditions and actions.

    This class represents the following YANG schema fragment defined in module openconfig-bgp-policy

     module openconfig-bgp-policy {
       yang-version 1.1;
       namespace "http://openconfig.net/yang/bgp-policy";
       prefix bgp-pol;
       import ietf-inet-types {
         prefix inet;
       }
       import openconfig-routing-policy {
         prefix rpol;
       }
       import openconfig-policy-types {
         prefix pt;
       }
       import openconfig-bgp-types {
         prefix bgp-types;
       }
       import openconfig-extensions {
         prefix oc-ext;
       }
       import bgp-types {
         prefix bgp-t;
         revision-date 2020-01-20;
       }
       oc-ext:openconfig-version 1.1.0;
       revision 2015-10-09 {
       }
       revision 2015-05-15 {
       }
       typedef bgp-as-path-prepend-repeat {
         type uint8;
       }
       typedef bgp-set-community-option-type {
         type enumeration {
           enum ADD {
           }
           enum REMOVE {
           }
           enum REPLACE {
           }
         }
       }
       typedef bgp-next-hop-type {
         type union {
           type inet:ip-address;
           type enumeration {
             enum SELF {
             }
           }
         }
       }
       typedef bgp-set-med-type {
         type union {
           type uint32;
           type string {
             pattern ^[+-][0-9]+;
           }
           type enumeration {
             enum IGP {
             }
           }
         }
       }
       grouping bgp-match-conditions {
         container match-community-set {
           presence
             "The presence of this container indicates that the routes
              should match the referenced community-set";
           leaf community-set {
             type leafref {
               path /rpol:routing-policy/rpol:defined-sets/bgp-pol:bgp-defined-sets/bgp-pol:community-sets/bgp-pol:community-set/bgp-pol:community-set-name;
             }
           }
           uses rpol:match-set-options-group;
         }
         container match-ext-community-set {
           presence
             "The presence of this container indicates that the routes
              should match the referenced extended community set";
           leaf ext-community-set {
             type leafref {
               path /rpol:routing-policy/rpol:defined-sets/bgp-pol:bgp-defined-sets/bgp-pol:ext-community-sets/bgp-pol:ext-community-set/bgp-pol:ext-community-set-name;
             }
           }
           uses rpol:match-set-options-group;
         }
         container match-as-path-set {
           presence
             "The presence of this container indicates that the route
              should match the referenced as-path set";
           leaf as-path-set {
             type leafref {
               path /rpol:routing-policy/rpol:defined-sets/bgp-pol:bgp-defined-sets/bgp-pol:as-path-sets/bgp-pol:as-path-set/bgp-pol:as-path-set-name;
             }
           }
           uses rpol:match-set-options-group;
         }
       }
       grouping bgp-attribute-conditions {
         leaf med-eq {
           type uint32;
         }
         leaf origin-eq {
           type bgp-types:bgp-origin-attr-type;
         }
         leaf-list next-hop-in {
           type inet:ip-address;
         }
         leaf-list afi-safi-in {
           type identityref {
             base afi-safi-type;
           }
         }
         leaf local-pref-eq {
           type uint32;
         }
         container community-count {
           presence
             "node is present in the config data to indicate a
              community-count condition";
           uses pt:attribute-compare-operators;
         }
         container as-path-length {
           presence
             "node is present in the config data to indicate a
              as-path-length condition";
           uses pt:attribute-compare-operators;
         }
         leaf route-type {
           type enumeration {
             enum INTERNAL {
             }
             enum EXTERNAL {
             }
           }
         }
       }
       augment /rpol:routing-policy/rpol:defined-sets {
         container bgp-defined-sets {
           container community-sets {
             list community-set {
               key community-set-name;
               leaf community-set-name {
                 type string;
               }
               list communities {
                 uses bgp-t:community;
               }
             }
           }
           container ext-community-sets {
             list ext-community-set {
               key ext-community-set-name;
               leaf ext-community-set-name {
                 type string;
               }
               list ext-community-member {
                 uses bgp-t:extended-community;
               }
             }
           }
           container as-path-sets {
             list as-path-set {
               key as-path-set-name;
               leaf as-path-set-name {
                 type string;
               }
               leaf-list as-path-set-member {
                 type inet:as-number;
               }
             }
           }
         }
       }
       augment /rpol:routing-policy/rpol:policy-definitions/rpol:policy-definition/rpol:statements/rpol:statement/rpol:conditions {
         container bgp-conditions {
           uses bgp-match-conditions;
           uses bgp-attribute-conditions;
         }
       }
       augment /rpol:routing-policy/rpol:policy-definitions/rpol:policy-definition/rpol:statements/rpol:statement/rpol:actions {
         container bgp-actions {
           container set-as-path-prepend {
             presence
               "node is present in the config data to use the AS
                prepend action";
             leaf repeat-n {
               type uint8;
             }
           }
           container set-community {
             presence
               "node is present in the config data when
                set-community action is used";
             choice set-community-method {
               case inline {
                 list communities {
                   uses bgp-t:community;
                 }
               }
               case reference {
                 leaf community-set-ref {
                   type leafref {
                     path /rpol:routing-policy/rpol:defined-sets/bgp-pol:bgp-defined-sets/bgp-pol:community-sets/bgp-pol:community-set/bgp-pol:community-set-name;
                   }
                 }
               }
             }
             leaf options {
               type bgp-set-community-option-type;
             }
           }
           container set-ext-community {
             presence
               "node is present in the config data when
                set-community action is used";
             choice set-ext-community-method {
               case inline {
                 list ext-community-member {
                   uses bgp-t:extended-community;
                 }
               }
               case reference {
                 leaf ext-community-set-ref {
                   type leafref {
                     path /rpol:routing-policy/rpol:defined-sets/bgp-pol:bgp-defined-sets/bgp-pol:ext-community-sets/bgp-pol:ext-community-set/bgp-pol:ext-community-set-name;
                   }
                 }
               }
             }
             leaf options {
               type bgp-set-community-option-type;
             }
           }
           leaf set-route-origin {
             type bgp-types:bgp-origin-attr-type;
           }
           leaf set-local-pref {
             type uint32;
           }
           leaf set-next-hop {
             type bgp-next-hop-type;
           }
           leaf set-med {
             type bgp-set-med-type;
           }
         }
       }
     }