The Sienda ATDECC Proxy - atdeccProxy

Overview

The Sienda atdeccProxy applet is a command line application for Windows, macOS and linux. It implements the ATDECC Proxy Protocol as specified in IEEE-1722.1-2013 Annex C.

The proxy provides a layer 3, TCP/IP access point to a layer 2 AVB network. AVB Controllers can connect to the proxy to access AVB networks or subnets that are not normally accessible directly.

The proxy supports the HTTP CONNECT method to establish the connection (as described in the 1722.1), and also optionally supports TLS and HTTP basic auth. Sienda highly recommends that both TLS and HTTP auth are used on any publicly accessible network.

Usage

atdeccProxy [-list] -interface interfaceName -mac macAddress [-tls] [-auth username:password] [-mdns] [-port portNumber]

-list       - lists the network interfaces available to connect to the AVB network through
-interface  - specify the interface to use
-mac        - mac address to use, specified as a decimal or hexidecimal string
-tls        - use TLS encryption (recommended)
-auth       - use HTTP BASIC AUTH (recommended) with username:password
-mdns       - register with the local network mDNS service for mDNS/Zeroconf/Bonjour
-port       - use the specified port number instead of the default 17221

Description

An ATDECC Proxy, as described by IEEE 1772.1-2016, provides a layer 3 access point to an AVB network. Conceptually it is connected to an ethernet port at one end, provides a TCP/IP port at the other end, and acts as a bridge between the ethernet port and the TCP/IP port for ATDECC traffic.

It has a variety of uses. One is to provide access to the AVB network for devices that are already inside the same network, but that do not natively speak ATDECC. For example, most tablets and phones are not able to send or receive ATDECC messages directly, and many wifi routers block ATDECC messages, so phones, tablets and wifi attached laptops can use an ATDECC proxy to participate in an AVB network.

!!!info Please note that an ATDECC Proxy provides a conduit for AVB CONTROL traffic only. AVB streams (the actual audio or video) cannot flow through a ATDECC Proxy.

Another use of the proxy is to allow connections from AVB controllers that are outside of the local network or subnet:

AVB Controllers that can connect to multiple networks through multiple proxies can control multiple networks at the same time, and can even connect streams between networks, as long as the networks/subnets are within a single AVB domain:

The Sienda atdecc proxy also supports a Sienda specific proxy extension (not part of the standard) which allows two or more networks to be joined together for ATDECC purposes, using the Sienda Proxy Relay. The Proxy Relay passes ATDECC messages between the networks, allowing a normal (non proxy aware) AVB controller to control AVB devices in remote networks:

Walkthrough

To list the ethernet interfaces available to the application, start atdeccProxy with the argument -list:

# atdeccProxy -list
Sienda ATDECC Proxy
Copyright 2021 Sienda Multimedia Ltd, all rights reserved
interfaces:
en0
en1
en2
please specify an ethernet interface with -interface option

On windows the interface names are somewhat more cryptic:

atdeccProxy -list
Sienda ATDECC Proxy
Copyright 2021 Sienda Multimedia Ltd, all rights reserved
interfaces:
\Device\NPF_{4A29A021-D778-4572-9A76-5E8FC3086898} Microsoft
\Device\NPF_{62535CD1-1602-468F-BAD6-4452865649E6} Intel(R) Ethernet Connection (7) I219-V
\Device\NPF_{159735B9-04F3-4EB3-9768-51986556038B} VMware Virtual Ethernet Adapter
please specify an ethernet interface with -interface option

To start the proxy you must the application with at least the -interface and -mac parameters. The -mac parameter specifies the MAC address that the proxy should use to connect to the AVB network. This would normally be the same as the mac address of the interface, but may be different if you wish to run several AVB applications on the same interface simultaneously (for example, the proxy and an AVB controller). Please only use a valid MAC address.

# atdeccProxy -interface en0 -mac 0x70B3D5A81EFF
Sienda ATDECC Proxy
Copyright 2021 Sienda Multimedia Ltd, all rights reserved
SECURITY WARNING: TLS is DISABLED. Use -tls to enable TLS.
SECURITY WARNING: HTTP AUTH is DISABLED. Use -auth to enable HTTP AUTH

The proxy is now running and accepting connections on port 17221. As noted in the output, it’s recommended to use both TLS and HTTP AUTH with the proxy.

To enable TLS pass the -tls argument, and to enable HTTP AUTH pass -auth. The -tls argument requires no further parameters but there must be a certificate file called server.crt and a private key file called server.key in the current working directory.

To enable HTTP AUTH pass the -auth argument, with an extra parameter specifying username:password.

For example to start the proxy with TLS and HTTP AUTH enabled, you might use the arguments:

# atdeccProxy -interface en0 -mac 0x70B3D5A81EFF -tls -auth testUser:testPassword

Disclaimer

The Sienda atdeccProxy may be used for evaluation and development purposes only. There is NO WARRANTY, and use of the application is ENTIRELY AT YOUR OWN RISK.