Network Datatypes

OcaNetworkAddress

using OcaNetworkAddress = OcaBlob

Generic network address.

OcaNetworkLinkType

enum OcaNetworkLinkType : uint8_t

Types of layer 2 networks.

enumerator None = 0

No network

enumerator EthernetWired = 1

Wired Ethernet

enumerator EthernetWireless = 2

Wireless Ethernet

enumerator USB = 3

USB

enumerator SerialP2P = 4

Low-speed serial point-to-point

OcaApplicationNetworkServiceID

using OcaApplicationNetworkServiceID = OcaBlob

Generic host ID.

OcaNetworkSystemInterfaceDescriptor

struct OcaNetworkSystemInterfaceDescriptor

Descriptor of a system interface used by a network. Format is data network type dependent.

OcaBlob SystemInterfaceParameters

Parameters for the operating system interface the network uses to do I/O.

OcaNetworkAddress MyNetworkAddress

The data network address that corresponds to this system interface.

OCP.1 Encoding

Field

Basic type

Byte length

SystemInterfaceParameters.DataSize

OcaUint16

2

SystemInterfaceParameters.Data

OcaUint8

1 * Count

MyNetworkAddress.Value.DataSize

OcaUint16

2

MyNetworkAddress.Value.Data

OcaUint8

1 * Count

OcaApplicationNetworkState

enum OcaApplicationNetworkState : uint8_t

Network states.

enumerator Unknown = 0

State is not known.

enumerator NotReady = 1

Application network is not connected to host data network and is therefore not ready for connection establishng or application data transfer.

enumerator Readying = 2

Application network is in the process of connecting to the host data network and is therefore not ready for connection establishing or application data transfer.

enumerator Ready = 3

Application network is connected to host data network and is ready for connection establishing and application data transfer.

enumerator Running = 4

Application network is connected to host data network and is executing connection establishment and application data transfer.

enumerator Paused = 5

All application data transfer is paused, but connections are still in place.

enumerator Stopping = 6

Network is in the process of stopping all media application data transport activity and is deleting all media transport connections.

enumerator Stopped = 7

No application data transport connections exist, but application network is still connected to host data network.

enumerator Fault = 8

Application network has ceased all activity due to an error, but operating storage elements have not been freed.

OcaApplicationNetworkCommand

enum OcaApplicationNetworkCommand : uint8_t

Command values for OcaMediaNetwork.Control().

enumerator None = 0

No-op. State is not changed.

enumerator Prepare = 1

Open a connection to the host data network, but do not make any media connections. Resulting state = Ready.

enumerator Start = 2

Commence media data connection-making and data transfer. Resulting state = Running.

enumerator Pause = 3

Temporarily halt all media data transfer, but preserve media connections. Resulting state = Paused. nb To unpause, a Start command should be used.

enumerator Stop = 4

Cease data transfer and delete all media connections. Resulting state = Stopped.

enumerator Reset = 5

Cease all media transfer, delete all media transport connections, and disconnect from the host data network. Resulting state = NotReady.

OcaNetworkMediaProtocol

enum OcaNetworkMediaProtocol : uint8_t

Media transport protocols available.

enumerator None = 0

No media protocol - the network does not do media transport.

enumerator AV3 = 1

AVnu AV3 - RTP over AVB

enumerator AVBTP = 2

IEEE 1722 / 1722.1

enumerator Dante = 3

Pre-AV3 Dante with ATP transport

enumerator Cobranet = 4

Cobranet

enumerator AES67 = 5

AES67 network.

enumerator SMPTEAudio = 6

SMPTE 2022? Or 2071? (TBD)

enumerator LiveWire = 7

LiveWire media transport

enumerator ExtensionPoint = 65

Base value for addition of nonstandard (e.g. proprietary) protocol options

OcaNetworkControlProtocol

enum OcaNetworkControlProtocol : uint8_t

Network control protocols available.

enumerator None = 0

No control protocol - the network does not do control.

enumerator OCP01 = 1

OCP.1 - OCA protocol for TCP/IP networks

enumerator OCP02 = 2

OCP.2 - OCA protocol for USB links.

enumerator OCP03 = 3

OCP.3 - Character XML or JSON (tbd) version of OCA protocol, for serial links and other purposes.

OcaMediaSinkConnector

struct OcaMediaSinkConnector

Media sink (i.e. input) connector. Connects to an inbound stream. Collected by OcaMediaTransportNetwork .

OcaMediaConnectorID IDInternal

Internal ID.

OcaString IDExternal

Public name of connector. May be published to the media transport network, depending on the type of network.

OcaMediaConnection Connection

