TCNDL is Time Critical Networks open XML document file format. It is used to store information on networks created using TCN Ethernet Design & Analysis Suite. Since it is an open XML format it is free to create TCNDL files by any other tool. As long as it conforms to this specification, it can be loaded into and updated by TCN Ethernet Design & Analysis Suite.
The first level consist only of the root element, < Network >, which all other elements fall under. < Network > has no attributes.
On the second level there are a number of elements that act as containers for a collection of child elements. It is obvious from the names of the elements which belong together. E.g Second level element < Hosts > contains a collection of child element < Host >. Second level elements have no attributes. The second level elements are < Hosts >, < Switches >, < Links >, < CanBuses >, < LinBuses >, < Dataframes >, < HeaFiles >, < Timers >, < VLANs > .
From the third level and down the elements contain attributes. A complete list of lower level elements and attributes with their constraints can be found below.
This element represents a host in the network.
Parent element: Hosts
Child elements: EthernetPorts, CanPorts, LinPorts
This attribute specifies the name of a host.
Type: String
Unique: Yes
Mandatory: Yes
This attribute specifies the model type of the host.
Type: Integer
Unique: No
Mandatory: Yes
Constraint: Must reference a value in ~lib/hostModels.xml
This element represents a switch in the network.
Parent element: Switches
Child elements: EthernetPorts
This attribute specifies the name of a switch.
Type: String
Unique: Yes
Mandatory: Yes
This attribute specifies the model type of the switch.
Type: Integer
Unique: No
Mandatory: Yes
Constraint: Must reference a value in ~lib/hostModels.xml
This element represents a collection of Ethernet ports.
Parent element: Host OR Switch
Child elements: EthernetPort
This element has no attributes
This element represents an Ethernet port.
Parent element: EthernetPorts
Child elements: -
This attribute specifies the name of the Ethernet port.
Type: String
Unique: Unique within its parent.
Mandatory: Yes
This attribute defines the speed of an Ethernet port. Expressed in bit/s.
Type: Integer
Unique: No
Mandatory: Yes
This element represents a connection between two Ethernet ports.
Parent element: Links
Child elements: EthernetPort
Specifies the name of a link.
Type: String
Unique: Yes
Mandatory: Yes
This element represents an Ethernet port.
Parent element: Link
Child elements: -
Constraint: There must be exactly two EthernetPorts for each Link.
This attribute specifies the name of the Ethernet port connected by the parent link.
Type: String
Unique: Yes
Mandatory: Yes
Constraint: Must reference a value equal to Host.name + EthernetPort.name OR Switch.name + EthernetPort.name.
This attribute defines which priority mode the port uses.
Type: String
Unique: No
Mandatory: Yes
Valid values: "TAG", "PORT", "IP"
This attribute defines the priority of the port. A higher value implies a higher priority. Only used if priorityMode is "PORT"
Type: Integer
Unique: No
Mandatory: Yes
Valid values: 0 .. 7
This attribute defines which scheduling policy is applied.
Type: String
Unique: No
Mandatory: Yes
Valid values: "Credit Based Shaper", "Strict Priority"
These attributes define the bandwidth fraction reserved for Class A and B respectively. Expressed as a decimal between 0 and 1, where 1 means 100%.
Type: Decimal
Unique: No
Mandatory: Yes, if schedulingPolicy is "Credit Based Shaper"
Valid values: 0 .. 1
This element represents a collection of LIN ports.
Parent element: Host
Child elements: LinPort
This element has no attributes.
This element represents a collection of CAN ports.
Parent element: Host
Child elements: CanPort
This element has no attributes
This element represents a LIN port.
Parent element: LinPorts
Child elements: -
This attribute specifies the name of the LIN port.
Type: String
Unique: Unique within its parent.
Mandatory: Yes
This attribute defines the speed of a LIN port. Expressed in bit/s.
Type: Integer
Unique: No
Mandatory: Yes
This element represents a CAN port.
Parent element: CanPorts
Child elements: -
This attribute specifies the name of the CAN port.
Type: String
Unique: Unique within its parent.
Mandatory: Yes
This attribute defines the speed of a CAN port. Expressed in bit/s.
Type: Integer
Unique: No
Mandatory: Yes
This element represents a data frame containing signal information, an image or similar. A DataFrame is carried as the payload in, for example, a CAN frame when it is to be sent over a CAN bus.
Parent element: DataFrames
Child elements: Path
This attribute specifies the name of the data frame.
Type: String
Unique: Yes
Mandatory: Yes
This attribute defines the size of the data frame. Expressed in bits.
Type: Integer
Unique: No
Constraint: Min Value = 1, Max Value = 12144
Mandatory: Yes
This attribute defines the periodicity with which the data frame is released by the associated application. Expressed in seconds. Can be defined with 10 µs precision.
Type: Integer
Unique: No
Mandatory: Yes
Constraint: Must be larger than 0.
This attribute defines the offset of the first instance of a data frame in time relative time t=0. Expressed in seconds. Can be defined with 10 µs precision.
Type: Integer
Unique: No
Mandatory: Yes
Constraint: Must be larger than 0.
This attribute defines the priority of the data frame. A higher value implies a higher priority.
Type: Integer
Unique: No
Mandatory: Yes
Valid values: 0 .. 7
This element represents the path of a data frame. A path is comprised of all nodes a data frame passes including the destination and the target nodes.
Parent element: DataFrame
Child elements: Node
This attribute specifies the name of the path.
Type: String
Unique: Yes
Mandatory: Yes
This element represents a node. A node can be either a device (host/switch) or a bus (CAN bus/LIN bus). The nodes of a path is ordered by a sequence number. The lowest sequence number is the destination and the highest is the target of the path.
Parent element: Path
Child elements: -
This attribute specifies the name of the node
Type: String
Unique: Unique within its parent
Mandatory: Yes
Constraint 1: Must reference Host.name OR Switch.name OR CanBus.name OR LinBus.name.
Constraint 2: The node with lowest sequence number within its parent must reference a Host.name.
Constraint 3: The node with highest sequence number within its parent must reference a Host.name.
This attribute specifies the sequence number of the node within the path.
Type: Integer
Unique: Unique within its parent
Mandatory: Yes
Constraint: The lowest sequence number within its parent must be 1.
This element represents a timer.
Parent element: Timers
Child elements: TimeSampler
This attribute specifies the name of the timer.
Type: String
Unique: Yes
Mandatory: Yes
This attribute specifies the data frame this particular timer should watch.
Type: String
Unique: No
Mandatory: Yes
This attribute specifies the MAC address of the timer's target Host. Expressed as six groups of two hexadecimal digits, separated by hyphens(-) or colons (:).
Type: String
Unique: No
Mandatory: No
This element represents a time sampler.
Parent element: Timer
Child elements: -
This attribute specifies the processor that is responsible for the time sampling performed by the TimeSampler.
Type: String
Unique: Yes
Mandatory: Yes
Constraint 1: The value must contain two dots (.)
Constraint 2: When the value is separated in four parts, the separating character being a dot (.), the first part must reference a value in Switch.name. The second part must reference a value in EthernetPort.name where EthernetPort is a child element to the device referenced by part 1. The third+fourth parts must be either EI.Tx (Egress Interface.Transmitter) OR II.Rx (Ingress Interface.Receiver).
Constraint 3: The EthernetPort that is referenced must be connected.
This element represents a Ethernet frame capture file generated by a netANALYZER real-time Ethernet capture card and stored in the HEA file format.
Parent element: HeaFiles
Child elements: Taps
This attribute specifies the name of the measurement.
Type: String
Unique: Yes
Mandatory: Yes
This attribute specifies the name of the capture file on disk.
Type: String
Unique: No
Mandatory: Yes
This element represents a collection of Traffic Access Points (TAPs).
Parent element: HeaFile
Child elements: Tap
This element has no attributes.
This element represents a Traffic Access Point (TAP).
Parent element: Taps
Child elements: -
This attribute specifies the name of the TAP.
Type: String
Unique: Yes
Mandatory: Yes
This attribute specifies the name of the link where the TAP is placed.
Type: String
Unique: Yes
Mandatory: Yes
Constraint: Must reference a value in Link.name.
This element represents a virtual LAN in the network.
Parent element: Vlans
Child elements: EthernetPort
This attribute specifies the id of a VLAN.
Type: Integer
Unique: Yes
Mandatory: Yes
This attribute specifies the name of a VLAN.
Type: String
Unique: Yes
Mandatory: Yes
This attribute specifies the priority of the VLAN. A higher value implies a higher priority.
Type: Integer
Unique: No
Mandatory: Yes
Valid values: 0 .. 7
This element represents an Ethernet port included in the VLAN.
Parent element: Vlan
Child elements: -
This attribute specifies the name of the Ethernet port connected by the parent link.
Type: String
Unique: Yes
Mandatory: Yes
Constraint: Must reference a value equal to Host.name + EthernetPort.name OR Switch.name + EthernetPort.name.
This attribute is not used.
Type: Boolean
Unique: No
Mandatory: No