This module contains a collection of YANG definitions provided by OS10 base for managing MAC objects.This model is used to imple...
Version: 2018-11-19
module dell-base-l2-mac { yang-version 1; namespace "http://www.dellemc.com/networking/os10/dell-base-l2-mac"; prefix base-mac; import dell-base-common { prefix base-cmn; } import dell-base-interface-common { prefix base-if; } organization "Dell EMC"; contact "http://www.dell.com/support"; description "This module contains a collection of YANG definitions provided by OS10 base for managing MAC objects.This model is used to implement show/clear MAC address-table. Copyright(c) 2015-2018 by Dell EMC, All rights reserved."; revision "2018-11-19" { description "Add age-out-disable flag for MAC entry configuration."; reference "Network Platform Abstraction"; } revision "2018-09-12" { description "Add enum to support MAC address flush on a port based on port and bridge."; reference "Network Platform Abstraction"; } revision "2018-05-20" { description "Fixing pyang IETF errors and adding documentiation to the model."; reference "Network Platform Abstraction"; } revision "2018-05-01" { description "Add enums to support MAC address flush for peer IP for all bridges and port VLAN subport"; reference "Network Platform Abstraction"; } revision "2018-01-09" { description "Added endpoint-event container to publish an event when endpoint is being added or deleted"; reference "Network Platform Abstraction"; } revision "2017-10-10" { description "Add forwarding table object. Add endpoint-ip, br-name attributes to support MAC addresses learned from remote endpoint"; reference "Network Platform Abstraction"; } revision "2015-10-30" { description "Removed switch-id from key, updated some description"; reference "Network Platform Abstraction"; } revision "2015-05-13" { description "Updated key, added command request type, added source drop packet action"; reference "Network Platform Abstraction"; } revision "2014-12-31" { description "Initial revision"; reference "Network Platform Abstraction"; } typedef packet-action { type enumeration { enum "DROP" { value 1; description "Do not forward, drop the packet if this entry is hit"; } enum "FORWARD" { value 2; description "Forward the packet if this entry is hit"; } enum "TRAP" { value 3; description "Copy the packet to CPU if this entry is hit"; } enum "LOG" { value 4; description "Forward the packet and copy to the CPU if this entry is hit"; } enum "SOURCE_DROP" { value 5; description "Discard the packet if incoming source matches this entry"; } } description "Enumeration of all possible actions to be performed on the matched packets"; } typedef command-request-type { type enumeration { enum "CMD_TYPE_VLAN" { value 1; description "vlan specific command request"; } enum "CMD_TYPE_ADDRESS" { value 2; description "mac address specific command request"; } enum "CMD_TYPE_INTERFACE" { value 3; description "interface specific command request"; } enum "CMD_TYPE_COUNT" { value 4; description "command request based on count option"; } enum "CMD_TYPE_ALL" { value 5; description "command request for all details"; } } description "Enumeration of all possible request-type(s) to be used for 'show mac address-table'"; } typedef mac-event-type { type enumeration { enum "learnt" { value 1; description "MAC address entry was learnt in npu"; } enum "aged" { value 2; description "MAC address entry was aged out in npu"; } enum "flushed" { value 3; description "MAC address entry was deleted in npu"; } enum "moved" { value 4; description "MAC address entry was moved"; } } description "Enumeration of all possible states of an entry in the MAC address-table"; } typedef mac-flush-type { type enumeration { enum "port" { value 1; description "MAC address flush on the port"; } enum "vlan-port" { value 2; description "MAC address flush on the given vlan port combination. This flush type is for port which is part of 1q VLAN"; } enum "vlan" { value 3; description "MAC address flush on the given vlan"; } enum "all" { value 4; description "MAC address flush on all vlan/ports"; } enum "bridge" { value 5; description "MAC address flush on the given bridge"; } enum "bridge-endpoint-ip" { value 6; description "MAC address flush on the given bridge and endpoint ip address combination"; } enum "endpoint-ip" { value 7; description "MAC address flush on the given endpoint ip address from all bridge where given ip is an overlay endpoint for the bridge"; } enum "vlan-port-subport" { value 8; description "MAC address flush on the given subport which is a combination of VLAN id and port. This flush type is for port-vlan combination which is a subport of VLAN unaware(1d) bridge"; } enum "bridge-port" { value 9; description "MAC address flush on the given port which is a combination of bridge and port. This flush type is for untagged port which is a subport of VLAN unaware(1d) bridge"; } } description "Enumeration of all possible ways to clear MAC address-table"; } list table { key "vlan mac-address"; description "MAC address table list for VLAN aware flooding domain. Each entry is uniquely identified by VLAN/MAC address combination within a switch domain"; leaf switch-id { type base-cmn:logical-switch-id; status obsolete; description "Logical Switch to which this MAC entry belongs to"; } leaf-list npu-id { type base-cmn:npu-id; description "Optional subset of NPUs on which this MAC entry needs to be programmed. If this attribute is not specified then the MAC entry will be created in all the NPUs in the Logical switch to which the Entry belongs."; } leaf vlan { type base-cmn:vlan-id; description "VLAN ID to which MAC address entry belongs to in VLAN aware flooding domain. For VLAN unaware flooding domain it is the vlan id of tagged access port"; } leaf ifindex { type base-cmn:logical-ifindex; description "System wide unique identifier of the interface associated with this MAC entry. This will be the physical port or LAG ifindex"; } leaf ifname { type string; description "Interface name associated with this MAC entry"; } leaf mac-address { type base-cmn:mac-address; description "MAC Address configured with this entry"; } leaf static { type boolean; description "Whether the MAC entry is configured as static. It will not age out"; } leaf age-out-disable { type boolean; default "false"; description "The MAC entry is configured with age out disabled in the kernel. MAC move is allowed."; } leaf actions { type packet-action; description "Action for packet when this MAC entry is hit"; } leaf configure-os { type boolean; default "false"; description "If this entry needs to be configured in the OS"; } leaf configure-npu { type boolean; default "true"; description "If this entry needs to be configured in the npu. Default behaviour is to configure it in the NPU"; } leaf event-type { type mac-event-type; config false; description "When entry is published it will be published with the event type like learnt, aged, flushed"; } leaf publish { type boolean; default "false"; description "When entry is programmed by application in npu, if entry needs to be published"; } container endpoint-ip { description "Endpoint IP address for MAC address entries learned on remote endpoints"; leaf addr-family { type base-cmn:af-type; description "IP address family type"; } leaf addr { type base-cmn:ip-address; description "IPv4/IPv6 address"; } } // container endpoint-ip leaf br-name { type string; description "Bridge name where MAC address entry belongs."; } } // list table list forwarding-table { key "br-name mac-address"; description "MAC address table for VLAN unaware flooding domain. Each entry is uniquely identified by Bridge name/MAC address combination within a switch domain"; leaf switch-id { type base-cmn:logical-switch-id; status obsolete; description "Logical Switch to which this MAC entry belongs to"; } leaf-list npu-id { type base-cmn:npu-id; description "Optional subset of NPUs on which this MAC entry needs to be programmed. If this attribute is not specified then the MAC entry will be created in all the NPUs in the Logical switch to which the Entry belongs."; } leaf vlan { type base-cmn:vlan-id; description "VLAN ID to which MAC address entry belongs to in VLAN aware flooding domain. For VLAN unaware flooding domain it is the vlan id of tagged access port"; } leaf ifindex { type base-cmn:logical-ifindex; description "System wide unique identifier of the interface associated with this MAC entry. This will be the physical port or LAG ifindex"; } leaf ifname { type string; description "Interface name associated with this MAC entry"; } leaf mac-address { type base-cmn:mac-address; description "MAC Address configured with this entry"; } leaf static { type boolean; description "Whether the MAC entry is configured as static. It will not age out"; } leaf age-out-disable { type boolean; default "false"; description "The MAC entry is configured with age out disabled in the kernel. MAC move is allowed."; } leaf actions { type packet-action; description "Action for packet when this MAC entry is hit"; } leaf configure-os { type boolean; default "false"; description "If this entry needs to be configured in the OS"; } leaf configure-npu { type boolean; default "true"; description "If this entry needs to be configured in the npu. Default behaviour is to configure it in the NPU"; } leaf event-type { type mac-event-type; config false; description "When entry is published it will be published with the event type like learnt, aged, flushed"; } leaf publish { type boolean; default "false"; description "When entry is programmed by application in npu, if entry needs to be published"; } container endpoint-ip { description "Endpoint IP address for MAC address entries learned on remote endpoints"; leaf addr-family { type base-cmn:af-type; description "IP address family type"; } leaf addr { type base-cmn:ip-address; description "IPv4/IPv6 address"; } } // container endpoint-ip leaf br-name { type string; description "Bridge name where MAC address entry belongs."; } } // list forwarding-table list query { key "vlan mac-address"; description "MAC entry specific query list"; leaf switch-id { type base-cmn:logical-switch-id; status obsolete; description "Logical Switch to which this MAC entry belongs to"; } leaf-list npu-id { type base-cmn:npu-id; description "Optional subset of NPUs on which this MAC entry needs to be programmed. If this attribute is not specified then the MAC entry will be created in all the NPUs in the Logical switch to which the Entry belongs."; } leaf vlan { type base-cmn:vlan-id; description "VLAN ID to which MAC address entry belongs to in VLAN aware flooding domain. For VLAN unaware flooding domain it is the vlan id of tagged access port"; } leaf ifindex { type base-cmn:logical-ifindex; description "System wide unique identifier of the interface associated with this MAC entry. This will be the physical port or LAG ifindex"; } leaf ifname { type string; description "Interface name associated with this MAC entry"; } leaf mac-address { type base-cmn:mac-address; description "MAC Address configured with this entry"; } leaf static { type boolean; description "Whether the MAC entry is configured as static. It will not age out"; } leaf age-out-disable { type boolean; default "false"; description "The MAC entry is configured with age out disabled in the kernel. MAC move is allowed."; } leaf actions { type packet-action; description "Action for packet when this MAC entry is hit"; } leaf configure-os { type boolean; default "false"; description "If this entry needs to be configured in the OS"; } leaf configure-npu { type boolean; default "true"; description "If this entry needs to be configured in the npu. Default behaviour is to configure it in the NPU"; } leaf event-type { type mac-event-type; config false; description "When entry is published it will be published with the event type like learnt, aged, flushed"; } leaf publish { type boolean; default "false"; description "When entry is programmed by application in npu, if entry needs to be published"; } container endpoint-ip { description "Endpoint IP address for MAC address entries learned on remote endpoints"; leaf addr-family { type base-cmn:af-type; description "IP address family type"; } leaf addr { type base-cmn:ip-address; description "IPv4/IPv6 address"; } } // container endpoint-ip leaf br-name { type string; description "Bridge name where MAC address entry belongs."; } leaf request-type { type command-request-type; description "Command request type for data retrieval"; } leaf count { type uint32; description "Count based on command request type"; } } // list query container flush-management { description "To manage mac flush when interface status changes"; leaf enable { type boolean; default 'true'; description "To enable/disable auto flush of mac entries when interface state changes"; } } // container flush-management container list { description "This container holds the entries list."; list entries { key "br-name mac-address"; description "List of MAC entries to be published when event occurs in NPU. This will be published as a list."; leaf switch-id { type base-cmn:logical-switch-id; status obsolete; description "Logical Switch to which this MAC entry belongs to"; } leaf-list npu-id { type base-cmn:npu-id; description "Optional subset of NPUs on which this MAC entry needs to be programmed. If this attribute is not specified then the MAC entry will be created in all the NPUs in the Logical switch to which the Entry belongs."; } leaf vlan { type base-cmn:vlan-id; description "VLAN ID to which MAC address entry belongs to in VLAN aware flooding domain. For VLAN unaware flooding domain it is the vlan id of tagged access port"; } leaf ifindex { type base-cmn:logical-ifindex; description "System wide unique identifier of the interface associated with this MAC entry. This will be the physical port or LAG ifindex"; } leaf ifname { type string; description "Interface name associated with this MAC entry"; } leaf mac-address { type base-cmn:mac-address; description "MAC Address configured with this entry"; } leaf static { type boolean; description "Whether the MAC entry is configured as static. It will not age out"; } leaf age-out-disable { type boolean; default "false"; description "The MAC entry is configured with age out disabled in the kernel. MAC move is allowed."; } leaf actions { type packet-action; description "Action for packet when this MAC entry is hit"; } leaf configure-os { type boolean; default "false"; description "If this entry needs to be configured in the OS"; } leaf configure-npu { type boolean; default "true"; description "If this entry needs to be configured in the npu. Default behaviour is to configure it in the NPU"; } leaf event-type { type mac-event-type; config false; description "When entry is published it will be published with the event type like learnt, aged, flushed"; } leaf publish { type boolean; default "false"; description "When entry is programmed by application in npu, if entry needs to be published"; } container endpoint-ip { description "Endpoint IP address for MAC address entries learned on remote endpoints"; leaf addr-family { type base-cmn:af-type; description "IP address family type"; } leaf addr { type base-cmn:ip-address; description "IPv4/IPv6 address"; } } // container endpoint-ip leaf br-name { type string; description "Bridge name where MAC address entry belongs."; } } // list entries } // container list container flush-event { config false; description "MAC flush events to be published. This object is used only for publishing events."; list filter { description "List of MAC address-table flush events"; leaf vlan { type base-cmn:vlan-id; description "Vlan ID where mac flush is to be done"; } leaf ifindex { type base-cmn:logical-ifindex; description "System wide unique identifier of the interface where MAC flush is to be done."; } leaf ifname { type string; description "Interface name associated with this MAC entry"; } leaf br-name { type string; description "Bridge interface name to which MAC address entry belongs to"; } container endpoint-ip { description "Endpoint IP address for MAC address entries learned on remote endpoints"; leaf addr-family { type base-cmn:af-type; description "IP address family type"; } leaf addr { type base-cmn:ip-address; description "IPv4/IPv6 address"; } } // container endpoint-ip leaf all { type boolean; default "false"; description "By default only dynamic entries will be flushed. It this option is set then static and dynamic shall be flushed."; } leaf flush-type { type mac-flush-type; description "Type of the mac flush"; } leaf-list member-ifindex { type base-cmn:logical-ifindex; description "leaf list of member interface indexes which were affected by the flush"; } } // list filter } // container flush-event rpc flush { description "Flush the MAC addresses learned on flooding domain,interface, flooding domain/interface, interface/remote ip "; input { list filter { description "Flush input parameters which may include flooding domain name, interface name, flooding domain/interface name, interface/remote ip"; leaf vlan { type base-cmn:vlan-id; description "Vlan ID where mac flush is to be done"; } leaf ifindex { type base-cmn:logical-ifindex; description "System wide unique identifier of the interface where MAC flush is to be done."; } leaf ifname { type string; description "Interface name associated with this MAC entry"; } leaf br-name { type string; description "Bridge interface name to which MAC address entry belongs to"; } container endpoint-ip { description "Endpoint IP address for MAC address entries learned on remote endpoints"; leaf addr-family { type base-cmn:af-type; description "IP address family type"; } leaf addr { type base-cmn:ip-address; description "IPv4/IPv6 address"; } } // container endpoint-ip leaf all { type boolean; default "false"; description "By default only dynamic entries will be flushed. It this option is set then static and dynamic shall be flushed."; } leaf flush-type { type mac-flush-type; description "Type of the mac flush"; } } // list filter } } // rpc flush container tunnel-endpoint-event { description "Event to be published when a new tunnel endpoint is being added or existing is being deleted."; container ip { description "IP address of the endpoint tunnel being added or deleted."; leaf addr-family { type base-cmn:af-type; description "IP address family type"; } leaf addr { type base-cmn:ip-address; description "IPv4/IPv6 address"; } } // container ip leaf interface-name { type string; description "Interface name of tunnel endpoint."; } leaf flooding-enable { type boolean; default 'false'; description "Enable flooding to this tunnel endpoint."; } } // container tunnel-endpoint-event } // module dell-base-l2-mac
© 2023 YumaWorks, Inc. All rights reserved.