OpenAvnu - an Avnu sponsored repository for Time Sensitive Network (TSN and AVB) technology
C C++ CMake Objective-C Makefile Python Other
Latest commit 5e43fa5 Dec 7, 2017 @andrew-elder andrew-elder Merge pull request #732 from AVnu/open-avb-next
Maintenance pull request from open-avb-next
Permalink
Failed to load latest commit information.
avdecc-lib @ a04fef4 submodule avdecc-lib switch to branch avnu-master May 5, 2016
daemons Got rid of magic numbers. More self-explanatory code. Dec 1, 2017
documents doc: gPTP, change image path to AVnu repo Oct 17, 2015
examples Fix mmrp parsing Nov 16, 2017
kmod/igb Support for kernel 4.9 - igb_ndo_set_vf_vlan update Sep 25, 2017
lib Added note about p1722.1 renaming AVDECC to ATDECC Dec 7, 2017
test test: AVTP timestamp test updates Sep 8, 2014
thirdparty cpputest: use MSVC div-by-zero fix from parent cpputest repo Oct 9, 2017
.gitignore Git ignores AVDECC build files May 10, 2017
.gitmodules cpputest submodule - use AVnu fork of cpputest Oct 7, 2017
.travis.yml travis updates for newer CMAKE Oct 7, 2017
CMakeLists.txt root CMakeLists.txt update to C++11 support Oct 7, 2017
Makefile shaper daemon Jun 9, 2017
README.rst Update the README.rst file to make the case of specific words consist… Oct 31, 2017
appveyor.yml appveyor Oct 6, 2017
avnu_logo.png README update Sep 5, 2014
run_avtp_pipeline.sh Use pushd and popd rather than saving the current directory Dec 5, 2017
run_daemons.sh More consistent about use of $nic variable. Nov 1, 2017
run_echo_listener.sh Documentation improvements. Oct 5, 2015
run_echo_talker.sh Documentation improvements. Oct 5, 2015
run_gptp.sh Finished merge, made whitespace consistent May 17, 2016
run_igb.sh STC AVTP Pipeline : Work in progress 1 Jul 17, 2015
run_maap.sh Added script to run the MAAP daemon May 11, 2017
run_shaper.sh Added a script to run the shaper daemon Jun 9, 2017
run_simple_talker.sh STC AVTP Pipeline : Work in progress 1 Jul 17, 2015
run_srp.sh Changed the permissions so the script will run. Jan 17, 2017
stop_avtp_pipeline.sh Added AVTP Pipeline Example Dec 5, 2017
stop_daemons.sh Daemon scripts cleanup Oct 31, 2017
travis.sh Added the AVTP Pipeline AVDECC support to the Travis build May 23, 2017

README.rst

avnu_logo.png


https://travis-ci.org/AVnu/OpenAvnu.svg?branch=open-avb-next

OpenAvnu

The OpenAvnu project is sponsored by the Avnu Alliance.

The intent is to provide components for building AVB/TSN systems. The repository contains primarily network building block components - drivers, libraries, example applications and daemon source code - required to build an AVB/TSN system. It is planned to eventually include the various packet encapsulation types, protocol discovery daemons, libraries to convert media clocks to AVB clocks and vice versa), and drivers.

This repository does not include all components required to build a full production AVB/TSN system (e.g. a turnkey solution to stream stored or live audio or video content). Some simple example applications are provided which illustrate the flow - but a professional Audio/Video system requires a full media stack - including audio and video inputs and outputs, media processing elements, and various graphical user interfaces. Various companies provide such integrated solutions.

For more information about AVB/TSN, see also the Avnu Alliance webpage at www.avnu.org.

BACKGROUND

Intel created the OpenAvnu repository to encourage collaborative source code development for AVB/TSN technology enabling. By publishing the source code, our intent is to encourage standardization, stability and inter-operability between multiple vendors. This repository - created by the Intel LAN Access Division - is open for contributions from other vendors.

LICENSING AND CONTRIBUTION GUIDELINES

To the extent possible, content is licensed under BSD licensing terms. Linux kernel mode components are provided under a GPLv2 license. The specific license information is included in the various directories to eliminate confusion. We encourage you to review the ‘LICENSE’ file included in the head of the various subdirectories for details.

Third party submissions are welcomed. Our intent for third party content contributions is to enable derivative products with minimal licensing entanglements. Practically speaking, this means we would enforce (a) an original-source attestation for any contributed content, and (b) rejecting patches with GPL content into existing “BSD” licensed components. Third party copyrights can be included provided they do not narrow the licensing terms of an existing component.

Prior to accepting a commit, Intel may perform scans using third-party tools to identify suspected hits of GPL code. Intel may also perform vulnerability scans of patches in an attempt to find various coding errors such as memory leaks, buffer overflows and usage of uninitialized variables. The submitter will be asked to correct any detected issues prior to a commit. Owners of submitted third-party content are free to apply changes without supervision by Intel.

The OpenAvnu project has a development mailing list. To subscribe, visit https://lists.sourceforge.net/lists/listinfo/open-avb-devel to sign up.

WEBSITE

A github based website for OpenAvnu can be found here.

GIT SUBMODULES

After checking out the OpenAvnu git repository submodules should be configured by going:

git submodule init
git submodule update

CMAKE

cmake is a cross-platform build system generator. cmake build files are currently available to build mrpd in Windows and linux and CppUTest unit tests for mrpd. The recommended usage for cmake is to create an out-of-tree directory for cmake output of generated makefiles or MSVC project files.

Starting from the OpenAvnu dir, one would go:

mkdir tmp
cd tmp
cmake .. -G "Unix Makefiles"
make

to build in OpenAvnu/tmp

RELATED OPEN SOURCE PROJECTS

AVDECC

Jeff Koftinoff maintains a repository of AVDECC example open source code. AVDECC is a management layer, similar to SNMP MIB formats, which enables remote devices to detect, enumerate and configure AVB/TSN-related devices based on their standardized management properties.

AudioScience has created a 1722.1 C++ controller library which builds on jdkadvecc-c.

XMOS

XMOS is a semiconductor company providing a reference design for AVB/TSN endpoints in pro audio and automotive. XMOS endpoint source code is open source and available on Github - https://github.com/xcore/sw_avb

Apple Vendor PTP Profile

Support for the Apple Vendor PTP Profile can be found on this fork of the OpenAvnu code within the branch ArtAndLogic-aPTP-changes.

These changes allow interaction with Apple proprietary PTP clocks. This implementation has been tested with the Apple AirPlay SDK on a Raspberry Pi 3 running within a group of devices playing the same music stream.