initial realease
This commit is contained in:
60
irt/irt-eden-usecases.yang
Normal file
60
irt/irt-eden-usecases.yang
Normal file
@@ -0,0 +1,60 @@
|
||||
module irt-eden-usecases {
|
||||
yang-version 1.1;
|
||||
namespace urn:fr:irt:eden:yang:irt-eden-usecases;
|
||||
prefix irtuc;
|
||||
|
||||
import ietf-network {
|
||||
prefix nw;
|
||||
}
|
||||
|
||||
import irt-types {
|
||||
prefix irtty;
|
||||
}
|
||||
|
||||
organization
|
||||
"IRT Saint Exupéry - Toulouse";
|
||||
|
||||
contact
|
||||
"IRT Saint Exupéry - Toulouse
|
||||
EDEN project team
|
||||
<mailto:embedded-systems@irt-saintexupery.com>";
|
||||
|
||||
description
|
||||
"TSN network use cases definition for IRT EDEN project";
|
||||
|
||||
revision 2023-04-28 {
|
||||
description
|
||||
"Initial revision.";
|
||||
}
|
||||
|
||||
container usecases {
|
||||
description "Set of use cases";
|
||||
list usecase {
|
||||
description
|
||||
"A use case is composed of a network (topology, data flows,
|
||||
TSN configuration of the equipments), a duration (the duration
|
||||
of the test), etc...";
|
||||
|
||||
key "usecase-id";
|
||||
|
||||
leaf usecase-id {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"Identifies a usecase.";
|
||||
}
|
||||
|
||||
leaf network-ref {
|
||||
type leafref {
|
||||
path "/nw:networks/nw:network/nw:network-id";
|
||||
}
|
||||
}
|
||||
|
||||
leaf duration {
|
||||
type irtty:tDuration;
|
||||
description "Duration of the use case execution.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
58
irt/irt-frer.yang
Normal file
58
irt/irt-frer.yang
Normal file
@@ -0,0 +1,58 @@
|
||||
module irt-frer {
|
||||
yang-version 1.1;
|
||||
namespace urn:fr:irt:eden:yang:irt-frer;
|
||||
|
||||
prefix irtfrer;
|
||||
|
||||
import ieee802-dot1cb-stream-identification
|
||||
{
|
||||
prefix dot1cb-sid;
|
||||
revision-date
|
||||
"2021-05-06";
|
||||
}
|
||||
|
||||
import ieee802-dot1cb-frer
|
||||
{
|
||||
prefix dot1cb-frer;
|
||||
revision-date
|
||||
"2021-05-06";
|
||||
}
|
||||
|
||||
import ietf-network {
|
||||
prefix nw;
|
||||
revision-date
|
||||
"2018-02-26";
|
||||
}
|
||||
|
||||
organization
|
||||
"IRT Saint Exupéry - Toulouse";
|
||||
|
||||
contact
|
||||
"IRT Saint Exupéry - Toulouse
|
||||
EDEN project team
|
||||
<mailto:embedded-systems@irt-saintexupery.com>";
|
||||
|
||||
description
|
||||
"This module is containing augments to adapt IEEE802.1CB model to a whole network.";
|
||||
|
||||
augment "/dot1cb-sid:stream-identity" {
|
||||
description
|
||||
"Addtition a a node-ref, to associate a stream-identity to a node in the network.";
|
||||
|
||||
uses nw:node-ref;
|
||||
}
|
||||
|
||||
augment "/dot1cb-frer:frer/dot1cb-frer:sequence-generation" {
|
||||
description
|
||||
"Addtition a a node-ref, to associate a sequence-generation to a node in the network.";
|
||||
|
||||
uses nw:node-ref;
|
||||
}
|
||||
|
||||
augment "/dot1cb-frer:frer/dot1cb-frer:sequence-recovery" {
|
||||
description
|
||||
"Addtition a a node-ref, to associate a sequence-recovery to a node in the network.";
|
||||
|
||||
uses nw:node-ref;
|
||||
}
|
||||
}
|
||||
66
irt/irt-interface.yang
Normal file
66
irt/irt-interface.yang
Normal file
@@ -0,0 +1,66 @@
|
||||
module irt-interface {
|
||||
yang-version 1.1;
|
||||
namespace urn:fr:irt:eden:yang:irt-interface;
|
||||
prefix irtif;
|
||||
|
||||
import ietf-network-topology {
|
||||
prefix nt;
|
||||
revision-date
|
||||
"2018-02-26";
|
||||
}
|
||||
|
||||
import ietf-interfaces {
|
||||
prefix if;
|
||||
revision-date
|
||||
"2018-02-20";
|
||||
}
|
||||
|
||||
import ieee802-types {
|
||||
prefix ieee;
|
||||
revision-date
|
||||
"2020-10-23";
|
||||
}
|
||||
|
||||
import irt-types {
|
||||
prefix irtty;
|
||||
}
|
||||
|
||||
organization
|
||||
"IRT Saint Exupéry - Toulouse";
|
||||
|
||||
contact
|
||||
"IRT Saint Exupéry - Toulouse
|
||||
EDEN project team
|
||||
<mailto:embedded-systems@irt-saintexupery.com>";
|
||||
|
||||
description
|
||||
"This module is containing augments to complete the standard IETF interface.";
|
||||
|
||||
revision 2023-04-28 {
|
||||
description
|
||||
"Initial revision.";
|
||||
}
|
||||
|
||||
augment "/if:interfaces/if:interface" {
|
||||
description
|
||||
"Adds reference to the topology, and identifier for operating
|
||||
system / management firmware.";
|
||||
uses nt:tp-ref;
|
||||
leaf bench-interface-id {
|
||||
description
|
||||
"Identifies the network interface as seen from inside the node.
|
||||
For example eno0, eth0, enp1s0 are typical names for Linux";
|
||||
type string;
|
||||
}
|
||||
|
||||
leaf mac-address {
|
||||
description "MAC address of the interface";
|
||||
type ieee:mac-address;
|
||||
}
|
||||
|
||||
leaf chipset {
|
||||
description "The hardware chipset reference for this interface";
|
||||
type irtty:tIfChipset;
|
||||
}
|
||||
}
|
||||
}
|
||||
51
irt/irt-ptp.yang
Normal file
51
irt/irt-ptp.yang
Normal file
@@ -0,0 +1,51 @@
|
||||
module irt-ptp {
|
||||
yang-version 1.1;
|
||||
namespace urn:fr:irt:eden:yang:irt-ptp;
|
||||
prefix irtptp;
|
||||
|
||||
import ieee1588-ptp {
|
||||
prefix ptp;
|
||||
revision-date
|
||||
"2022-08-30";
|
||||
}
|
||||
|
||||
import ietf-network {
|
||||
prefix nw;
|
||||
revision-date
|
||||
"2018-02-26";
|
||||
}
|
||||
import ietf-network-topology {
|
||||
prefix nt;
|
||||
revision-date
|
||||
"2018-02-26";
|
||||
}
|
||||
|
||||
organization
|
||||
"IRT Saint Exupéry - Toulouse";
|
||||
|
||||
contact
|
||||
"IRT Saint Exupéry - Toulouse
|
||||
EDEN project team
|
||||
<mailto:embedded-systems@irt-saintexupery.com>";
|
||||
|
||||
description
|
||||
"This module is containing augments to complete the standard
|
||||
IEEE 1588 PTP model, for association with the ietf topology model.";
|
||||
|
||||
revision 2023-05-04 {
|
||||
description
|
||||
"Initial revision.";
|
||||
}
|
||||
|
||||
augment "/ptp:ptp/ptp:instances/ptp:instance/ptp:ports/ptp:port" {
|
||||
description
|
||||
"Adds the reference the termination point in the topology.";
|
||||
uses nt:tp-ref;
|
||||
}
|
||||
|
||||
augment "/ptp:ptp/ptp:instances/ptp:instance" {
|
||||
description
|
||||
"Adds the reference the termination point in the topology.";
|
||||
uses nw:node-ref;
|
||||
}
|
||||
}
|
||||
172
irt/irt-topology.yang
Normal file
172
irt/irt-topology.yang
Normal file
@@ -0,0 +1,172 @@
|
||||
module irt-topology {
|
||||
yang-version 1.1;
|
||||
namespace urn:fr:irt:eden:yang:irt-topology;
|
||||
|
||||
prefix irtto;
|
||||
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
revision-date
|
||||
"2013-07-15";
|
||||
}
|
||||
|
||||
import ietf-network {
|
||||
prefix nw;
|
||||
revision-date
|
||||
"2018-02-26";
|
||||
}
|
||||
|
||||
import ietf-network-topology {
|
||||
prefix nt;
|
||||
revision-date
|
||||
"2018-02-26";
|
||||
}
|
||||
|
||||
import irt-types {
|
||||
prefix irtty ;
|
||||
}
|
||||
|
||||
organization
|
||||
"IRT Saint Exupéry - Toulouse";
|
||||
|
||||
contact
|
||||
"IRT Saint Exupéry - Toulouse
|
||||
EDEN project team
|
||||
<mailto:embedded-systems@irt-saintexupery.com>";
|
||||
|
||||
description
|
||||
"This module is containing augments to complete the standard IETF topology.";
|
||||
|
||||
augment "/nw:networks/nw:network" {
|
||||
description
|
||||
"Improvement of the network implementation";
|
||||
|
||||
leaf project-mode {
|
||||
description
|
||||
"Project mode like Automotive, Aeronautic or Spatial";
|
||||
type string;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/nw:networks/nw:network/nw:node" {
|
||||
description
|
||||
"Improvement of the node implementation";
|
||||
|
||||
leaf transmission-capacity {
|
||||
description
|
||||
"Data rate processing capacity for transmission";
|
||||
type irtty:tThroughputMbps ;
|
||||
}
|
||||
|
||||
leaf manufacturer-reference {
|
||||
description
|
||||
"Manufaturer reference of the equipment";
|
||||
type irtty:tManufacturerRefence;
|
||||
}
|
||||
|
||||
leaf node-type {
|
||||
type irtty:tNodeType;
|
||||
}
|
||||
|
||||
leaf bench-node-id {
|
||||
type string;
|
||||
description
|
||||
"Uniquely identifies a node within the IRT hardware test bench network.";
|
||||
}
|
||||
|
||||
leaf management-host {
|
||||
type inet:host;
|
||||
description
|
||||
"IP address (as host name or in dotted notation) of the management
|
||||
interface of the node.";
|
||||
}
|
||||
}
|
||||
|
||||
augment "/nw:networks/nw:network/nw:node" {
|
||||
description
|
||||
"Improvement of the node implementation with behavioral properties";
|
||||
|
||||
leaf supports-preemption {
|
||||
type boolean;
|
||||
}
|
||||
leaf supports-TAS {
|
||||
type boolean;
|
||||
}
|
||||
leaf supports-QCF {
|
||||
type boolean;
|
||||
}
|
||||
leaf supports-ATS {
|
||||
type boolean;
|
||||
}
|
||||
leaf supports-CBS {
|
||||
type boolean;
|
||||
}
|
||||
leaf supports-FRER {
|
||||
type boolean;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/nw:networks/nw:network/nw:node" {
|
||||
description
|
||||
"Improvement of the node implementation with switches properties";
|
||||
|
||||
leaf memory {
|
||||
type irtty:tDataByte;
|
||||
}
|
||||
leaf memory-management-policy {
|
||||
type irtty:tMemoryManagementPolicy;
|
||||
}
|
||||
leaf storage-policy {
|
||||
type irtty:tStoragePolicy;
|
||||
}
|
||||
leaf tech-latency-min {
|
||||
type irtty:tDurationMicro;
|
||||
}
|
||||
leaf tech-latency-max {
|
||||
type irtty:tDurationMicro;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/nw:networks/nw:network/nt:link" {
|
||||
description
|
||||
"Improvement of the link implementation";
|
||||
leaf transmission-capacity {
|
||||
type irtty:tThroughputMbps ;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/nw:networks/nw:network" {
|
||||
description
|
||||
"Add of some network global configurations.";
|
||||
leaf physical-overhead {
|
||||
type irtty:tDataByte ;
|
||||
description
|
||||
"The phycical overhead in bytes. Shall be 20 bytes.";
|
||||
}
|
||||
|
||||
leaf mac-overhead {
|
||||
type irtty:tDataByte ;
|
||||
description
|
||||
"The mac overhead in bytes. Shall be 22 bytes.";
|
||||
}
|
||||
|
||||
leaf protocol-overhead {
|
||||
description
|
||||
"The protocol overhead in bytes. This field is used if the
|
||||
network uses a single protocol.";
|
||||
type irtty:tDataByte ;
|
||||
}
|
||||
|
||||
leaf minimal-payload {
|
||||
description
|
||||
"The minimal payload of a frame";
|
||||
type irtty:tDataByte ;
|
||||
}
|
||||
|
||||
leaf maximal-payload {
|
||||
description
|
||||
"The maximal payload of a frame";
|
||||
type irtty:tDataByte ;
|
||||
}
|
||||
}
|
||||
}
|
||||
398
irt/irt-traffic.yang
Normal file
398
irt/irt-traffic.yang
Normal file
@@ -0,0 +1,398 @@
|
||||
module irt-traffic {
|
||||
yang-version 1.1;
|
||||
namespace urn:fr:irt:eden:yang:irt-traffic;
|
||||
prefix irttf;
|
||||
|
||||
import ietf-network {
|
||||
prefix nw;
|
||||
revision-date
|
||||
"2018-02-26";
|
||||
}
|
||||
|
||||
import ietf-interfaces {
|
||||
prefix if;
|
||||
revision-date
|
||||
"2018-02-20";
|
||||
}
|
||||
|
||||
import irt-types {
|
||||
prefix irtty;
|
||||
}
|
||||
|
||||
organization
|
||||
"IRT Saint Exupéry - Toulouse";
|
||||
|
||||
contact
|
||||
"IRT Saint Exupéry - Toulouse
|
||||
EDEN project team
|
||||
<mailto:embedded-systems@irt-saintexupery.com>";
|
||||
|
||||
description
|
||||
"This module is containing a whole set of artifacts in order to describe the traffic.";
|
||||
|
||||
revision 2023-04-28 {
|
||||
description
|
||||
"Initial revision.";
|
||||
}
|
||||
|
||||
typedef tBenchGenerator {
|
||||
type enumeration {
|
||||
enum automatic {
|
||||
description
|
||||
"The traffic is to be automatically generated,
|
||||
based on its characteristics (periodic, burst, protocol,...),
|
||||
for example with trafgen.
|
||||
No parameter is used in that case.";
|
||||
}
|
||||
enum manual {
|
||||
description
|
||||
"The traffic must not automatically generated:
|
||||
the operator has to generate the traffic for this
|
||||
flow manually.
|
||||
No parameter is used in that case.";
|
||||
}
|
||||
enum command {
|
||||
description
|
||||
"One parameter is used, and is the command to execute
|
||||
remotely on the emitter node.";
|
||||
}
|
||||
enum script {
|
||||
description
|
||||
"One parameter is used, and is the path to a shell script
|
||||
to upload and execute remotely on the emitter node";
|
||||
}
|
||||
enum mediaStream {
|
||||
description
|
||||
"Two parameter are used, both are a path to a shell script.
|
||||
The first is to be uploaded and executed remotely on the talker node,
|
||||
the second is to upload and executed remotely on the emitter node";
|
||||
}
|
||||
enum pcapReplay {
|
||||
description
|
||||
"Two parameters are used.
|
||||
The first is the path to a pcap file to upload and replay on
|
||||
the emitter node.
|
||||
The second contains the pcap replay utility parameters, if needed.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
container traffics {
|
||||
list Traffic {
|
||||
key "name";
|
||||
leaf name {
|
||||
type string;
|
||||
}
|
||||
|
||||
container flows {
|
||||
list Flow {
|
||||
key "name";
|
||||
leaf name {
|
||||
type string;
|
||||
}
|
||||
|
||||
leaf vlan-id {
|
||||
type uint16 {
|
||||
range "0..4094";
|
||||
}
|
||||
description "VLAN identifier. Special value 0 means no QTAG.
|
||||
Note: the presence/absence of QTAG is accounted in protocol-overhead";
|
||||
}
|
||||
|
||||
leaf payload-min {
|
||||
type irtty:tDataByte;
|
||||
description "Minimal number of bytes for the payload.
|
||||
Note: it is the payload at system/functional level, not the Ethernet payload. As a consequence,
|
||||
if this payload size is 0, the Ethernet payload will be padded up to minimal Ethernet
|
||||
PDU size, 42 bytes";
|
||||
}
|
||||
|
||||
leaf payload-max {
|
||||
type irtty:tDataByte;
|
||||
description "Maximal number of bytes for the payload.
|
||||
Note: it is the payload at system/functional level, not the Ethernet payload. As a consequence,
|
||||
if this payload size is 0, the Ethernet payload will be padded up to minimal Ethernet
|
||||
PDU size, 42 bytes";
|
||||
}
|
||||
|
||||
leaf protocol-id {
|
||||
type leafref {
|
||||
path "/traffics/Traffic/protocols/Protocol/name";
|
||||
}
|
||||
}
|
||||
|
||||
leaf protocol-overhead {
|
||||
type irtty:tDataByte;
|
||||
}
|
||||
|
||||
leaf burst {
|
||||
type irtty:tDataByte;
|
||||
}
|
||||
|
||||
leaf periodic {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf minimal-inter-arrival-time {
|
||||
type irtty:tDurationMilli;
|
||||
}
|
||||
|
||||
leaf interFrame {
|
||||
type irtty:tDurationMilli;
|
||||
}
|
||||
|
||||
leaf offset {
|
||||
type irtty:tDurationNano;
|
||||
}
|
||||
|
||||
leaf offset-type {
|
||||
type irtty:tOffsetType;
|
||||
}
|
||||
|
||||
leaf source-jitter {
|
||||
type irtty:tDurationMilli;
|
||||
}
|
||||
|
||||
leaf synchronization {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf best-effort {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf source-id {
|
||||
type nw:node-id;
|
||||
}
|
||||
|
||||
leaf class-id {
|
||||
type leafref {
|
||||
path "/traffics/Traffic/classes/Class/name";
|
||||
}
|
||||
}
|
||||
|
||||
leaf maximal-latency {
|
||||
type irtty:tDurationMilli;
|
||||
}
|
||||
|
||||
leaf maximal-jitter {
|
||||
type irtty:tDurationMilli;
|
||||
}
|
||||
|
||||
list Cast {
|
||||
description "One (unicast) or more (multicast) ways to reach different destinations.";
|
||||
key "id";
|
||||
|
||||
leaf id {
|
||||
type uint32;
|
||||
description
|
||||
"Uniquely identifies an entry in the list.";
|
||||
}
|
||||
|
||||
leaf label {
|
||||
type string;
|
||||
}
|
||||
|
||||
leaf dest-id {
|
||||
description "Destination of the cast";
|
||||
type nw:node-id;
|
||||
}
|
||||
|
||||
container path {
|
||||
description "Definition of the sub-paths of the path, with or without
|
||||
redundancy.
|
||||
If there is no redundancy, a unique Segment
|
||||
is used to define the the path of a cast, whereas multiple
|
||||
segments are needed to describe the redondancy.";
|
||||
list Sub-path {
|
||||
key "id";
|
||||
leaf id {
|
||||
description
|
||||
"Uniquely identifies an entry in the list.";
|
||||
type uint32;
|
||||
}
|
||||
list Segment {
|
||||
description "The list of segments of the subpath. When there is a unique
|
||||
segment, there is no FRER.
|
||||
When there are at least two segments means FRER is used. The
|
||||
first port gives the replication node. The elimination port is
|
||||
given by the first segment of the next subpath.";
|
||||
key "id";
|
||||
leaf id {
|
||||
type uint32;
|
||||
description
|
||||
"Uniquely identifies an entry in the list.";
|
||||
}
|
||||
leaf-list egress-port {
|
||||
type if:interface-ref;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
container bench-generator {
|
||||
leaf type {
|
||||
type tBenchGenerator;
|
||||
}
|
||||
|
||||
leaf-list parameters {
|
||||
type string;
|
||||
description
|
||||
"Depends on the generator type: see tBenchGenerator descriptions.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
container classes {
|
||||
list Class {
|
||||
key "name";
|
||||
leaf name {
|
||||
type string;
|
||||
}
|
||||
|
||||
leaf priority {
|
||||
type irtty:tPriority;
|
||||
}
|
||||
|
||||
leaf ATS {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf CBS {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf CQF {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf TAS {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf FRER {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf synchronization {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf preemptive {
|
||||
type boolean;
|
||||
}
|
||||
|
||||
leaf iDSL {
|
||||
type irtty:tCBSSlope;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
container protocols {
|
||||
list Protocol {
|
||||
key "name";
|
||||
leaf name {
|
||||
type string;
|
||||
}
|
||||
|
||||
leaf overHead {
|
||||
type int32;
|
||||
units
|
||||
"byte";
|
||||
}
|
||||
|
||||
leaf supportsFragmentation {
|
||||
type boolean;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
container cycles {
|
||||
list CEW {
|
||||
key "name";
|
||||
leaf name {
|
||||
type string;
|
||||
}
|
||||
|
||||
leaf period {
|
||||
type irtty:tDurationNano;
|
||||
}
|
||||
|
||||
leaf offset {
|
||||
type irtty:tDurationNano;
|
||||
}
|
||||
|
||||
leaf duration {
|
||||
type irtty:tDurationNano;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
list Constraint {
|
||||
key "name";
|
||||
leaf name {
|
||||
type string;
|
||||
}
|
||||
|
||||
leaf cycle-id {
|
||||
type leafref {
|
||||
path "/traffics/Traffic/cycles/CEW/name";
|
||||
}
|
||||
}
|
||||
|
||||
leaf maximal-delay {
|
||||
type irtty:tDurationMicro;
|
||||
}
|
||||
leaf maximal-jitter {
|
||||
type irtty:tDurationMicro;
|
||||
}
|
||||
leaf cycle-shift {
|
||||
type uint16;
|
||||
}
|
||||
|
||||
choice ConstraintCategory{
|
||||
case ChainedConstraint {
|
||||
list ChainItem {
|
||||
key "id";
|
||||
leaf id {
|
||||
type uint16;
|
||||
}
|
||||
leaf flow-id {
|
||||
type leafref {
|
||||
path "/traffics/Traffic/flows/Flow/name";
|
||||
}
|
||||
}
|
||||
leaf minimal-latency {
|
||||
type irtty:tDurationMicro;
|
||||
}
|
||||
leaf maximal-latency {
|
||||
type irtty:tDurationMicro;
|
||||
}
|
||||
leaf exclusive {
|
||||
type boolean;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
case SingleFlowConstraint {
|
||||
leaf flow-id {
|
||||
type leafref {
|
||||
path "/traffics/Traffic/flows/Flow/name";
|
||||
}
|
||||
}
|
||||
leaf from-id {
|
||||
type nw:node-id;
|
||||
}
|
||||
leaf to-id {
|
||||
type nw:node-id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
65
irt/irt-tsn.yang
Normal file
65
irt/irt-tsn.yang
Normal file
@@ -0,0 +1,65 @@
|
||||
module irt-tsn {
|
||||
yang-version 1.1;
|
||||
namespace urn:fr:irt:eden:yang:irt-tsn;
|
||||
prefix irttsn;
|
||||
|
||||
import ietf-interfaces {
|
||||
prefix if;
|
||||
revision-date
|
||||
"2018-02-20";
|
||||
}
|
||||
|
||||
import ieee802-dot1q-bridge {
|
||||
prefix dot1q;
|
||||
revision-date
|
||||
"2020-11-06";
|
||||
}
|
||||
|
||||
import irt-types {
|
||||
prefix irtty;
|
||||
}
|
||||
|
||||
organization
|
||||
"IRT Saint Exupéry - Toulouse";
|
||||
|
||||
contact
|
||||
"IRT Saint Exupéry - Toulouse
|
||||
EDEN project team
|
||||
<mailto:embedded-systems@irt-saintexupery.com>";
|
||||
|
||||
description
|
||||
"This module is containing augments to complete the standard IETF interface for TSN purpose.";
|
||||
|
||||
revision 2023-04-28 {
|
||||
description
|
||||
"Initial revision.";
|
||||
}
|
||||
|
||||
augment "/if:interfaces/if:interface/dot1q:bridge-port" {
|
||||
description
|
||||
"CBS configuration items an interface";
|
||||
|
||||
container cbs-configurations {
|
||||
list cbs-configuration {
|
||||
key "priority";
|
||||
description "CBS configuration for a priority queue";
|
||||
leaf priority {
|
||||
description "The priority of the stream";
|
||||
type irtty:tPriority;
|
||||
}
|
||||
leaf slope {
|
||||
description "The current idle slope value in Mbps";
|
||||
type irtty:tThroughputMbps;
|
||||
}
|
||||
leaf cbs-traffic {
|
||||
description "The current CBS traffic on this port for this priority in Mbps";
|
||||
type irtty:tThroughputMbps;
|
||||
}
|
||||
leaf higher-traffic {
|
||||
description "The higher priority non CBS traffic on this port in Mbps";
|
||||
type irtty:tThroughputMbps;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
159
irt/irt-types.yang
Normal file
159
irt/irt-types.yang
Normal file
@@ -0,0 +1,159 @@
|
||||
module irt-types {
|
||||
yang-version 1.1;
|
||||
namespace urn:fr:irt:eden:yang:irt-types;
|
||||
prefix irtty;
|
||||
|
||||
organization
|
||||
"IRT Saint Exupéry - Toulouse";
|
||||
|
||||
contact
|
||||
"IRT Saint Exupéry - Toulouse
|
||||
EDEN project team
|
||||
<mailto:embedded-systems@irt-saintexupery.com>";
|
||||
|
||||
description
|
||||
"This module is containing a whole set of artifacts in order to describe the traffic.";
|
||||
|
||||
revision 2023-04-28 {
|
||||
description
|
||||
"Initial revision.";
|
||||
}
|
||||
|
||||
typedef tDataByte {
|
||||
type uint32 ;
|
||||
units
|
||||
"byte";
|
||||
}
|
||||
|
||||
typedef tDuration {
|
||||
type decimal64 {
|
||||
fraction-digits 9;
|
||||
}
|
||||
description
|
||||
"A duration in seconds";
|
||||
units
|
||||
"s";
|
||||
}
|
||||
|
||||
typedef tDurationMilli {
|
||||
type decimal64 {
|
||||
fraction-digits 6;
|
||||
}
|
||||
description
|
||||
"A duration in milli seconds";
|
||||
units
|
||||
"ms";
|
||||
}
|
||||
|
||||
typedef tDurationMicro {
|
||||
type decimal64 {
|
||||
fraction-digits 3;
|
||||
}
|
||||
description
|
||||
"A duration in micro seconds";
|
||||
units
|
||||
"µs";
|
||||
}
|
||||
|
||||
typedef tDurationNano {
|
||||
type uint64 ;
|
||||
description
|
||||
"A duration in nano seconds";
|
||||
units
|
||||
"ns";
|
||||
}
|
||||
|
||||
typedef tThroughput {
|
||||
type uint64 ;
|
||||
description
|
||||
"The throughput in bits per second";
|
||||
units
|
||||
"bit/s";
|
||||
}
|
||||
|
||||
typedef tThroughputMbps {
|
||||
type decimal64 {
|
||||
fraction-digits 6;
|
||||
}
|
||||
description
|
||||
"Throughput in Mega Bits per second";
|
||||
units
|
||||
"Mb/s";
|
||||
}
|
||||
|
||||
typedef tPriority {
|
||||
description
|
||||
"The TSN priority";
|
||||
type uint8 {
|
||||
range "0..7";
|
||||
}
|
||||
}
|
||||
|
||||
typedef tCBSSlope {
|
||||
type decimal64 {
|
||||
fraction-digits 6;
|
||||
}
|
||||
}
|
||||
|
||||
typedef tOffsetType {
|
||||
type enumeration {
|
||||
enum "Not Defined";
|
||||
enum Computed ;
|
||||
enum Manual ;
|
||||
}
|
||||
}
|
||||
|
||||
typedef tData {
|
||||
type uint32 ;
|
||||
description
|
||||
"The type for a data in bits";
|
||||
units
|
||||
"bit";
|
||||
}
|
||||
typedef tNodeType {
|
||||
type enumeration {
|
||||
enum bridge;
|
||||
enum end-station;
|
||||
}
|
||||
}
|
||||
|
||||
typedef tManufacturerRefence {
|
||||
type enumeration {
|
||||
enum SW_fraunhofer;
|
||||
enum SW_nxp_sja1110_EVM;
|
||||
enum SW_microchip_evb_LAN9668;
|
||||
enum ES_linuxGeneric;
|
||||
enum ES_linuxUbuntu;
|
||||
enum ES_linuxRPI_4;
|
||||
enum ES_linuxRPI_CM4;
|
||||
enum ES_linuxRPI_1Bplus;
|
||||
enum ES_Meinberg_microsync;
|
||||
enum ES_custom;
|
||||
enum SW_custom;
|
||||
}
|
||||
}
|
||||
|
||||
typedef tIfChipset {
|
||||
type enumeration {
|
||||
enum IFCHIP_i210;
|
||||
enum IFCHIP_i225;
|
||||
enum IFCHIP_i350;
|
||||
enum IFCHIP_generic;
|
||||
}
|
||||
description
|
||||
"Network interface chipsets";
|
||||
}
|
||||
|
||||
typedef tMemoryManagementPolicy {
|
||||
type enumeration {
|
||||
enum Shared_Memory ;
|
||||
enum Dedicated_Memory ;
|
||||
}
|
||||
}
|
||||
typedef tStoragePolicy {
|
||||
type enumeration {
|
||||
enum Store_And_Forward ;
|
||||
enum Cut_Through ;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user