Skip to content
Draft
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
2 changes: 2 additions & 0 deletions config/transformer/models_list
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ openconfig-interfaces-annot.yang
openconfig-interfaces.yang
openconfig-mclag-annot.yang
openconfig-mclag.yang
openconfig-p4rt.yang
openconfig-sampling-sflow-annot.yang
openconfig-sampling-sflow.yang
openconfig-system-annot.yang
Expand All @@ -16,3 +17,4 @@ gnsi-authz.yang
gnsi-pathz.yang
gnsi-certz.yang
gnsi-credentialz.yang
sonic-port.yang
136 changes: 136 additions & 0 deletions models/yang/annotations/openconfig-interfaces-annot.yang
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ module openconfig-interfaces-annot {
import openconfig-vlan {prefix oc-vlan; }
import openconfig-if-ip {prefix oc-ip; }
import openconfig-if-aggregate { prefix oc-lag; }
import openconfig-p4rt { prefix "p4rt-if"; }
import openconfig-platform-port { prefix "oc-plat-port"; }
import openconfig-platform-transceiver { prefix "oc-plat-xcvr"; }

deviation /oc-intf:interfaces/oc-intf:interface {
deviate add {
Expand Down Expand Up @@ -277,4 +280,137 @@ module openconfig-interfaces-annot {
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:config/p4rt-if:id {
deviate add {
sonic-ext:field-transformer "pins_if_id_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/p4rt-if:id {
deviate add {
sonic-ext:field-transformer "pins_if_id_xfmr";
sonic-ext:table-name "P4RT_PORT_ID_TABLE";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-plat-port:hardware-port {
deviate add {
sonic-ext:field-transformer "intf_hardware_port_xfmr";
sonic-ext:field-name "index";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-plat-xcvr:transceiver {
deviate add {
sonic-ext:field-transformer "intf_transceiver_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-plat-xcvr:physical-channel {
deviate add {
sonic-ext:field-transformer "intf_physical_channel_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:oper-status {
deviate add {
sonic-ext:field-transformer "intf_oper_status_xfmr";
sonic-ext:composite-field-names "PORT_TABLE:oper_status,PORT_TABLE:presence,PORT_TABLE:loopback_mode,PORT_TABLE:under_test,PORT_TABLE:unusable,MGMT_PORT_TABLE:oper_status,LAG_TABLE:oper_status,LAG_TABLE:under_test,BRIDGE_TABLE:oper_status,INTF_TABLE:oper_status";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-eth:ethernet/oc-eth:state/oc-eth:port-speed {
deviate add {
sonic-ext:field-transformer "intf_eth_port_speed_xfmr";
sonic-ext:field-name "speed";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:config/oc-intf:enabled {
deviate add {
sonic-ext:field-transformer "intf_enabled_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:enabled {
deviate add {
sonic-ext:field-transformer "intf_enabled_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:loopback-mode {
deviate add {
sonic-ext:field-transformer "intf_loopback_mode_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:config/oc-intf:loopback-mode {
deviate add {
sonic-ext:field-transformer "intf_loopback_mode_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:config/oc-intf:mtu {
deviate add {
sonic-ext:field-transformer "intf_mtu_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:mtu {
deviate add {
sonic-ext:field-transformer "intf_mtu_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:management {
deviate add {
sonic-ext:field-transformer "intf_mgmt_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:cpu {
deviate add {
sonic-ext:field-transformer "intf_cpu_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:description {
deviate add {
sonic-ext:field-transformer "intf_description_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-eth:ethernet/oc-eth:state/oc-eth:mac-address {
deviate add {
sonic-ext:field-transformer "intf_eth_mac_address_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:counters {
deviate add {
sonic-ext:subtree-transformer "intf_get_counters_xfmr";
sonic-ext:db-name "COUNTERS_DB";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-eth:ethernet/oc-eth:state/oc-eth:counters {
deviate add {
sonic-ext:db-name "COUNTERS_DB";
sonic-ext:subtree-transformer "intf_get_ether_counters_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:subinterfaces/oc-intf:subinterface/oc-ip:ipv4/oc-ip:state/oc-ip:counters {
deviate add {
sonic-ext:db-name "COUNTERS_DB";
sonic-ext:subtree-transformer "intf_ipv4_counters_xfmr";
}
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:subinterfaces/oc-intf:subinterface/oc-ip:ipv6/oc-ip:state/oc-ip:counters {
deviate add {
sonic-ext:db-name "COUNTERS_DB";
sonic-ext:subtree-transformer "intf_ipv6_counters_xfmr";
}
}
}
28 changes: 0 additions & 28 deletions models/yang/extensions/openconfig-interfaces-deviation.yang
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,6 @@ module openconfig-interfaces-deviation {
reference "0.1.0";
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:config/oc-intf:loopback-mode {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:config/oc-vlan:tpid {
deviate not-supported;
}
Expand All @@ -45,14 +41,6 @@ module openconfig-interfaces-deviation {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:loopback-mode {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:oper-status {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:last-change {
deviate not-supported;
}
Expand All @@ -77,10 +65,6 @@ module openconfig-interfaces-deviation {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:counters/oc-intf:in-fcs-errors {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:state/oc-intf:counters/oc-intf:carrier-transitions {
deviate not-supported;
}
Expand Down Expand Up @@ -145,14 +129,6 @@ module openconfig-interfaces-deviation {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:subinterfaces/oc-intf:subinterface/oc-ip:ipv4/oc-ip:config {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:subinterfaces/oc-intf:subinterface/oc-ip:ipv4/oc-ip:state {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:subinterfaces/oc-intf:subinterface/oc-ip:ipv6/oc-ip:addresses/oc-ip:address/oc-ip:state/oc-ip:origin {
deviate not-supported;
}
Expand Down Expand Up @@ -207,10 +183,6 @@ module openconfig-interfaces-deviation {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-intf:subinterfaces/oc-intf:subinterface/oc-ip:ipv6/oc-ip:state/oc-ip:counters {
deviate not-supported;
}

deviation /oc-intf:interfaces/oc-intf:interface/oc-eth:ethernet/oc-eth:config/oc-eth:mac-address {
deviate not-supported;
}
Expand Down
4 changes: 2 additions & 2 deletions models/yang/openconfig-interfaces.yang
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ module openconfig-interfaces {
import openconfig-yang-types { prefix oc-yang; }
import openconfig-types { prefix oc-types; }
import openconfig-extensions { prefix oc-ext; }
import openconfig-transport-types { prefix oc-opt-types; }

// meta
organization "OpenConfig working group";
Expand Down Expand Up @@ -371,8 +372,7 @@ module openconfig-interfaces {
}

leaf loopback-mode {
type boolean;
default false;
type oc-opt-types:loopback-mode-type;
description
"When set to true, the interface is logically looped back,
such that packets that are forwarded via the interface
Expand Down
69 changes: 69 additions & 0 deletions models/yang/openconfig-p4rt.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
module openconfig-p4rt {
yang-version "1";

prefix "oc-p4rt";

namespace "http://openconfig.net/yang/p4rt";

import openconfig-extensions { prefix oc-ext; }
import openconfig-interfaces { prefix oc-if; }

organization
"OpenConfig Working Group";

contact
"www.openconfig.net";

description
"This module defines a set of extensions that provide P4Runtime (P4RT)
specific extensions to the OpenConfig data models. Specifically, these
parameters for configuration and state provide extensions that control
the P4RT service, or allow it to be used alongside other OpenConfig
data models.

The P4RT protocol specification is linked from https://p4.org/specs/
under the P4Runtime heading.";

oc-ext:openconfig-version "0.1.0";

revision 2021-04-06 {
description
"Initial revision.";
reference "0.1.0";
}

grouping p4rt-interface-config {
description
"Interface-specific configuration that is applicable to devices that
are running the P4RT service.";

leaf id {
type uint32;
description
"The numeric identifier used by the controller to address the interface.
This ID is assigned by an external-to-the-device entity (e.g., an SDN
management system) to establish an externally deterministic numeric
reference for the interface. The programming entity must ensure that
the ID is unique within the required context.

Note that this identifier is used only when a numeric reference to the
interface is required, it does not replace the unique name assigned to
the interface.";
}
}

augment "/oc-if:interfaces/oc-if:interface/oc-if:config" {
description
"Add interface-specific intended configuration for P4RT.";

uses p4rt-interface-config;
}

augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
description
"Add interface-specific applied configuration for P4RT.";

uses p4rt-interface-config;
}
}

35 changes: 35 additions & 0 deletions models/yang/sonic/sonic-port.yang
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ module sonic-port {
prefix cmn;
}

import ietf-yang-types {
prefix yang;
}

import sonic-common {
prefix scommon;
}

organization
"SONiC";

Expand All @@ -20,6 +28,15 @@ module sonic-port {
"Initial revision.";
}

typedef loopback-mode-type {
type enumeration {
enum none;
enum mac_local;
enum mac_remote;
enum phy_local;
enum phy_remote;
}
}

container sonic-port {

Expand Down Expand Up @@ -78,6 +95,14 @@ module sonic-port {
default 9100;
}

leaf oper_status {
type scommon:oper-status;
}

leaf id {
type uint32;
}

leaf lanes {
type string;
mandatory true;
Expand All @@ -87,6 +112,16 @@ module sonic-port {
type cmn:admin-status;
default "down";
}

leaf loopback-mode {
type loopback-mode-type;
default none;
}

leaf mac-address {
type yang:mac-address;
}

}
}
}
Expand Down
Loading
Loading