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

@Generated("mdsal-binding-generator") public interface OpenconfigBgpMultiprotocolData extends org.opendaylight.yangtools.yang.binding.DataRoot
This module is part of a YANG model for BGP protocol configuration, focusing on configuration of multiprotocol BGP, in particular various relevant address families (AFI) and sub-address families (SAFI). Identities (rather than enumerated types) are used to identify each AFI / SAFI type to make it easier for users to extend to pre-standard or custom AFI/SAFI types. This module is only intended to capture the most

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

 module openconfig-bgp-multiprotocol {
   yang-version 1;
   namespace "http://openconfig.net/yang/bgp-multiprotocol";
   prefix bgp-mp;
   import openconfig-routing-policy {
     prefix rpol;
   }
   import openconfig-bgp-types {
     prefix bgp-types;
   }
   import openconfig-bgp-operational {
     prefix bgp-op;
   }
   import openconfig-types {
     prefix oc-types;
   }
   import openconfig-extensions {
     prefix oc-ext;
   }
   oc-ext:openconfig-version 1.1.0;
   revision 2015-10-09 {
   }
   revision 2015-05-15 {
   }
   grouping ipv4-unicast-group {
     container ipv4-unicast {
       when "../afi-safi-name = 'bgp-mp:ipv4-unicast'" {
       }
       uses ipv4-ipv6-unicast-common;
     }
   }
   grouping ipv6-unicast-group {
     container ipv6-unicast {
       when "../afi-safi-name = 'bgp-mp:ipv6-unicast'" {
       }
       uses ipv4-ipv6-unicast-common;
     }
   }
   grouping ipv4-labelled-unicast-group {
     container ipv4-labelled-unicast {
       when "../afi-safi-name = 'bgp-mp:ipv4-labelled-unicast'" {
       }
       uses all-afi-safi-common;
     }
   }
   grouping ipv6-labelled-unicast-group {
     container ipv6-labelled-unicast {
       when "../afi-safi-name = 'bgp-mp:ipv6-labelled-unicast'" {
       }
       uses all-afi-safi-common;
     }
   }
   grouping l3vpn-ipv4-unicast-group {
     container l3vpn-ipv4-unicast {
       when "../afi-safi-name = 'bgp-mp:l3vpn-ipv4-unicast'" {
       }
       uses l3vpn-ipv4-ipv6-unicast-common;
     }
   }
   grouping l3vpn-ipv6-unicast-group {
     container l3vpn-ipv6-unicast {
       when "../afi-safi-name = 'bgp-mp:l3vpn-ipv6-unicast'" {
       }
       uses l3vpn-ipv4-ipv6-unicast-common;
     }
   }
   grouping l3vpn-ipv4-multicast-group {
     container l3vpn-ipv4-multicast {
       when "../afi-safi-name = 'bgp-mp:l3vpn-ipv4-multicast'" {
       }
       uses l3vpn-ipv4-ipv6-multicast-common;
     }
   }
   grouping l3vpn-ipv6-multicast-group {
     container l3vpn-ipv6-multicast {
       when "../afi-safi-name = 'bgp-mp:l3vpn-ipv6-multicast'" {
       }
       uses l3vpn-ipv4-ipv6-multicast-common;
     }
   }
   grouping l2vpn-vpls-group {
     container l2vpn-vpls {
       when "../afi-safi-name = 'bgp-mp:l2vpn-vpls'" {
       }
       uses l2vpn-common;
     }
   }
   grouping l2vpn-evpn-group {
     container l2vpn-evpn {
       when "../afi-safi-name = 'bgp-mp:l2vpn-evpn'" {
       }
       uses l2vpn-common;
     }
   }
   grouping bgp-route-selection-options_config {
     leaf always-compare-med {
       type boolean;
       default false;
     }
     leaf ignore-as-path-length {
       type boolean;
       default false;
     }
     leaf external-compare-router-id {
       type boolean;
       default true;
     }
     leaf advertise-inactive-routes {
       type boolean;
       default false;
     }
     leaf enable-aigp {
       type boolean;
       default false;
     }
     leaf ignore-next-hop-igp-metric {
       type boolean;
       default false;
     }
   }
   grouping bgp-use-multiple-paths-ebgp-as-options_config {
     leaf allow-multiple-as {
       type boolean;
       default false;
     }
   }
   grouping bgp-use-multiple-paths-ebgp_config {
     uses bgp-use-multiple-paths-ebgp-as-options_config;
     leaf maximum-paths {
       type uint32;
       default 1;
     }
   }
   grouping bgp-use-multiple-paths-ibgp_config {
     leaf maximum-paths {
       type uint32;
       default 1;
     }
   }
   grouping bgp-use-multiple-paths {
     container use-multiple-paths {
       container config {
         uses bgp-use-multiple-paths_config;
       }
       container state {
         uses bgp-use-multiple-paths_config;
       }
       container ebgp {
         container config {
           uses bgp-use-multiple-paths-ebgp_config;
         }
         container state {
           config false;
           uses bgp-use-multiple-paths-ebgp_config;
         }
       }
       container ibgp {
         container config {
           uses bgp-use-multiple-paths-ibgp_config;
         }
         container state {
           config false;
           uses bgp-use-multiple-paths-ibgp_config;
         }
       }
     }
   }
   grouping bgp-use-multiple-paths-neighbor {
     container use-multiple-paths {
       container config {
         uses bgp-use-multiple-paths_config;
       }
       container state {
         uses bgp-use-multiple-paths_config;
       }
       container ebgp {
         container config {
           uses bgp-use-multiple-paths-ebgp-as-options_config;
         }
         container state {
           config false;
           uses bgp-use-multiple-paths-ebgp-as-options_config;
         }
       }
     }
   }
   grouping bgp-use-multiple-paths_config {
     leaf enabled {
       type boolean;
       default false;
     }
   }
   grouping bgp-afi-safi-graceful-restart_config {
     leaf enabled {
       type boolean;
       default false;
     }
   }
   grouping bgp-afi-safi_config {
     leaf afi-safi-name {
       type identityref {
         base afi-safi-type;
       }
     }
     leaf enabled {
       type boolean;
       default false;
     }
   }
   grouping all-afi-safi-common-prefix-limit_config {
     leaf max-prefixes {
       type uint32;
     }
     leaf shutdown-threshold-pct {
       type oc-types:percentage;
     }
     leaf restart-timer {
       type decimal64 {
         fraction-digits 2;
       }
       units seconds;
     }
   }
   grouping ipv4-ipv6-unicast-common_config {
     leaf send-default-route {
       type boolean;
       default false;
     }
   }
   grouping all-afi-safi-common {
     container prefix-limit {
       container config {
         uses all-afi-safi-common-prefix-limit_config;
       }
       container state {
         config false;
         uses all-afi-safi-common-prefix-limit_config;
       }
     }
   }
   grouping ipv4-ipv6-unicast-common {
     uses all-afi-safi-common;
     container config {
       uses ipv4-ipv6-unicast-common_config;
     }
     container state {
       config false;
       uses ipv4-ipv6-unicast-common_config;
     }
   }
   grouping l3vpn-ipv4-ipv6-unicast-common {
     uses all-afi-safi-common;
   }
   grouping l3vpn-ipv4-ipv6-multicast-common {
     uses all-afi-safi-common;
   }
   grouping l2vpn-common {
     uses all-afi-safi-common;
   }
   grouping bgp-route-selection-options {
     container route-selection-options {
       container config {
         uses bgp-route-selection-options_config;
       }
       container state {
         config false;
         uses bgp-route-selection-options_config;
       }
     }
   }
   grouping bgp-global-afi-safi {
     uses bgp-route-selection-options;
   }
   grouping bgp-group-afi-safi {
     uses bgp-route-selection-options;
   }
   grouping bgp-common-afi-safi-list {
     list afi-safi {
       key afi-safi-name;
       leaf afi-safi-name {
         type leafref {
           path ../config/afi-safi-name;
         }
       }
       container graceful-restart {
         container config {
           uses bgp-afi-safi-graceful-restart_config;
         }
         container state {
           config false;
           uses bgp-afi-safi-graceful-restart_config;
         }
       }
       container config {
         uses bgp-afi-safi_config;
       }
       container state {
         config false;
         uses bgp-afi-safi_config;
         uses bgp-op:bgp-afi-safi_state;
       }
       uses rpol:apply-policy-group;
       uses ipv4-unicast-group;
       uses ipv6-unicast-group;
       uses ipv4-labelled-unicast-group;
       uses ipv6-labelled-unicast-group;
       uses l3vpn-ipv4-unicast-group;
       uses l3vpn-ipv6-unicast-group;
       uses l3vpn-ipv4-multicast-group;
       uses l3vpn-ipv6-multicast-group;
       uses l2vpn-vpls-group;
       uses l2vpn-evpn-group;
     }
   }
 }