Descriptor of the stream connection to this connector. If there is no stream connected to this controller, (i.e. property Connected = FALSE), the value of this property is undefined.

OcaList<OcaMediaCoding> AvailableCodings

List of codings available for this connector.

OcaUint16 PinCount

Number of pins in this connector.

OcaMultiMap<OcaUint16, OcaPortID> ChannelPinMap

Map of stream pins (sink channels) to OCA ports (output ports) of the owning OcaMediaNetwork object. This defines what pins that are received from the network are sent to what OCA ports. A pin can only carry one network channel, but can be sent to multiple ports. That is why this data member is a multimap, a pin identifier can map to multiple ports. A pin is identified by an OcaUint16 with value 1..MaxPinCount. Not having a certain pin identifier in this map means that the pin is empty (i.e. not carrying a sink channel). A pin identifier cannot be part of the map more than MaxChannelsPerPin times, unless MaxChannelsPerPin is zero.

OcaDBFS AlignmentLevel

Alignment level of the interface. Note that the dBFS value is referenced to the interface’s fullscale value, not to device’s internal fullscale value.

OcaDB AlignmentGain

Alignment gain for the connector. This value will be applied to all signals incoming through all pins.

OcaMediaCoding CurrentCoding

Coding currently used by this connector.

OCP.1 Encoding

Field

Basic type

Byte length

IDInternal.Index

OcaUint16

2

IDExternal.Len

OcaUint16

2

IDExternal.Value

string

variable

Connection.Secure

OcaBoolean

1

Connection.StreamParameters.Value.DataSize

OcaUint16

2

Connection.StreamParameters.Value.Data

OcaUint8

1 * Count

Connection.StreamCastMode

OcaEnumItem

1

Connection.StreamChannelCount

OcaUint16

2

AvailableCodings

OcaList<{OcaUint16, {OcaUint16, string}, OcaUint32}>

(2 + Count * (6 + (2 + variable)))

PinCount

OcaUint16

2

ChannelPinMap

OcaMultiMap<OcaUint16, {OcaEnumItem, OcaUint16}>

(2 + 5 * Count)

AlignmentLevel.Value.Value

OcaFloat32

4

AlignmentGain.Value

OcaFloat32

4

CurrentCoding.CodingSchemeID.Value

OcaUint16

2

CurrentCoding.CodecParameters.Len

OcaUint16

2

CurrentCoding.CodecParameters.Value

string

variable

CurrentCoding.ClockONo.ONo

OcaUint32

4

OcaMediaSourceConnector

struct OcaMediaSourceConnector

Media source (i.e. output) connector. Connects to an outbound stream. Collected by OcaMediaTransportNetwork .

OcaMediaConnectorID IDInternal

Internal ID.

OcaString IDExternal

Public name of connector. May be published to the media transport network, depending on the type of network.

OcaMediaConnection Connection

Descriptor of the stream connection to this connector. If there is no stream connected to this controller, (i.e. property Connected = FALSE), the value of this property is undefined.

OcaList<OcaMediaCoding> AvailableCodings

List of codings available for this connector.

OcaUint16 PinCount

Number of pins in this connector.

OcaMap<OcaUint16, OcaPortID> ChannelPinMap

Map of stream pins (source channels) to OCA ports (input ports) of the owning OcaMediaNetwork object. This defines what source channels are sent to the network. A pin is identified by an OcaUint16 with value 1..MaxPinCount. Not having a certain pin identifier in this map means that the pin is empty (i.e. not carrying a source channel).

OcaDBFS AlignmentLevel

Alignment level of the interface. Note that the dBFS value is referenced to the interface’s fullscale value, not to device’s internal fullscale value.

OcaMediaCoding CurrentCoding

Coding currently used by this connector.

OCP.1 Encoding

Field

Basic type

Byte length

IDInternal.Index

OcaUint16

2

IDExternal.Len

OcaUint16

2

IDExternal.Value

string

variable

Connection.Secure

OcaBoolean

1

Connection.StreamParameters.Value.DataSize

OcaUint16

2

Connection.StreamParameters.Value.Data

OcaUint8

1 * Count

Connection.StreamCastMode

OcaEnumItem

1

Connection.StreamChannelCount

OcaUint16

2

AvailableCodings

OcaList<{OcaUint16, {OcaUint16, string}, OcaUint32}>

(2 + Count * (6 + (2 + variable)))

PinCount

OcaUint16

2

ChannelPinMap

OcaMap<OcaUint16, {OcaEnumItem, OcaUint16}>

(2 + 5 * Count)

AlignmentLevel.Value.Value

OcaFloat32

