80 likes | 100 Views
Explore the YANG models and specifications for Bidirectional Forwarding Detection (BFD) configuration in PIM multicast scenarios. Learn how to set up BFD parameters like intervals, multipliers, and priorities for efficient multicast routing. Follow the guidelines from the IETF and GitHub repositories for seamless BFD integration.
E N D
pim wg multicast YANG team Meeting 20151209 https://www.ietf.org/mailman/listinfo/yang-multicast http://trac.tools.ietf.org/wg/pim/trac/wiki/yang https://github.com/mcallisterjp/pim-yang
BFD Config and State +--rw interface if:interface-ref +--rw address-family* [address-family] +--rw address-family identityref + +--rwbfd + | +--rw enabled? boolean + | +--rw local-multiplier? multiplier + | +--rw (interval-config-type)? + | +--:(tx-rx-intervals) + | | +--rw desired-min-tx-interval uint32 + | | +--rw required-min-rx-interval uint32 + | +--:(single-interval) + | +--rw min-interval uint32 +--rwdr-priority? uint32 {intf-dr-priority}? +--rw hello-interval? timer-value {intf-hello-interval}? +--rw (hello-holdtime-or-multipler)?
RP State augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/pim-base:pim/pim-base:address-family: +--rorp ... ... +--rorp-list | +--ro ipv4-rp* [ipv4-addr] . . . - | +--ro ipv6-rp* [ipv6-addr] + | +--ro ipv6-rp* [ipv6-addr mode] | +--ro ipv6-addr inet:ipv6-address + | +--ro mode identityref | +--ro info-source-addr? inet:ipv6-address - | +--ro info-source-type? enumeration + | +--ro info-source-type? identityref | +--ro up-time? uint32 | +--ro expire? uint16 + identity rp-info-source-type { + description + "The information source of an RP."; + } + identity static { + base rp-info-source-type; + description + "The RP is statically configured."; + } + identity bootstrap { + base rp-info-source-type; + description + "The RP is learned from bootstrap."; + }
df-election augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/pim-base:pim/pim-bidir:address-family: +--rorp ... ... augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/pim-base:pim/pim-base:address-family/pim-rp:rp: +--robidir +--rodf-election // | +--ro ipv4-source-address* [ipv4-addr interface] | . . . | +--ro ipv6-rp* [ipv6-rp-addr] | +--ro ipv6-rp-addr inet:ipv6-address // | +--ro active-groups?* inet:ipv6-address-prefix | +--rodf-election-interfaces* [interface-name] | +--rointerface-name string | +--ro interface-state? enum // {elected | backup | not} | +--rodf? inet:ipv6-address Alternative: +--ro ipv6-rp* [ipv6-rp-addr interface-name] | +--ro interface-name string | +--ro interface-state? enum // {elected | backup | not} | +--rodf? inet:ipv6-address
interace-df-election augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/pim-base:pim/pim-bidir:address-family: +--rointerfaces augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/pim-base:pim/pim-base:interfaces: ... ... +--rointerface-df-election +--ro interface* [interface-name] // Anish to check if we can get all the info. +--rointerace-name string +--rooffer-multiple uint8 +--ro offer-interval uint32 +--robackoff-interval uint32 +--ro ipv4-source-address* [ipv4-addr interface] . . . +--ro ipv6-rp* [ipv6-rp-addr] +--ro ipv6-rp-addr inet:ipv6-address +--ro interface-state? enum +--rodf? inet:ipv6-address
SM State augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/pim-base:pim/pim-base:address-family: +--rosm +--roasm | +--roanycast-rp! | | +--roipv4 | | | +--roipv4-anycast-rp* [anycast-addrrp-addr] | | | +--roanycast-addr inet:ipv4-address | | | +--rorp-addr inet:ipv4-address | | +--roipv6 | | +--roipv6-anycast-rip* [anycast-addrrp-addr] | | +--roanycast-addr inet:ipv6-address | | +--rorp-addr inet:ipv6-address | +--rospt-switch | +--roinfinity! {spt-switch-infinity}? | +--ropolicy-name? string {spt-switch-policy}? +--rossm! +--ro range-poligy? String // +--roaddress-range* inet:ip-prefix
IGMP module: ietf-igmp augment /rt:routing/rt:routing-instance/rt:routing-protocols: +--rwigmp +--rw global +--rwinterfaces +-- rw interface* +--rwssm-map* [source-ip-address] | +--rw source-ip-address inet:ipv4-address | +--rw group-access-list-name string +--rw static-group* [group-ip-address] | +--rw group-ip-address inet:ipv4-address | +--rw source-ip-address? inet:ipv4-address +--rw access-group? string +--rw join-group? inet:ipv4-address +--rw last-member-query-interval? uint16 +--rw query-interval? uint16 +--rw query-max-response-time? uint8 +--rw query-solicitation? empty +--rw robust? uint8 +--rw verify-source-subnet? empty +--rw version? uint8
MLD module: ietf-mld augment /if:interfaces/if:interface/ip:ipv4: +--rwmld +--rwssm-map* [source-ip-address] | +--rw source-ip-address inet:ipv6-address | +--rw group-access-list-name string +--rw static-group* [group-ip-address] | +--rw group-ip-address inet:ipv6-address | +--rw source-ip-address? inet:ipv6-address +--rw access-group? string +--rw last-member-query-interval? uint16 +--rw query-interval? uint16 +--rw query-max-response-time? uint8 +--rw query-solicitation? empty +--rw robust? uint8 +--rw version? uint8