yang: update zebra interface model

Modify interface config model
and add zebra specific interface state operational data.

augment /frr-interface:lib/frr-interface:interface:
  +--rw zebra
     +--rw ip-addrs* [address-family ip-prefix]
     |  +--rw address-family    identityref
     |  +--rw ip-prefix         ietf-inet-types:ip-prefix
     |  +--rw label?            string
     |  +--rw ip4-peer?         ietf-inet-types:ipv4-prefix
     +--rw multicast?     boolean
     +--rw link-detect?   boolean
     +--rw shutdown?      boolean
     +--rw bandwidth?     uint32
     +--ro state
        +--ro up-count?      uint16
        +--ro down-count?    uint16
        +--ro zif-type?      identityref
        +--ro ptm-status?    string <disabled>
        +--ro vlan-id?       uint16
        +--ro vni-id?        vni-id-type
        +--ro remote-vtep?   ietf-inet-types:ipv4-address
        +--ro mcast-group?   ietf-routing-types:ipv4-multicast-group-address

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
This commit is contained in:
Chirag Shah 2020-02-05 19:19:09 -08:00 committed by Santosh P K
parent 219dabe8d4
commit 93a6af756c

View File

@ -27,6 +27,10 @@ module frr-zebra {
prefix frr-nh;
}
import frr-routing {
prefix frr-rt;
}
import frr-interface {
prefix frr-interface;
}
@ -84,6 +88,65 @@ module frr-zebra {
"An absolute time in seconds since the unix epoch.";
}
identity zebra-interface-type {
description
"zebra interface type.";
}
identity zif-other {
base zebra-interface-type;
description
"Zebra interface type other.";
}
identity zif-bridge {
base zebra-interface-type;
description
"Zebra interface type bridge.";
}
identity zif-vlan {
base zebra-interface-type;
description
"Zebra interface type vlan.";
}
identity zif-vxlan {
base zebra-interface-type;
description
"Zebra interface type vxlan.";
}
identity zif-vrf {
base zebra-interface-type;
description
"Zebra interface type vrf.";
}
identity zif-veth {
base zebra-interface-type;
description
"Zebra interface type veth.";
}
identity zif-bond {
base zebra-interface-type;
description
"Zebra interface type bond.";
}
identity zif-bond-slave {
base zebra-interface-type;
description
"Zebra interface type bond slave.";
}
identity zif-macvlan {
base zebra-interface-type;
description
"Zebra interface type macvlan.";
}
/*
* Multicast RPF mode configurable type
*/
@ -365,7 +428,7 @@ module frr-zebra {
"The gateway MAC-IP is being advertised.";
}
leaf mcase-group {
leaf mcast-group {
type rt-types:ipv4-multicast-group-address;
description
"The VNI multicast group for BUM traffic.";
@ -1866,40 +1929,33 @@ module frr-zebra {
description
"Extends interface model with Zebra-related parameters.";
container zebra {
list ip4-addr-list {
key "ip4-prefix";
list ip-addrs {
key "address-family ip-prefix";
description
"IPv4 prefixes for an interface.";
leaf ip4-prefix {
type inet:ipv4-prefix;
"IP prefixes for an interface.";
uses frr-rt:address-family {
description
"IPv4 address prefix.";
"Address family of the RIB.";
}
leaf ip-prefix {
type inet:ip-prefix;
description
"IP address prefix.";
}
leaf label {
type string;
description
"Optional string label for the address.";
}
leaf ip4-peer {
when "derived-from-or-self(../address-family, 'ipv4')";
type inet:ipv4-prefix;
description
"Peer prefix, for peer-to-peer interfaces.";
}
leaf label {
type string;
description
"Optional string label for the address.";
}
}
list ip6-addr-list {
key "ip6-prefix";
description
"IPv6 prefixes for an interface.";
leaf ip6-prefix {
type inet:ipv6-prefix;
description
"IPv6 address prefix.";
}
leaf label {
type string;
description
"Optional string label for the address.";
}
}
leaf multicast {
@ -1907,16 +1963,19 @@ module frr-zebra {
description
"Multicast flag for the interface.";
}
leaf link-detect {
type boolean;
description
"Link-detection for the interface.";
}
leaf shutdown {
type boolean;
description
"Interface admin status.";
}
leaf bandwidth {
type uint32 {
range "1..100000";
@ -1925,6 +1984,61 @@ module frr-zebra {
"Link bandwidth informational parameter, in megabits.";
}
// TODO -- link-params for (experimental/partial TE use in IGP extensions)
container state {
config false;
description
"Operational data.";
leaf up-count {
type uint16;
description
"Interface Up count.";
}
leaf down-count {
type uint16;
description
"Interface Down count.";
}
leaf zif-type {
type identityref {
base zebra-interface-type;
}
description
"zebra interface type.";
}
leaf ptm-status {
type string;
default "disabled";
description
"Interface PTM status.";
}
leaf vlan-id {
type uint16 {
range "1..4094";
}
description
"A VLAN id.";
}
leaf vni-id {
type vni-id-type;
}
leaf remote-vtep {
type inet:ipv4-address;
description
"The remote VTEP IP address.";
}
leaf mcast-group {
type rt-types:ipv4-multicast-group-address;
description
"The VNI multicast group for BUM traffic.";
}
}
}
}