4

CurrentCoding.CodingSchemeID.Value

OcaUint16

2

CurrentCoding.CodecParameters.Len

OcaUint16

2

CurrentCoding.CodecParameters.Value

string

variable

CurrentCoding.ClockONo.ONo

OcaUint32

4

OcaMediaConnectorID

using OcaMediaConnectorID = OcaUint16

Internal ID of media connector. Unique within its owner, which will be an OcaMediaTransportNetwork instance.

OcaMediaConnectorStatus

struct OcaMediaConnectorStatus

Represents the current status of a media (source or sink) connector.

OcaMediaConnectorID ConnectorID

ID of the connector for which this status is valid

OcaMediaConnectorState State

Connector state

OcaUint16 ErrorCode

Indicates what type of error the connector is in (only relevant if the State is Fault).

OCP.1 Encoding

Field

Basic type

Byte length

ConnectorID.Index

OcaUint16

2

State

OcaEnumItem

1

ErrorCode

OcaUint16

2

OcaMediaConnectorState

enum OcaMediaConnectorState : uint8_t

Status options for a stream connector.

enumerator Stopped = 0

Connector has no media connection and no media data is being transferred.

enumerator SettingUp = 1

Stream connection is being set up. Media data is not flowing.

enumerator Running = 2

Media data is flowing since the connection is established.

enumerator Paused = 3

Media transfer is stopped. Existing connection is intact.

enumerator Fault = 4

Data transfer has been halted due to errors. Working storage has not been freed.

OcaMediaConnectorCommand

enum OcaMediaConnectorCommand : uint8_t

Command values for OcaMediaNetwork.ControlConnector(…)

enumerator None = 0

No-op. State is not changed.

enumerator Start = 1

Commence media data connection-making and data transfer. Resulting state = Running.

enumerator Pause = 2

Pause transferring media data, but preserve media connections. Resulting state = Paused.

OcaMediaConnection

struct OcaMediaConnection

A single-channel or multichannel connection between a local media connector (i.e. OcaMedia(Source/Sink)Connector instance) of an OcaMediaTransportNetwork object in this node and another (“remote”) media source or sink. Normally, the remote source or sink is in another node. The remote end may or may not be an OCA-compliant device. A connection is unidirectional. Its direction is determined by the connector that owns the connection. Its direction is either:

  • Outbound: A signal flow from a source connector to an external destination; or

  • Inbound: A signal flow from an external source to a sink connector.

An OcaMediaConnection object may represent a connection to either a unicast or a multicast stream. Any given OcaMedia(Source/Sink)Connector object will only have one media connection. In non-OCA documents, connections are sometimes referred to as streams or flows.

OcaBoolean Secure

True iff connection is secure.

OcaMediaStreamParameters StreamParameters

Stream parameters (encoding, sampling, etc). Format is media network type dependent.

OcaMediaStreamCastMode StreamCastMode

Unicast or multicast

OcaUint16 StreamChannelCount

Number of channels in connected stream

OCP.1 Encoding

Field

Basic type

Byte length

Secure

OcaBoolean

1

StreamParameters.Value.DataSize

OcaUint16

2

StreamParameters.Value.Data

OcaUint8

1 * Count

StreamCastMode

OcaEnumItem

1

StreamChannelCount

OcaUint16

2

OcaMediaStreamCastMode

enum OcaMediaStreamCastMode : uint8_t

Type of media endpoint: unicast or multicast.

enumerator None = 0

Undefined streamcast mode

enumerator Unicast = 1

Unicast stream

enumerator Multicast = 2

Multicast stream

OcaMediaStreamParameters

using OcaMediaStreamParameters = OcaBlob

Media stream parameters. Definition is media transport type dependent. Appropriate subclasses will be defined for specific X210 adaptations.

OcaMediaCoding

struct OcaMediaCoding

Codec ID + Coding parameters

OcaMediaCodingSchemeID CodingSchemeID

ID of coding scheme to use.

OcaString CodecParameters

Coding parameters. Content is coding-scheme-dependent.

OcaONo ClockONo

Object number of OcaMediaClock3 object to use for this coding scheme. May be zero if no OcaMediaClock3 object is used.

OCP.1 Encoding

Field

Basic type

Byte length

CodingSchemeID.Value

OcaUint16

2

CodecParameters.Len

OcaUint16

2

CodecParameters.Value

string

variable

ClockONo.ONo

OcaUint32

4

OcaMediaCodingSchemeID

using OcaMediaCodingSchemeID = OcaUint16

Codec parameters

OcaSDPString

using OcaSDPString = OcaString

Codec parameters