Download presentation
Presentation is loading. Please wait.
1
Routing Area Common YANG Data Types
draft-rtgyangdt-rtgwg-routing-types-00 Routing Area Yang Design Team Xufeng Liu Yingzhen Qu Acee Lindem Christian Hopps Lou Berger IETF97
2
Introduction Same or similar YANG types are used in the routing area YANG models Defined multiple times in individual models Definitions not Consistent These common types are collected and defined in this model In a sharable module Should be imported in routing area models Ensures consistent definitions for common routing types Analogous to ietf-yang-types but types specific to routing area
3
Types router-id address-family route-target route-distinguisher
ieee-bandwidth link-access-type multicast-source-ipv4-addr-type multicast-source-ipv6-addr-type
4
Types timer-multiplier timer-value-seconds16 timer-value-seconds32
timer-value-milliseconds
5
Router ID Example usage: OSPF, BGP, LDP
typedef router-id { type yang:dotted-quad; } Example usage: OSPF, BGP, LDP
6
Address Family Example usage: OSPF, BGP, ISIS, LDP, PIM
identity address-family { } identity ipv4 { base address-family; identity ipv6 { identity nsap { identity hdlc { Example usage: OSPF, BGP, ISIS, LDP, PIM
7
Route target Example usage: BGP, L3VPN, L2VPN, MVPN
typedef route-target { type string { pattern '(0:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' + '[0-5]?\d{0,3}\d):( [0-5]| [0-8]\d|' + ' [01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|' + '4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|' + '[0-3]?\d{0,8}\d))|' + '(1:(((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|' + '1\d{2}|2[0-4]\d|25[0-5])):(6553[0-5]|655[0-2]\d|' + '65[0-4]\d{2}|6[0-4]\d{3}|[0-5]?\d{0,3}\d))|' + '(2:( [0-5]| [0-8]\d| [01]\d{2}|' + '429496[0-6]\d{3}|42949[0-5]\d{4}|4294[0-8]\d{5}|' + '429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|[0-3]?\d{0,8}\d):' + '(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' + '[0-5]?\d{0,3}\d))'; } description “Type 0, 1, and 2 defined in RFC4360: 0:2-byte-asn:4-byte-number 1:4-byte-ipv4addr:2-byte-number 2:4-byte-asn:2-byte-number. Examples: 0:100:100, 1: :100, and 2: :203."; } Example usage: BGP, L3VPN, L2VPN, MVPN
8
Route Distinguisher Example usage: BGP, L3VPN, L2VPN, LDP
typedef route-distinguisher { type string { pattern '(0:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' + '[0-5]?\d{0,3}\d):( [0-5]| [0-8]\d|' + ' [01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|' + '4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|' + '[0-3]?\d{0,8}\d))|' + '(1:(((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|' + '1\d{2}|2[0-4]\d|25[0-5])):(6553[0-5]|655[0-2]\d|' + '65[0-4]\d{2}|6[0-4]\d{3}|[0-5]?\d{0,3}\d))|' + '(2:( [0-5]| [0-8]\d| [01]\d{2}|' + '429496[0-6]\d{3}|42949[0-5]\d{4}|4294[0-8]\d{5}|' + '429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|[0-3]?\d{0,8}\d):' + '(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' + '[0-5]?\d{0,3}\d))|' + '(([3-9a-fA-F]|[1-9a-fA-F][\da-fA-F]{1,3}):' + '[\da-fA-F]{1,12})'; } description “Type 0, 1, and 2 defined in RFC4364: 0:2-byte-asn:4-byte-number 1:4-byte-ipv4addr:2-byte-number 2:4-byte-asn:2-byte-number. 2-byte-other-hex-number:6-byte-hex-number”;} Example usage: BGP, L3VPN, L2VPN, LDP
9
Bandwidth in IEEE Format
typedef ieee-bandwidth { type string { pattern '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}'; } description "IEEE 754 floating point 32-bit binary format: (-1)**(S) * 2**(Exponent-127) * (1 + Fraction), Examples: Fast Ethernet( Mbps) 0x4B3EBC20 The encoding format is the external hexadecimal-significand character sequences: 0x1.hhhhhhp{+}d or 0X1.HHHHHHP{+}D Examples: 0x0p0, 0x1p10, and 0x1.abcde2p+20"; Example usage: OSPF, ISIS, RSVP-TE
10
Link Access Type Example usage: OSPF, ISIS, TE Topology
typedef link-access-type { type enumeration { enum "broadcast" { } enum "non-broadcast" { enum "point-to-multipoint" { enum "point-to-point" { Example usage: OSPF, ISIS, TE Topology
11
IPv4 Multicast Source Address
typedef multicast-source-ipv4-addr-type { type union { type enumeration { enum '*' { description "Any source address."; } type inet:ipv4-address; ”IPv4 Multicast source address type."; Example usage: PIM, ISMP-MLD, MSDP
12
IPv6 Multicast Source Address
typedef multicast-source-ipv6-addr-type { type union { type enumeration { enum '*' { description "Any source address."; } type inet:ipv6-address; ”IPv6 Multicast source address type."; Example usage: PIM, ISMP-MLD, MSDP
13
Timer Value Example usage: OSPF, ISIS, LDP, PIM, IGMP-MLD
typedef timer-value-seconds16 { type union { type uint16 { range " "; } type enumeration { enum "infinity" { description "The timer is set to infinity."; enum "no-expiry" { description "The timer is not set."; units seconds; description "Timer value type, in seconds (16 bit range)."; Other Variants: seconds32, milliseconds Example usage: OSPF, ISIS, LDP, PIM, IGMP-MLD
14
Timer Multiplier Example usage: RSVP, PIM, BFD
typedef timer-multiplier { type uint8; description "The number of timer value intervals that should be interpreted as a failure."; } Example usage: RSVP, PIM, BFD
15
Next Steps Align with other models Solicit comments
Additional common routing types for initial model? WG adoption Most useful if it progress at the same cadence as first wave of routing models.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.