diff options
Diffstat (limited to 'lib/avtp_pipeline/qmgr/openavb_qmgr.c')
-rw-r--r-- | lib/avtp_pipeline/qmgr/openavb_qmgr.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/lib/avtp_pipeline/qmgr/openavb_qmgr.c b/lib/avtp_pipeline/qmgr/openavb_qmgr.c index bf717157..5c054eb2 100644 --- a/lib/avtp_pipeline/qmgr/openavb_qmgr.c +++ b/lib/avtp_pipeline/qmgr/openavb_qmgr.c @@ -1,5 +1,6 @@ /************************************************************************************************************* Copyright (c) 2012-2015, Symphony Teleca Corporation, a Harman International Industries, Incorporated company +Copyright (c) 2016-2017, Harman International Industries, Incorporated All rights reserved. Redistribution and use in source and binary forms, with or without @@ -57,14 +58,19 @@ typedef struct { #endif int mode; int ifindex; - char ifname[IFNAMSIZ]; + char ifname[IFNAMSIZ + 10]; // Include space for the socket type prefix (e.g. "simple:eth0") U32 linkKbit; U32 nsrKbit; U32 linkMTU; int ref; } qdisc_data_t; -static qdisc_data_t qdisc_data; +static qdisc_data_t qdisc_data = { +#if (AVB_FEATURE_IGB) + NULL, +#endif + 0, 0, {0}, 0, 0, 0, 0 +}; // We do get accessed from multiple threads, so need a mutex pthread_mutex_t qmgr_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; @@ -97,18 +103,20 @@ static qmgrStream_t qmgr_streams[MAX_AVB_STREAMS]; static bool setupHWQueue(int nClass, unsigned classBytesPerSec) { int err = 0; +#if (AVB_FEATURE_IGB) U32 class_a_bytes_per_sec, class_b_bytes_per_sec; +#endif AVB_TRACE_ENTRY(AVB_TRACE_QUEUE_MANAGER); +#if (AVB_FEATURE_IGB) if (nClass == SR_CLASS_A) { class_a_bytes_per_sec = classBytesPerSec; - class_b_bytes_per_sec = qmgr_classes[SR_CLASS_B].classBytesPerSec; + class_b_bytes_per_sec = qmgr_classes[SR_CLASS_B].classBytesPerSec; } else { - class_a_bytes_per_sec = qmgr_classes[SR_CLASS_A].classBytesPerSec; + class_a_bytes_per_sec = qmgr_classes[SR_CLASS_A].classBytesPerSec; class_b_bytes_per_sec = classBytesPerSec; } -#if (AVB_FEATURE_IGB) err = igb_set_class_bandwidth2(qdisc_data.igb_dev, class_a_bytes_per_sec, class_b_bytes_per_sec); if (err) AVB_LOGF_ERROR("Adding stream; igb_set_class_bandwidth failed: %s", strerror(err)); @@ -214,7 +222,7 @@ void openavbQmgrRemoveStream(U16 fwmark) // update class qmgr_classes[nClass].classBytesPerSec -= qmgr_streams[idx].streamBytesPerSec; - AVB_LOGF_DEBUG("Removed strea; classBPS=%u, streamBPS=%u", qmgr_classes[nClass].classBytesPerSec, qmgr_streams[idx].streamBytesPerSec); + AVB_LOGF_DEBUG("Removed stream; classBPS=%u, streamBPS=%u", qmgr_classes[nClass].classBytesPerSec, qmgr_streams[idx].streamBytesPerSec); // and stream memset(&qmgr_streams[idx], 0, sizeof(qmgrStream_t)); } @@ -267,7 +275,7 @@ bool openavbQmgrInitialize(int mode, int ifindex, const char* ifname, unsigned m // Save the configuration if (ifname) - strncpy(qdisc_data.ifname, ifname, IFNAMSIZ - 1); + strncpy(qdisc_data.ifname, ifname, sizeof(qdisc_data.ifname) - 1); qdisc_data.ifindex = ifindex; qdisc_data.linkKbit = link_kbit; qdisc_data.linkMTU = mtu; |