diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-bgp-types.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-bgp-types.yang | 604 |
1 files changed, 0 insertions, 604 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-types.yang b/src/plugins/yang/openconfig/openconfig-bgp-types.yang deleted file mode 100644 index 0b57480..0000000 --- a/src/plugins/yang/openconfig/openconfig-bgp-types.yang +++ /dev/null @@ -1,604 +0,0 @@ -module openconfig-bgp-types { - yang-version "1"; - - namespace "http://openconfig.net/yang/bgp-types"; - - prefix "oc-bgp-types"; - - import openconfig-types { prefix "oc-types"; } - import openconfig-inet-types { prefix "oc-inet"; } - import openconfig-extensions { prefix "oc-ext"; } - - // Include definitions of BGP error notifications - include openconfig-bgp-errors; - - // meta - organization - "OpenConfig working group"; - - contact - "OpenConfig working group - netopenconfig@googlegroups.com"; - - description - "This module contains general data definitions for use in BGP - policy. It can be imported by modules that make use of BGP - attributes"; - - oc-ext:openconfig-version "5.0.1"; - - revision "2018-08-20" { - description - "Correct description of AFI-SAFI enabled leaf."; - reference "5.0.1"; - } - - revision "2018-04-11" { - description - "Correct naming of BGP maximum prefix warning percentage leaf."; - reference "5.0.0"; - } - - revision "2018-03-20" { - description - "Added SR-TE policy SAFI"; - reference "4.1.0"; - } - - revision "2018-03-20" { - description - "Added color extended community"; - reference "4.0.2"; - } - - revision "2017-07-30" { - description - "Clarification of add-paths send-max leaf"; - reference "4.0.1"; - } - - revision "2017-07-10" { - description - "Add error notifications; moved add-paths config; add AS - prepend policy features; removed unneeded config leaves"; - reference "4.0.0"; - } - - revision "2017-02-02" { - description - "Bugfix to remove remaining global-level policy data"; - reference "3.0.1"; - } - - revision "2017-01-26" { - description - "Add dynamic neighbor support, migrate to OpenConfig types"; - reference "3.0.0"; - } - - revision "2016-06-21" { - description - "OpenConfig BGP refactor"; - reference "2.1.1"; - } - - - identity BGP_CAPABILITY { - description "Base identity for a BGP capability"; - } - - identity MPBGP { - base BGP_CAPABILITY; - description - "Multi-protocol extensions to BGP"; - reference "RFC2858"; - } - - identity ROUTE_REFRESH { - base BGP_CAPABILITY; - description - "The BGP route-refresh functionality"; - reference "RFC2918"; - } - - identity ASN32 { - base BGP_CAPABILITY; - description - "4-byte (32-bit) AS number functionality"; - reference "RFC6793"; - } - - identity GRACEFUL_RESTART { - base BGP_CAPABILITY; - description - "Graceful restart functionality"; - reference "RFC4724"; - } - - identity ADD_PATHS { - base BGP_CAPABILITY; - description - "BGP add-paths"; - reference "draft-ietf-idr-add-paths"; - } - - identity AFI_SAFI_TYPE { - description - "Base identity type for AFI,SAFI tuples for BGP-4"; - reference "RFC4760 - multiprotocol extensions for BGP-4"; - } - - identity IPV4_UNICAST { - base AFI_SAFI_TYPE; - description - "IPv4 unicast (AFI,SAFI = 1,1)"; - reference "RFC4760"; - } - - identity IPV6_UNICAST { - base AFI_SAFI_TYPE; - description - "IPv6 unicast (AFI,SAFI = 2,1)"; - reference "RFC4760"; - } - - identity IPV4_LABELED_UNICAST { - base AFI_SAFI_TYPE; - description - "Labeled IPv4 unicast (AFI,SAFI = 1,4)"; - reference "RFC3107"; - } - - identity IPV6_LABELED_UNICAST { - base AFI_SAFI_TYPE; - description - "Labeled IPv6 unicast (AFI,SAFI = 2,4)"; - reference "RFC3107"; - } - - identity L3VPN_IPV4_UNICAST { - base AFI_SAFI_TYPE; - description - "Unicast IPv4 MPLS L3VPN (AFI,SAFI = 1,128)"; - reference "RFC4364"; - } - - identity L3VPN_IPV6_UNICAST { - base AFI_SAFI_TYPE; - description - "Unicast IPv6 MPLS L3VPN (AFI,SAFI = 2,128)"; - reference "RFC4659"; - } - - identity L3VPN_IPV4_MULTICAST { - base AFI_SAFI_TYPE; - description - "Multicast IPv4 MPLS L3VPN (AFI,SAFI = 1,129)"; - reference "RFC6514"; - } - - identity L3VPN_IPV6_MULTICAST { - base AFI_SAFI_TYPE; - description - "Multicast IPv6 MPLS L3VPN (AFI,SAFI = 2,129)"; - reference "RFC6514"; - } - - identity L2VPN_VPLS { - base AFI_SAFI_TYPE; - description - "BGP-signalled VPLS (AFI,SAFI = 25,65)"; - reference "RFC4761"; - } - - identity L2VPN_EVPN { - base AFI_SAFI_TYPE; - description - "BGP MPLS Based Ethernet VPN (AFI,SAFI = 25,70)"; - } - - identity SRTE_POLICY_IPV4 { - base AFI_SAFI_TYPE; - description - "Segment Routing Traffic Engineering (SRTE) Policy - for IPv4 (AFI,SAFI = 1,73)"; - } - - identity SRTE_POLICY_IPV6 { - base AFI_SAFI_TYPE; - description - "Segment Routing Traffic Engineering (SRTE) Policy - for IPv6 (AFI,SAFI = 2,73)"; - } - - identity BGP_WELL_KNOWN_STD_COMMUNITY { - description - "Reserved communities within the standard community space - defined by RFC1997. These communities must fall within the - range 0x00000000 to 0xFFFFFFFF"; - reference "RFC1997"; - } - - identity NO_EXPORT { - base BGP_WELL_KNOWN_STD_COMMUNITY; - description - "Do not export NLRI received carrying this community outside - the bounds of this autonomous system, or this confederation if - the local autonomous system is a confederation member AS. This - community has a value of 0xFFFFFF01."; - reference "RFC1997"; - } - - identity NO_ADVERTISE { - base BGP_WELL_KNOWN_STD_COMMUNITY; - description - "All NLRI received carrying this community must not be - advertised to other BGP peers. This community has a value of - 0xFFFFFF02."; - reference "RFC1997"; - } - - identity NO_EXPORT_SUBCONFED { - base BGP_WELL_KNOWN_STD_COMMUNITY; - description - "All NLRI received carrying this community must not be - advertised to external BGP peers - including over confederation - sub-AS boundaries. This community has a value of 0xFFFFFF03."; - reference "RFC1997"; - } - - identity NOPEER { - base BGP_WELL_KNOWN_STD_COMMUNITY; - description - "An autonomous system receiving NLRI tagged with this community - is advised not to readvertise the NLRI to external bi-lateral - peer autonomous systems. An AS may also filter received NLRI - from bilateral peer sessions when they are tagged with this - community value"; - reference "RFC3765"; - } - - typedef bgp-session-direction { - type enumeration { - enum INBOUND { - description - "Refers to all NLRI received from the BGP peer"; - } - enum OUTBOUND { - description - "Refers to all NLRI advertised to the BGP peer"; - } - } - description - "Type to describe the direction of NLRI transmission"; - } - - typedef bgp-well-known-community-type { - type identityref { - base BGP_WELL_KNOWN_STD_COMMUNITY; - } - description - "Type definition for well-known IETF community attribute - values"; - reference - "IANA Border Gateway Protocol (BGP) Well Known Communities"; - } - - - typedef bgp-std-community-type { - // TODO: further refine restrictions and allowed patterns - // 4-octet value: - // <as number> 2 octets - // <community value> 2 octets - type union { - type uint32 { - // per RFC 1997, 0x00000000 - 0x0000FFFF and 0xFFFF0000 - - // 0xFFFFFFFF are reserved - } - type string { - pattern '^(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9]):' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$'; - } - } - description - "Type definition for standard commmunity attributes represented as - a integer value, or a string of the form N:M where N and M are - integers between 0 and 65535."; - reference "RFC 1997 - BGP Communities Attribute"; - } - - typedef bgp-ext-community-type { - type union { - type string { - // Type 1: 2-octet global and 4-octet local - // (AS number) (Integer) - pattern '^(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9]):' + - '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' + - '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' + - '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' + - '[1-9][0-9]{1,8}|[0-9])$'; - } - type string { - // Type 2: 4-octet global and 2-octet local - // (ipv4-address) (integer) - pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + - '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' + - '2[0-4][0-9]|25[0-5]):' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$'; - } - type string { - // RFC5668: 4-octet global and 2-octet local - // (AS number) (integer) - pattern '^(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' + - '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' + - '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' + - '[1-9][0-9]{1,8}|[0-9]):' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$'; - } - type string { - // route-target with Type 1 - // route-target:(ASN):(local-part) - pattern '^route\-target:' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9]):' + - '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' + - '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' + - '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' + - '[1-9][0-9]{1,8}|[0-9])$'; - } - type string { - // route-target with Type 2 - // route-target:(IPv4):(local-part) - pattern '^route\-target:' + - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + - '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' + - '2[0-4][0-9]|25[0-5]):' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$'; - } - type string { - // 4-byte AS Type 1 route-target - pattern '^route\-target:' + - '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' + - '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' + - '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' + - '[1-9][0-9]{1,8}|[0-9]):' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$'; - } - type string { - // route-origin with Type 1 - pattern '^route\-origin:' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9]):' + - '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' + - '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' + - '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' + - '[1-9][0-9]{1,8}|[0-9])$'; - } - type string { - // route-origin with Type 2 - pattern '^route\-origin:' + - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + - '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' + - '2[0-4][0-9]|25[0-5]):' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$'; - } - type string { - // 4-byte AS Type 1 route-origin - pattern '^route\-origin:' + - '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' + - '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' + - '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' + - '[1-9][0-9]{1,8}|[0-9]):' + - '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' + - '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$'; - } - type string { - // Extended Color Community - pattern '^color:' + - '[0-1]{2}:' + - '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' + - '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' + - '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' + - '[1-9][0-9]{1,8}|[0-9])$'; - } - } - description - "Type definition for extended community attributes. In the case that - common communities are utilised, they are represented as a string - of the form: - - <2b AS>:<4b value> per RFC4360 section 3.1 - - <4b IPv4>:<2b value> per RFC4360 section 3.2 - - <4b AS>:<2b value> per RFC5668 section 2. - - route-target:<2b AS>:<4b value> per RFC4360 section 4 - - route-target:<4b IPv4>:<2b value> per RFC4360 section 4 - - route-origin:<2b ASN>:<4b value> per RFC4360 section 5 - - route-origin:<4b IPv4>:<2b value> per RFC4360 section 5 - - color:<CO bits>:<4b value> per draft-ietf-idr-segment-routing-te-policy - section 3"; - reference - "RFC 4360 - BGP Extended Communities Attribute - RFC 5668 - 4-Octet AS Specific BGP Extended Community - draft-ietf-idr-segment-routing-te-policy"; - } - - typedef bgp-ext-community-recv-type { - type union { - type bgp-ext-community-type; - type binary { - length 8; - } - } - description - "A type definition utilised to define the extended community - in a context where the system is receiving the extended - community from an external source, such that the value may be - unknown. In the case that the received extended community is - unknown it is defined to be a 8-octet quantity formatted - according to RFC4360: - - Type Field: 1 or 2 octets. - Value Field: Remaining octets. - - The high-order octet of the type field is encoded such that - bit 0 indicates whether the extended community type is IANA - assigned; and bit 1 indicates whether the extended community - is transitive. The remaining bits of the high-order type - field must be interpreted to determine whether the low-order - type field should be parsed, or whether the entire remainder - of the extended community is a value."; - reference - "RFC 4360 - BGP Extended Communities Attribute - RFC 5668 - 4-Octet AS Specific BGP Extended Community"; - } - - typedef bgp-community-regexp-type { - // TODO: needs more work to decide what format these regexps can - // take. - type oc-types:std-regexp; - description - "Type definition for communities specified as regular - expression patterns"; - } - - typedef bgp-origin-attr-type { - type enumeration { - enum IGP { - description - "Origin of the NLRI is internal"; - } - enum EGP { - description - "Origin of the NLRI is EGP"; - } - enum INCOMPLETE { - description - "Origin of the NLRI is neither IGP or EGP"; - } - } - description - "Type definition for standard BGP origin attribute"; - reference "RFC 4271 - A Border Gateway Protocol 4 (BGP-4), - Sec 4.3"; - } - - 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"; - } - - identity REMOVE_PRIVATE_AS_OPTION { - description - "Base identity for options for removing private autonomous - system numbers from the AS_PATH attribute"; - } - - identity PRIVATE_AS_REMOVE_ALL { - base REMOVE_PRIVATE_AS_OPTION; - description - "Strip all private autonmous system numbers from the AS_PATH. - This action is performed regardless of the other content of the - AS_PATH attribute, and for all instances of private AS numbers - within that attribute."; - } - - identity PRIVATE_AS_REPLACE_ALL { - base REMOVE_PRIVATE_AS_OPTION; - description - "Replace all instances of private autonomous system numbers in - the AS_PATH with the local BGP speaker's autonomous system - number. This action is performed regardless of the other - content of the AS_PATH attribute, and for all instances of - private AS number within that attribute."; - } - - typedef remove-private-as-option { - type identityref { - base REMOVE_PRIVATE_AS_OPTION; - } - description - "Set of options for configuring how private AS path numbers - are removed from advertisements"; - } - - typedef rr-cluster-id-type { - type union { - type uint32; - type oc-inet:ipv4-address; - } - description - "Union type for route reflector cluster ids: - option 1: 4-byte number - option 2: IP address"; - } - - typedef community-type { - type enumeration { - enum STANDARD { - description "Send only standard communities"; - } - enum EXTENDED { - description "Send only extended communities"; - } - enum BOTH { - description "Send both standard and extended communities"; - } - enum NONE { - description "Do not send any community attribute"; - } - } - description - "type describing variations of community attributes: - STANDARD: standard BGP community [rfc1997] - EXTENDED: extended BGP community [rfc4360] - BOTH: both standard and extended community"; - } - - - typedef as-path-segment-type { - type enumeration { - enum AS_SEQ { - description - "Ordered set of autonomous systems that a route in - the UPDATE message has traversed"; - } - enum AS_SET { - description - "Unordered set of autonomous systems that a route in - the UPDATE message has traversed"; - } - enum AS_CONFED_SEQUENCE { - description - "Ordered set of Member Autonomous - Systems in the local confederation that the UPDATE message - has traversed"; - } - enum AS_CONFED_SET { - description - "Unordered set of Member Autonomous Systems - in the local confederation that the UPDATE message has - traversed"; - } - } - description - "Defines the types of BGP AS path segments."; - } -} |