Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions release/models/aft/openconfig-aft-ipv4-multicast.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
submodule openconfig-aft-ipv4-multicast {
belongs-to "openconfig-aft" {
prefix "oc-aft";
}

import openconfig-extensions { prefix "oc-ext"; }
import openconfig-inet-types { prefix "oc-inet"; }
import openconfig-yang-types { prefix "oc-yang"; }

// Include common cross-AFT groupings from the common submodule.
include openconfig-aft-common;

organization
"OpenConfig working group";

contact
"OpenConfig working group
www.openconfig.net";

description
"Submodule containing definitions of groupings for the abstract
forwarding table for IPv4 multicast.";

oc-ext:openconfig-version "0.1.0";

revision "2026-05-05" {
description
"Initial revision of the IPv4 multicast abstract forwarding table.";
reference "0.1.0";
}

grouping aft-ipv4-multicast-structural {
description
"Structural grouping defining the schema for the IPv4 multicast
abstract forwarding table.";

list ipv4-multicast-entry {
key "source-address group-address";

oc-ext:telemetry-atomic;
description
"List of the IPv4 multicast entries within the abstract
forwarding table. Each entry is keyed by the (source, group)
pair. The source-address 0.0.0.0 represents any-source (*,G)
entries used for shared-tree and BiDir RP forwarding.";

leaf source-address {
type leafref {
path "../state/source-address";
}
description
"Reference to the IPv4 source address. Use 0.0.0.0 for
any-source (*,G) entries.";
}

leaf group-address {
type leafref {
path "../state/group-address";
}
description
"Reference to the IPv4 multicast group address.";
}

container state {
config false;
description
"Operational state parameters for the IPv4 multicast AFT
entry.";
uses aft-ipv4-multicast-entry-state;
}

}
}

grouping aft-ipv4-multicast-entry-state {
description
"Operational state parameters for the IPv4 multicast entry.";

leaf source-address {
type oc-inet:ipv4-address;
description
"The IPv4 source address for this multicast entry. The value
0.0.0.0 represents any-source (*,G) entries.";
}

leaf group-address {
type oc-inet:ipv4-address;
description
"The IPv4 multicast group address for this entry.";
}

uses aft-common-entry-state;
uses aft-common-ip-state;

leaf rpf-discards {
type oc-yang:counter64;
description
"The number of packets discarded because the arrival interface
did not match the reverse-path interface programmed for this
entry.";
}

leaf reverse-path-neighbor {
type oc-inet:ipv4-address;
description
"The IP address of the upstream neighbor used as the
reverse-path next-hop for this multicast entry. For
directly-connected sources this leaf may be absent.";
}
}
}
111 changes: 111 additions & 0 deletions release/models/aft/openconfig-aft-ipv6-multicast.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
submodule openconfig-aft-ipv6-multicast {
belongs-to "openconfig-aft" {
prefix "oc-aft";
}

import openconfig-extensions { prefix "oc-ext"; }
import openconfig-inet-types { prefix "oc-inet"; }
import openconfig-yang-types { prefix "oc-yang"; }

// Include common cross-AFT groupings from the common submodule.
include openconfig-aft-common;

organization
"OpenConfig working group";

contact
"OpenConfig working group
www.openconfig.net";

description
"Submodule containing definitions of groupings for the abstract
forwarding table for IPv6 multicast.";

oc-ext:openconfig-version "0.1.0";

revision "2026-05-05" {
description
"Initial revision of the IPv6 multicast abstract forwarding table.";
reference "0.1.0";
}

grouping aft-ipv6-multicast-structural {
description
"Structural grouping defining the schema for the IPv6 multicast
abstract forwarding table.";

list ipv6-multicast-entry {
key "source-address group-address";

oc-ext:telemetry-atomic;
description
"List of the IPv6 multicast entries within the abstract
forwarding table. Each entry is keyed by the (source, group)
pair. The source-address :: represents any-source (*,G)
entries used for shared-tree and BiDir RP forwarding.";

leaf source-address {
type leafref {
path "../state/source-address";
}
description
"Reference to the IPv6 source address. Use :: for
any-source (*,G) entries.";
}

leaf group-address {
type leafref {
path "../state/group-address";
}
description
"Reference to the IPv6 multicast group address.";
}

container state {
config false;
description
"Operational state parameters for the IPv6 multicast AFT
entry.";
uses aft-ipv6-multicast-entry-state;
}

}
}

grouping aft-ipv6-multicast-entry-state {
description
"Operational state parameters for the IPv6 multicast entry.";

leaf source-address {
type oc-inet:ipv6-address;
description
"The IPv6 source address for this multicast entry. The value
:: represents any-source (*,G) entries.";
}

leaf group-address {
type oc-inet:ipv6-address;
description
"The IPv6 multicast group address for this entry.";
}

uses aft-common-entry-state;
uses aft-common-ip-state;

leaf rpf-discards {
type oc-yang:counter64;
description
"The number of packets discarded because the arrival interface
did not match the reverse-path interface programmed for this
entry.";
}

leaf reverse-path-neighbor {
type oc-inet:ipv6-address;
description
"The IPv6 address of the upstream neighbor used as the
reverse-path next-hop for this multicast entry. For
directly-connected sources this leaf may be absent.";
}
}
}
143 changes: 143 additions & 0 deletions release/models/aft/openconfig-aft-mpls-multicast.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
submodule openconfig-aft-mpls-multicast {
belongs-to "openconfig-aft" {
prefix "oc-aft";
}

import openconfig-extensions { prefix "oc-ext"; }
import openconfig-mpls-types { prefix "oc-mplst"; }

// Include common cross-AFT groupings from the common submodule.
include openconfig-aft-common;

organization
"OpenConfig working group";

contact
"OpenConfig working group
www.openconfig.net";

description
"Submodule containing definitions of groupings for the abstract
forwarding table for MPLS multicast (P2MP) label forwarding.

This AFT type represents the forwarding state of MPLS P2MP transit
nodes, such as those running mLDP or RSVP-TE P2MP. At these nodes,
packets arrive with a specific incoming MPLS label and are replicated
to one or more outgoing interfaces, each potentially with a different
label stack. There is no IP-layer (source, group) state at transit
nodes; that state is captured in the ipv4-multicast and
ipv6-multicast AFT types at PE nodes.";

oc-ext:openconfig-version "0.1.0";

revision "2026-05-05" {
description
"Initial revision of the MPLS multicast abstract forwarding table.";
reference "0.1.0";
}

grouping aft-mpls-multicast-structural {
description
"Structural grouping defining the schema for the MPLS multicast
abstract forwarding table.";

list multicast-label-entry {
key "label";

oc-ext:telemetry-atomic;
description
"List of the MPLS multicast entries within the abstract
forwarding table. This list is keyed by the top-most incoming
MPLS label matched on the ingress packet.";

leaf label {
type leafref {
path "../state/label";
}
description
"Reference to the top-most MPLS label matched by the
entry.";
}

container state {
config false;
description
"Operational state parameters for the MPLS multicast AFT
entry.";
uses aft-mpls-multicast-entry-state;
}

uses aft-mpls-multicast-entry-label-state;
}
}

grouping aft-mpls-multicast-entry-state {
description
"Operational state parameters for the MPLS multicast entry.";

leaf label {
type oc-mplst:mpls-label;
description
"The top-most MPLS label that is matched on the ingress packet
to select this forwarding entry.";
}

uses aft-common-entry-state;
uses aft-common-install-protocol;
}

grouping aft-mpls-multicast-entry-label-state {
description
"Parameters relating to the MPLS label stack for a multicast
forwarding entry.";

container decap-mpls-label-stacks {
description
"Surrounding container for the set of labels to be decapsulated
from the incoming packet before replication.";

list decap-mpls-label-stack {
ordered-by user;
description
"The MPLS label stack to be popped from the ingress packet
before replication. The stack is encoded as an ordered list
such that the first entry is the label that is outer-most
(i.e., furthest from the bottom of the stack). This encoding
supports duplicate label values.

A swap operation is reflected by entries in this
decap-mpls-label-stack and the encap-mpls-label-stack on
the associated next-hops.";

key "id";

leaf id {
type leafref {
path "../state/id";
}
description
"Reference to the list key.";
}

container state {
config false;
description
"Operational state parameters for the decapsulated label
entry.";

leaf id {
type uint8;
description
"Index identifying this label within the stack.";
}

leaf label {
type oc-mplst:mpls-label;
description
"MPLS label value.";
}
}
}
}
}
}
Loading