summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandrew-elder <aelder@audioscience.com>2015-12-09 17:43:35 -0800
committerandrew-elder <aelder@audioscience.com>2015-12-09 17:43:35 -0800
commit8e64094f1c0423d794f3629af0603b6e59d902c8 (patch)
tree66f3f78f7b18a02a531e3f16bb29b65dda5e143b
parenta5e8f25585f17b83b4041691fcf2c41ee1f992d6 (diff)
parent9637624d4f3c5cc3dac071b8980f747b619b70c3 (diff)
downloadOpen-AVB-8e64094f1c0423d794f3629af0603b6e59d902c8.tar.gz
Merge pull request #328 from MarcinMiklas/vlan_id_in_avtp_pipeline
New: VLAN ID can be configured for no endpoint builds.
-rw-r--r--lib/avtp_pipeline/intf_ctrl/ctrl_talker.ini3
-rw-r--r--lib/avtp_pipeline/intf_echo/echo_talker.ini3
-rw-r--r--lib/avtp_pipeline/intf_echo/echo_talker_auto.ini3
-rw-r--r--lib/avtp_pipeline/intf_null/null_talker.ini3
-rw-r--r--lib/avtp_pipeline/intf_tonegen/tonegen_talker.ini3
-rw-r--r--lib/avtp_pipeline/intf_viewer/latency_talker.ini3
-rw-r--r--lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_file_talker.ini3
-rw-r--r--lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_talker.ini3
-rw-r--r--lib/avtp_pipeline/platform/Linux/intf_alsa/alsa_talker.ini3
-rw-r--r--lib/avtp_pipeline/platform/Linux/intf_mjpeg_gst/mjpeg_gst_talker.ini3
-rw-r--r--lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_file/mpeg2ts_file_talker.ini3
-rw-r--r--lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_gst/mpeg2ts_gst_talker.ini3
-rw-r--r--lib/avtp_pipeline/platform/Linux/intf_wav_file/wav_file_talker.ini3
-rw-r--r--lib/avtp_pipeline/platform/Linux/tl/openavb_tl_osal.c12
-rw-r--r--lib/avtp_pipeline/tl/openavb_talker_no_endpoint.c6
-rwxr-xr-xlib/avtp_pipeline/tl/openavb_tl.c1
-rwxr-xr-xlib/avtp_pipeline/tl/openavb_tl_pub.h5
17 files changed, 61 insertions, 2 deletions
diff --git a/lib/avtp_pipeline/intf_ctrl/ctrl_talker.ini b/lib/avtp_pipeline/intf_ctrl/ctrl_talker.ini
index ef33fa59..747ff19b 100644
--- a/lib/avtp_pipeline/intf_ctrl/ctrl_talker.ini
+++ b/lib/avtp_pipeline/intf_ctrl/ctrl_talker.ini
@@ -96,6 +96,9 @@ max_transmit_deficit_usec = 50000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/intf_echo/echo_talker.ini b/lib/avtp_pipeline/intf_echo/echo_talker.ini
index 69a0f988..6987e03c 100644
--- a/lib/avtp_pipeline/intf_echo/echo_talker.ini
+++ b/lib/avtp_pipeline/intf_echo/echo_talker.ini
@@ -93,6 +93,9 @@ report_seconds = 1
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/intf_echo/echo_talker_auto.ini b/lib/avtp_pipeline/intf_echo/echo_talker_auto.ini
index d6ec7280..66326964 100644
--- a/lib/avtp_pipeline/intf_echo/echo_talker_auto.ini
+++ b/lib/avtp_pipeline/intf_echo/echo_talker_auto.ini
@@ -93,6 +93,9 @@ report_seconds = 1
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/intf_null/null_talker.ini b/lib/avtp_pipeline/intf_null/null_talker.ini
index 088c2009..3f440cbd 100644
--- a/lib/avtp_pipeline/intf_null/null_talker.ini
+++ b/lib/avtp_pipeline/intf_null/null_talker.ini
@@ -93,6 +93,9 @@ max_transmit_deficit_usec = 50000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/intf_tonegen/tonegen_talker.ini b/lib/avtp_pipeline/intf_tonegen/tonegen_talker.ini
index dbbc9f2d..24a207c9 100644
--- a/lib/avtp_pipeline/intf_tonegen/tonegen_talker.ini
+++ b/lib/avtp_pipeline/intf_tonegen/tonegen_talker.ini
@@ -78,6 +78,9 @@ max_transit_usec = 2000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/intf_viewer/latency_talker.ini b/lib/avtp_pipeline/intf_viewer/latency_talker.ini
index 823ae3b9..f69a6673 100644
--- a/lib/avtp_pipeline/intf_viewer/latency_talker.ini
+++ b/lib/avtp_pipeline/intf_viewer/latency_talker.ini
@@ -103,6 +103,9 @@ max_transmit_deficit_usec = 50000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_file_talker.ini b/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_file_talker.ini
index ffa339a5..0eddb28f 100644
--- a/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_file_talker.ini
+++ b/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_file_talker.ini
@@ -74,6 +74,9 @@ max_transit_usec = 50000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_talker.ini b/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_talker.ini
index 40bb3e38..f98ba668 100644
--- a/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_talker.ini
+++ b/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_talker.ini
@@ -89,6 +89,9 @@ max_transmit_deficit_usec = 50000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/platform/Linux/intf_alsa/alsa_talker.ini b/lib/avtp_pipeline/platform/Linux/intf_alsa/alsa_talker.ini
index 652b9704..e5908906 100644
--- a/lib/avtp_pipeline/platform/Linux/intf_alsa/alsa_talker.ini
+++ b/lib/avtp_pipeline/platform/Linux/intf_alsa/alsa_talker.ini
@@ -87,6 +87,9 @@ max_transmit_deficit_usec = 50000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/platform/Linux/intf_mjpeg_gst/mjpeg_gst_talker.ini b/lib/avtp_pipeline/platform/Linux/intf_mjpeg_gst/mjpeg_gst_talker.ini
index 05b8223e..7e906a76 100644
--- a/lib/avtp_pipeline/platform/Linux/intf_mjpeg_gst/mjpeg_gst_talker.ini
+++ b/lib/avtp_pipeline/platform/Linux/intf_mjpeg_gst/mjpeg_gst_talker.ini
@@ -93,6 +93,9 @@ max_transmit_deficit_usec = 50000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_file/mpeg2ts_file_talker.ini b/lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_file/mpeg2ts_file_talker.ini
index c4f595a0..b5bf26d0 100644
--- a/lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_file/mpeg2ts_file_talker.ini
+++ b/lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_file/mpeg2ts_file_talker.ini
@@ -93,6 +93,9 @@ raw_rx_buffers = 100
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_gst/mpeg2ts_gst_talker.ini b/lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_gst/mpeg2ts_gst_talker.ini
index fa48e7a3..0cc3299b 100644
--- a/lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_gst/mpeg2ts_gst_talker.ini
+++ b/lib/avtp_pipeline/platform/Linux/intf_mpeg2ts_gst/mpeg2ts_gst_talker.ini
@@ -83,6 +83,9 @@ max_transmit_deficit_usec = 50000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/platform/Linux/intf_wav_file/wav_file_talker.ini b/lib/avtp_pipeline/platform/Linux/intf_wav_file/wav_file_talker.ini
index ead3bbfc..9abe8167 100644
--- a/lib/avtp_pipeline/platform/Linux/intf_wav_file/wav_file_talker.ini
+++ b/lib/avtp_pipeline/platform/Linux/intf_wav_file/wav_file_talker.ini
@@ -78,6 +78,9 @@ max_transit_usec = 2000
# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0
+# vlan_id: VLAN Identifier (1-4094). Used in "no endpoint" builds. Defaults to 2.
+# vlan_id = 2
+
#####################################################################
# Mapping module configuration
#####################################################################
diff --git a/lib/avtp_pipeline/platform/Linux/tl/openavb_tl_osal.c b/lib/avtp_pipeline/platform/Linux/tl/openavb_tl_osal.c
index 44d5b1c4..d6ca4264 100644
--- a/lib/avtp_pipeline/platform/Linux/tl/openavb_tl_osal.c
+++ b/lib/avtp_pipeline/platform/Linux/tl/openavb_tl_osal.c
@@ -303,6 +303,18 @@ static int openavbTLCfgCallback(void *user, const char *tlSection, const char *n
valOK = TRUE;
}
}
+ else if (MATCH(name, "vlan_id")) {
+ errno = 0;
+ long tmp;
+ tmp = strtol(value, &pEnd, 0);
+ // vlanID is 12 bit field
+ if (*pEnd == '\0' && errno == 0
+ && tmp >= 0x0
+ && tmp <= 0xFFF) {
+ pCfg->vlan_id = tmp;
+ valOK = TRUE;
+ }
+ }
else if (MATCH(name, "map_lib")) {
if (pTLState->mapLib.libName)
diff --git a/lib/avtp_pipeline/tl/openavb_talker_no_endpoint.c b/lib/avtp_pipeline/tl/openavb_talker_no_endpoint.c
index 5d1aec64..d7e08225 100644
--- a/lib/avtp_pipeline/tl/openavb_talker_no_endpoint.c
+++ b/lib/avtp_pipeline/tl/openavb_talker_no_endpoint.c
@@ -74,12 +74,14 @@ bool openavbTLRunTalkerInit(tl_state_t *pTLState)
pTalkerData->streamID.uniqueID = pCfg->stream_uid;
if (pCfg->sr_class == SR_CLASS_A) {
pTalkerData->classRate = 8000;
- pTalkerData->vlanID = SR_CLASS_A_DEFAULT_VID;
+ pTalkerData->vlanID = pCfg->vlan_id == VLAN_NULL ?
+ SR_CLASS_A_DEFAULT_VID : pCfg->vlan_id;
pTalkerData->vlanPCP = SR_CLASS_A_DEFAULT_PRIORITY;
}
else if (pCfg->sr_class == SR_CLASS_B) {
pTalkerData->classRate = 4000;
- pTalkerData->vlanID = SR_CLASS_B_DEFAULT_VID;
+ pTalkerData->vlanID = pCfg->vlan_id == VLAN_NULL ?
+ SR_CLASS_B_DEFAULT_VID : pCfg->vlan_id;
pTalkerData->vlanPCP = SR_CLASS_B_DEFAULT_PRIORITY;
}
memcpy(&pTalkerData->destAddr, &pCfg->dest_addr.mac->ether_addr_octet, ETH_ALEN);
diff --git a/lib/avtp_pipeline/tl/openavb_tl.c b/lib/avtp_pipeline/tl/openavb_tl.c
index f22191a9..eb9ee145 100755
--- a/lib/avtp_pipeline/tl/openavb_tl.c
+++ b/lib/avtp_pipeline/tl/openavb_tl.c
@@ -395,6 +395,7 @@ EXTERN_DLL_EXPORT void openavbTLInitCfg(openavb_tl_cfg_t *pCfg)
pCfg->rx_signal_mode = 1;
pCfg->pMapInitFn = NULL;
pCfg->pIntfInitFn = NULL;
+ pCfg->vlan_id = VLAN_NULL;
AVB_TRACE_EXIT(AVB_TRACE_TL);
}
diff --git a/lib/avtp_pipeline/tl/openavb_tl_pub.h b/lib/avtp_pipeline/tl/openavb_tl_pub.h
index 58b59dfd..6e46494b 100755
--- a/lib/avtp_pipeline/tl/openavb_tl_pub.h
+++ b/lib/avtp_pipeline/tl/openavb_tl_pub.h
@@ -75,6 +75,9 @@ typedef enum {
/// Maximum size of interface name
#define IFNAMSIZE 16
+/// Indicatates that VLAN ID is not set in configuration
+#define VLAN_NULL UINT16_MAX
+
/// Structure containing configuration of the host
typedef struct {
/// Role of the host
@@ -122,6 +125,8 @@ typedef struct {
bool tx_blocking_in_intf;
/// Network interface name. Not used on all platforms.
char ifname[IFNAMSIZE];
+ /// VLAN ID
+ U16 vlan_id;
/// When set incoming packets will trigger a signal to the stream task to wakeup.
bool rx_signal_mode;