summaryrefslogtreecommitdiffhomepage
path: root/tools/yang/bgp.yang
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-03-03 12:17:04 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-03-03 12:17:04 +0900
commitd387fd92e71a42e243cedef32f0812c72474c418 (patch)
treea5d2d24037c208f651d6b4dcd702da402067ecd1 /tools/yang/bgp.yang
parentd8de748a2fe5855e10b6d4fae23f47a267347a50 (diff)
tools: remove yang files
Instead, use https://github.com/osrg/yang Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Diffstat (limited to 'tools/yang/bgp.yang')
-rw-r--r--tools/yang/bgp.yang607
1 files changed, 0 insertions, 607 deletions
diff --git a/tools/yang/bgp.yang b/tools/yang/bgp.yang
deleted file mode 100644
index c6257b5e..00000000
--- a/tools/yang/bgp.yang
+++ /dev/null
@@ -1,607 +0,0 @@
- module bgp {
-
- yang-version "1";
-
- // namespace
- // TODO: change to an ietf or other more generic namespace
- namespace "http://google.com/yang/google-bgp-protocol-cfg";
-
- prefix "bgp";
-
- // import some basic inet types
- import ietf-inet-types { prefix inet; }
- import bgp-multiprotocol { prefix bgp-mp; }
- import bgp-policy { prefix bgp-pol; }
- import bgp-operational { prefix bgp-op; }
-
- // meta
- organization
- "Google, AT&T, BT, Microsoft";
-
- contact
- "Google, Inc.
- 1600 Amphitheatre Way
- Mountain View, CA 94043
-
- AT&T Labs
- 200 S. Laurel Avenue
- Middletown, NJ 07748
-
- BT
- pp. C3L, BT Centre
- 81, Newgate Street
- London EC1A 7AJ
- UK
-
- Microsoft
- 205 108th Ave. NE, Suite 400
- Bellevue, WA 98004";
-
- description
- "This module describes a YANG model for BGP protocol
- configuration.It is a limited subset of all of the configuration
- parameters available in the variety of vendor implementations,
- hence it is expected that it would be augmented with vendor-
- specific configuration data as needed.Additional modules or
- submodules to handle other aspects of BGP configuration,
- including policy, VRFs, VPNs, and additional address families
- are also expected.
-
- This model supports the following BGP configuration level
- hierarchy:
-
- BGP
- |
- +-> [ global BGP configuration ]
- +-> AFI / SAFI (address family)
- +-> [AFI-specific config ]
- +-> peer group
- +-> [ peer group config ]
- +-> AFI / SAFI [ per-AFI overrides ]
- +-> neighbor
- +-> [ per-neighbor overrides ]
- +-> AFI / SAFI [ per-AFI overrides ]
- +-> neighbor
- +-> [ neighbor config ]
- +-> AFI / SAFI [ per-AFI overrides ]";
-
- revision "2014-09-30" {
- description
- "Initial revision";
- reference "TBD";
- }
-
- typedef peer-type {
- type enumeration {
- enum INTERNAL {
- description "internal (iBGP) peer";
- }
- enum EXTERNAL {
- description "external (eBGP) peer";
- }
- }
- description
- "labels a peer or peer group as explicitly internal or
- external";
- }
-
- typedef remove-private-as-option {
- type enumeration {
- enum ALL {
- description "remove all private ASes in the path";
- }
- enum REPLACE {
- description "replace private ASes with local AS";
- }
- }
- description
- "set of options for configuring how private AS path numbers
- are removed from advertisements";
- }
-
- typedef percentage {
- type uint8 {
- range "0..100";
- }
- description
- "Integer indicating a percentage value";
- }
-
- typedef rr-cluster-id-type {
- type union {
- type uint32;
- type inet:ipv4-address;
- }
- description
- "union type for route reflector cluster ids:
- option 1: 4-byte number
- option 2: IP address";
- }
-
- grouping bgp-common-configuration {
- description "Common configuration available at all hierarchy
- levels, global, AFI, groups, neighbors, etc.";
-
- leaf description {
- type string;
- description
- "An optional textual description (intended primarily for use
- with a peer or group";
- }
-
- container route-selection-options {
- // TODO: consider moving this container to AFI/SAFI level
- // config
- description
- "Set of configuration options that govern best
- path selection.";
- leaf always-compare-med {
- type boolean;
- default "false";
- description
- "Compare multi-exit discriminator (MED) value from
- different ASes when selecting the best route. The
- default behavior is to only compare MEDs for paths
- received from the same AS.";
- }
-
- leaf ignore-as-path-length {
- type boolean;
- default "false";
- description
- "Ignore the AS path length when selecting the best path.
- The default is to use the AS path length and prefer paths
- with shorter length.";
- }
-
- leaf external-compare-router-id {
- type boolean;
- default "true";
- description
- "When comparing similar routes received from external
- BGP peers, use the router-id as a criterion to select
- the active path.";
- }
-
- leaf advertise-inactive-routes {
- type boolean;
- default "false";
- description
- "Advertise inactive routes to external peers. The
- default is to only advertise active routes.";
- }
-
- leaf enable-aigp {
- type empty;
- description
- "Flag to enable sending / receiving accumulated IGP
- attribute in routing updates";
- }
- }
-
- container use-multiple-paths {
-
- presence
- "Presence of this container indicates that multipath
- is enabled for both eBGP and iBGP, absence indicates
- that multi-path is not used";
-
- description
- "Configuration of BGP multi-path for iBGP and eBGP";
-
- container ebgp {
- description
- "Configuration of BGP multipath to enable load sharing
- across multiple paths to eBGP peers";
-
- leaf allow-multiple-as {
- type boolean;
- default "false";
- description
- "Allow multipath to use paths from different neighbouring
- ASes. The default is to only consider multiple paths from
- the same neighbouring AS.";
- }
-
- leaf maximum-paths {
- type uint32;
- default 1;
- description
- "Maximum number of parallel paths to consider when using
- BGP multipath. The default is use a single path.";
- }
- }
-
- container ibgp {
- description
- "Configuration of BGP multipath to enable load-sharing
- across multiple paths to iBGP peers";
-
- leaf maximum-paths {
- type uint32;
- default 1;
- description
- "Maximum number of parallel paths to consider when using
- iBGP multipath. The default is to use a single path";
- }
- }
-
- container eibgp {
- description
- "Configuration of BGP multipath to enable load-sharing
- across multiple paths to external confederation sub-ASes";
- leaf maximum-paths {
- type uint32;
- default 1;
- description
- "Maximum number of parallel paths to consider when using
- eiBGP multipath. The default is to use a single path";
- }
-
- }
- }
-
- container graceful-restart {
- // TODO: most impls seem to require this at the global level
- // in order to specify at neighbor or other levels
- presence "Presence of this item indicates that BGP graceful
- restart is enabled.";
-
- description
- "Configures BGP graceful restart, which is a negotiated
- option that indicates that a BGP speaker is able to retain
- forwarding state when a BGP session restarts";
-
- reference "RFC 4724: Graceful Restart Mechanism for BGP";
-
- leaf restart-time {
- type uint16 {
- range 0..4096;
- }
- description
- "Estimated time in seconds for the BGP session to be
- re-established after a restart. This is a 12-bit value
- advertised by the router to peers. Per RFC 4724, the
- suggested default value is <= the hold-time value";
- }
-
- leaf stale-routes-time {
- type decimal64 {
- fraction-digits 2;
- }
- description
- "Sets an upper bound on the time in seconds that stale
- routes will be retained by the router after a session is
- restarted";
- }
- }
-
- uses bgp-pol:apply-policy-group;
- }
-
- grouping bgp-global-configuration {
- description
- "Grouping for global level configuration items";
-
- leaf as {
- type inet:as-number;
- mandatory "true";
- description
- "Local autonomous system number of the router. Uses
- the 32-bit as-number type from the model in RFC 6991";
- }
- leaf router-id {
- type inet:ipv4-address;
- description
- "Router id of the router, expressed as an
- 32-bit value, IPv4 address.";
- }
-
- container default-route-distance {
- description
- "Administrative distance (or preference) assigned to
- routes received from different sources
- (external, internal, and local).";
- leaf external-route-distance {
- type uint8 {
- range "1..255";
- }
- description
- "Administrative distance for routes learned from external
- BGP (eBGP).";
- }
- leaf internal-route-distance {
- type uint8 {
- range "1..255";
- }
- description
- "Administrative distance for routes learned from internal
- BGP (iBGP).";
- }
- }
-
- container confederation {
-
- presence "Presence of this node indicates that the local AS
- is part of a confederation";
- description
- "Configuration for a BGP confederation consisting of a
- confed id and member sub-AS list";
-
- leaf identifier {
- type inet:as-number;
- description
- "Confederation identifier for the autonomous system";
- }
-
- leaf-list member-as {
- type inet:as-number;
- description
- "Remote autonomous systems that are to be treated
- as part of the local confederation.";
- }
- }
-
- }
-
- grouping bgp-group-common-configuration {
- description "Configuration items that are applied at the peer
- group level";
-
- // currently a placeholder in case we identify config that is
- // really only applicable at the group level
- }
-
- grouping bgp-group-neighbor-common-configuration {
- description "Configuration items that are applied at the peer
- or peer group levels";
-
- leaf auth-password {
- type string;
- description
- "Configures an MD5 authentication password for use with
- neighboring devices.";
- }
-
- leaf peer-type {
- type peer-type;
- description
- "Explicitly designate the peer or peer group as internal
- (iBGP) or external (eBGP).";
- }
-
- container timers {
- description "Configuration of various BGP timers";
- leaf connect-retry {
- type decimal64 {
- fraction-digits 2;
- }
- default 30;
- description
- "Time interval in seconds between attempts to establish a
- session with the peer.";
- }
-
- leaf hold-time {
- type decimal64 {
- fraction-digits 2;
- }
- default 90;
- description
- "Time interval in seconds that a BGP session will be
- considered active in the absence of keepalive or other
- messages from the peer. The hold-time is typically
- set to 3x the keepalive-interval.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4, Sec. 10";
- }
-
- leaf keepalive-interval {
- type decimal64 {
- fraction-digits 2;
- }
- default 30;
- description
- "Time interval in seconds between transmission of keepalive
- messages to the neighbor. Typically set to 1/3 the
- hold-time.";
- }
-
- leaf minimum-advertisement-interval {
- type decimal64 {
- fraction-digits 2;
- }
- default 30;
- description
- "Mininum time interval in seconds between transmission
- of BGP updates to neighbors";
- reference
- "RFC 4271 - A Border Gateway Protocol 4, Sec 10";
- }
-
- leaf send-update-delay {
- type decimal64 {
- fraction-digits 2;
- }
- description
- "Time interval between routes changing in the routing
- table and corresponding updates sent to neighbors --
- serves to batch updates";
- }
-
- }
-
- container ebgp-multihop {
- description
- "Configure multihop BGP for peers that are not directly
- connected";
-
- leaf multihop-ttl {
- type uint8;
- default 1;
- description
- "Time-to-live for multihop BGP sessions. The default
- value of 1 is for directly connected peers (i.e.,
- multihop disabled";
-
- }
-
- }
-
- container route-reflector {
- description
- "Configure the local router as a route-reflector
- server";
-
- leaf route-reflector-cluster-id {
- type rr-cluster-id-type;
- description
- "route-reflector cluster id to use when local router is
- configured as a route reflector. Commonly set at the group
- level, but allows a different cluster
- id to be set for each neighbor.";
- }
-
- leaf route-reflector-client {
- type boolean;
- default "false";
- description
- "Configure the neighbor as a route reflector client.";
- }
- }
-
- leaf remove-private-as {
- // could also make this a container with a flag to enable
- // remove-private and separate option. here, option implies
- // remove-private is enabled.
- type remove-private-as-option;
- description
- "Remove private AS numbers from updates sent to peers.";
- }
-
- container bgp-logging-options {
- description
- "Configure various tracing/logging options for BGP peers
- or groups. Expected that additional vendor-specific log
- options would augment this container.";
-
- leaf log-neighbor-state-changes {
- type boolean;
- default "true";
- description
- "Configure logging of peer state changes. Default is
- to enable logging of peer state changes.";
- }
- }
-
- container transport-options {
- description
- "Transport protocol options for BGP sessions";
-
- leaf tcp-mss {
- type uint16;
- description
- "Sets the max segment size for BGP TCP sessions.";
- }
-
- leaf mtu-discovery {
- type boolean;
- description
- "Turns path mtu discovery for BGP TCP sessions on (true)
- or off (false)";
- }
-
- leaf passive-mode {
- type boolean;
- description
- "Wait for peers to issue requests to open a BGP session,
- rather than initiating sessions from the local router.";
- }
- }
-
- leaf local-address {
- type inet:ip-address;
- description
- "Set the local IP (either IPv4 or IPv6) address to use for
- the session when sending BGP update messages.";
- }
-
- leaf route-flap-damping {
- type boolean;
- description
- "Enable route flap damping.";
- }
- }
-
- grouping bgp-neighbor-configuration {
- description
- "Neighbor-level configuration items";
-
- list neighbor {
- key "neighbor-address";
- description
- "List of BGP peers, uniquely identified by neighbor
- address.";
- leaf neighbor-address {
- type inet:ip-address;
- description
- "Address of the BGP peer, either IPv4 or IPv6.";
- }
-
- leaf peer-as {
- type inet:as-number;
- mandatory "true";
- description
- "AS number of the peer.";
-
- }
- uses bgp-common-configuration;
- uses bgp-mp:address-family-configuration;
- uses bgp-group-neighbor-common-configuration;
- uses bgp-op:bgp-op-neighbor-group;
- }
- }
-
- container bgp {
- description "Top-level configuration data for the BGP router";
-
- container global {
- description
- "Top-level bgp protocol options applied at the global level
- in the hierarchy -- these apply across peer-groups,
- neighbors, and address families";
-
- uses bgp-global-configuration;
-
- // attach global level operational data
- uses bgp-op:bgp-op-global-group;
- }
-
- // top level AF configuration
- uses bgp-mp:address-family-configuration;
-
- list peer-group {
- key "group-name";
- description
- "List of peer-groups, uniquely identified by the peer group
- name.";
- leaf group-name {
- type string;
- description "Name of the peer group.";
- }
- uses bgp-op:bgp-op-peergroup-group;
- uses bgp-common-configuration;
- uses bgp-mp:address-family-configuration;
- uses bgp-group-neighbor-common-configuration;
-
- // list of configurations for neighbors in this peer group
- uses bgp-neighbor-configuration;
- }
-
- // top level neighbor configuration
- uses bgp-neighbor-configuration;
-
- // hook for top-level policy definitions
- uses bgp-pol:policy-definition-group;
- }
- } \ No newline at end of file