Git Product home page Git Product logo

openavnu's People

Contributors

adiknoth avatar aholzinger avatar asitom avatar avinash-palleti avatar bdthomsen avatar christopher-s-hall avatar craiggunther avatar dbrignoli avatar grandcat avatar intel-ethernet avatar itrandafir avatar jakubmielczarekstc avatar jdkoftinoff avatar jfornal avatar k-gupta avatar kencarlino avatar m10k avatar mamatabhat avatar marcinmiklas avatar mwasko avatar pawelmodrzejewski avatar pinealservo avatar psow avatar rhii avatar richardcochran avatar rikusw avatar sgturner avatar stevengear avatar tnishiok avatar xylophant avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openavnu's Issues

gptp timestamps

Hi,

Incoming and outgoing packets are timestamped in gptp using the SO_TIMESTAMPING socket option. The socket API is returning system time and the device time when the flags SOF_TIMESTAMPING_SYS_HARDWARE, SOF_TIMESTAMPING_RAW_HARDWARE are set.

Can any one please explain me what each of these times represent and where are these values populated. I can see in the igb driver hwtstamp of skb is being updated. I guess this is the device time.

Thanks,
Anil

Need help to calculate gptp time

Hello,

I am currently debugging gptp daemon. I have intel card hardware. Now how can I make sure that local time in gptp daemon and Intel hardware counter time is in sync? Can you let me know how I can get those two times?

Thanks & Regards,
Keyur Parekh

gPTP bug mapping bug

When we run gPTP for an extended period and use system time to "deduce" PTP time, we are running in to issues about 10 times in a 12 hours run where there is a discontinuity (about 60 usec).

So far we have tracked the issue down to daemons/gptp/common/ptp_message.cpp.
In function PTPMessageFollowUp:;processMessage()
https://github.com/AVnu/Open-AVB/blob/open-avb-next/daemons/gptp/common/ptp_message.cpp#L864

it seems like the mapping calculations do not always work correctly.

maap and gstreamer plugins not compiling

hi,

sorry to bother you again...
I have been trying to compile the maap daemon and the gstreamer-plugin with little to no success so far.
If I try compiling the GStreamer-plugin and I get this message:
make[2]: *** No rule to make target libgstplugin.c', needed bylibgstplugin_la-libgstplugin.lo'. Stop.

From what I gather this is caused by the makefile. Am I correct in the assumption that the whole thing should compile without me having to change anything?

I also tried my luck with the maap daemon:
/usr/bin/ld: cannot open output file ../build/maap_daemon: No such file or directory

I don't really think there is something wrong with the two packages.... So does anyone have an idea what I might be doing wrong?

Question regarding msrp's: remap local requests into registrar events

Hi,

I am currently trying to understand the source code of this project. But I couldn't understand this particular piece of codes, found in msrp_event() function in daemons/mrpd/msrp.c:

case MRP_EVENT_NEW:
            mrp_registrar_fsm(&(attrib->registrar),
                      &(MSRP_db->mrp_db), MRP_EVENT_RNEW);
            break;

Unless I missed something, I don't recall the official IEEE802.1Q-2011 document mentioning that a declaring-participant (a talker for example) must register the attribute that is being declared. This is contrary to what is implemented in this daemon; Every time there is a MRP_EVENT_NEW or MRP_EVENT_JOIN, the daemon will notify the registrar as if there is MRP_EVENT_RNEW or MRP_EVENT_RJOININ/MT, thus registering the attribute.

From what I understand, MRP_EVENT_RNEW and MRP_EVENT_RJOININ/MT events are only generated when the mrp participant receives an MRPDU containing New, JoinIn or JoinMt of the concerned attribute.

I hope somebody could enlighten me over this matter.

Thanks

~~ gPTP Daemon And Synchronization ~~

Hi,

While going through the gPTP daemon we didnot find a single instance about how the "system time regsiters" of MAC(PTP Domain) are getting updated depending on the offsets calculated in the daemon.
Nor any of the functions in "igb_ptp.c" like igb_ptp_adjtime are being called.
So our main query is how these registers are getting updated based on the FreqOffset and MasterTimeOffset.

Regards,
Sumeet Jain

~~ gPTP Daemon And Synchronization ~~

Hi,

We have "i210" on both the PC(One of them working as Talker and Other as Listener). Now when we run the daemon on listener side, we came across the fact that not a single time "igb_ptp_adjtime_i210" is being called.

"igb_ptp_init.c" is initializing the PTP clock registers(System Time Registers) using gettimeofday API. And hence I deduce that it should have called "igb_ptp_adjtime_i210" atleast once given both the PTP clocks working at the same frequency.

Or is it like some other implemention has been done in the daemon that is eluding our attention ?.

Regards,
Sumeet Jain

igb_main.c fails to compile against a kernel newer than v3.14

compare_ether_addr() is removed since kernel v3.14. ether_addr_equal() is used instead, while it has an opposite polarity in return value.
https://lkml.org/lkml/2013/12/5/595

Build error is pasted here:
[ 59s] /home/abuild/rpmbuild/BUILD/openavb-20130814/kmod/igb/igb_main.c:2075:5: warning: initialization from incompatible pointer type [enabled by default]
[ 59s] .ndo_select_queue = igb_select_queue,
[ 59s] ^
[ 59s] /home/abuild/rpmbuild/BUILD/openavb-20130814/kmod/igb/igb_main.c:2075:5: warning: (near initialization for 'igb_netdev_ops.ndo_select_queue') [enabled by default]
[ 60s] /home/abuild/rpmbuild/BUILD/openavb-20130814/kmod/igb/igb_main.c: In function 'igb_del_mac_filter':
[ 60s] /home/abuild/rpmbuild/BUILD/openavb-20130814/kmod/igb/igb_main.c:9051:3: error: implicit declaration of function 'compare_ether_addr' [-Werror=implicit-function-declaration]
[ 60s] if (!compare_ether_addr(addr, adapter->mac_table[i].addr) &&
[ 60s] ^

Please make the kernel module work with the latest upstream kernel.

trouble with mrpd

Hello,

I have been trying to set up two AVB Endpoints and have them connect to each other. For this I have two Linux computers with an Intel i210 Networkadapter. In compiled and installed the igb_avb network driver, the gptp daemon and the mrpd daemon on both machines. I also installed simple_talker on one and simple_listener on the other.

I connected the two machines directly to each other (no switch).

GPTP seems to work fine.
But when I run mrpd (sudo ./mrpd -mvs -i eth0)I get malformed MMRP-packets in wireshark. Strangely on either machine only the outgoing packets are labled as malformed.

When I ignored this and tried the simple_talker -> simple_listener setup I got a bunch of packets that only contained numbers (wireshark did not recognize a protocoll or anything. they were just numbers)

Does anyone have an idea what might be wrong? Or at least what to do to get some more usful information?

Max

Add gitignore to topdir

Add the generated files that are not pushed to git to .gitignore file. Add also build directory, which is created by travis.sh script

Indentation and Coding Style

Hi all,

kudos to Intel and everyone who has contributed to this repository.
It's a pleasure to work with the driver and tools in here.

However, there's no fixed coding style and indentation is a mess throughout the repo.
I'm glad that someone has fixed trailing white space in a previous commit but there is still a potpourri of spaces and tabs for indentation.

Has anyone in charge an idea how to solve this? A commit containing only conversions to (spaces | tabs)? A reference to a style guide?

Best
Marc

Trying out the "live stream" example

I have been playing around with the examples.
I compiled the live stream example and tried to run it.
I used the exact commands stated in the readme but I get somewhat confusing error messages:

ERROR: pipeline could not be constructed: no element "alsasrc".

for the talker side.
And

WARNING: erroneous pipeline: no element "audioparse"

for the listener side.

I did run as root. And I checked the list of loaded GST plugins... alsasrc and audioparse were both there.
The readme was not helpful.
Any ideas what I might have gotten wrong?

MRP processing of rJoinIn!

Another fun MRP issue!

Background is that receipt of a JoinIn attribute event is causing the join timer to start which in turn causes a leaveAll to be sent which someone has observed to stop streams on an Extreme switch. Specifically mrpd sends a LVA for domain class A and in response to a later (250ms) domain class B JoinIn, sends another LVA that is "too close" to the class A LVA thereby causing class A reservation to no longer be defended.

Applicant state table (Table 10-3) does not show any state combinations for a rJoinIn! event that should cause the join timer to start (operPointToPointMAC is true).

msrp.c unconditionally calls mrp_jointimer_start() when msrp_event() processes an MRP_EVENT_RJOININ. I can add some code to msrp_event() to prevent this, but the "correct" approach I believe is to update mrp_applicant_fsm() so that it returns a join_request flag. That way the state transitions listed in note 6 can be more accurately detected. Comments?

  • Andrew

gptp fails if group 'ptp' nonexistent

call to LinuxSharedMemoryIPC::init() fails if group 'ptp' does not exist.

            grp = getgrnam( group_name );
            if( grp == NULL ) {
                    XPTPD_ERROR( "Group %s not found", group_name );
                    goto exit_error;
            }

Daemon appears to start and run, but shared memory segment fails to be created and clients (like simple_talker) will segfault trying to open and use the reference.

How to calculate credit based shaper values

Hello,

I am currently trying to understand credit based shaper algorithm. but I don't understand how to calculate hi credit. low credit , send slop and ideal slop values?

Can anybody provide some equation to calculate these values?

Open-AVB documentation

Hello,

I'm using Open-AVB in a soft switch. I've been trying to find documentation about this platform besides the instructions in the "Read me" files.
Are there more detailed documents.

Many thanks

Ricardo Sousa

Open-AVB: header files missing while building gptp dameon

Hi Chris,

While building Open-AVB source, I got below errors, can you please point me how to proceed further.

Error:
root@rtp1-desktop:~/work/chiranjeevi/Open-AVB-master/daemons/gptp/linux/build# make
g++-4.4 -Wall -g -Wnon-virtual-dtor -I. -I../../common -I../src -I../../../../lib/igb/ -I/home/chris/headers/include/ -c ../src/linux_hal.cpp -o obj/linux_hal.o
../src/linux_hal.cpp:39: fatal error: pci/pci.h: No such file or directory
compilation terminated.
make: *** [obj/linux_hal.o] Error 1

Basically there is no header file pci/pci.h in open-AVB source.
Currently I am using 11.10 ubuntu version, and kernel version is 3.0.0-12-generic.
Should I include any external header files & should I upgrade my ubuntu with newer version ??

Please help me out of this & I am eagerly waiting for your solution ....

Thanks
Chiranjeevi

Wrongly comparing stream ID's in example/jackd-listener/jack_listener.c

Instead of this "if (0 != memcmp(test_stream_id, stream_id, sizeof(STREAM_ID_SIZE))) " It should just be "if (0 != memcmp(test_stream_id, stream_id, STREAM_ID_SIZE ))" .
You have already defined STREAM_ID_SIZE to be 8.

When we have multiple talkers and multiple listeners this will simply fail.

A test scenario

Hi Andrew,

I read the document that you advise me but it doesn´t say how the listener and talker interact with the mrp and gptp daemons(applications).
In a first approach I tried a simple virtual switch to connect the listener and the talker(with wireshark monitoring). The point is to put all running in the same machine for simulation purprose(prove of concept) .Is that possible?
But the talker didn´t work(asked root permissions but it had all permissions), the gptp returned an error(probably it was a problem of usage).
As you see I have just get started on this platform. Could you help me? Is there any specs about this entities?

Many thanks and all the best.

Ricardo Sousa

Need help to calculate coarse correction parameters

Hello,

I am currently runnin gptp daemon. In that I could not find the calculation for coarse correction method. If there is drift between master and slave and if your talker is running as gptp slave, than we need to tune hardware registers. So can anybody point out me where all calculations are implemented in daemon?

MSRP: Streams with consecutive StreamIDs

Hi!

I have a question concerning the mrpd and StreamIDs. I encountered the following strange behaviour:

When I declare two streams with consecutive StreamIDs the second stream gets the same parameters as the first one no matter what I declare.

Example:
I send using a modified mrpctl the following Commands:

"S++:S=FFEEDDCCBBAA9987,A=112233445568,V=0005,Z=1000,I=2,P=96,L=1000"
"S++:S=FFEEDDCCBBAA9988,A=112233445567,V=0005,Z=576,I=3,P=64,L=1000"

Resulting Stream Reservation in the Switch is:

     Stream Id              Destination     Port  Dec    Vid  Cls/Rn     BW
  -----------------------  -----------------  ----  ----  ----  ------  ---------
ff:ee:dd:cc:bb:aa:99:87  11:22:33:44:55:68  2     Adv      5  A/0    133.504 Mb
ff:ee:dd:cc:bb:aa:99:88  11:22:33:44:55:69  2     Adv      5  A/0    133.504 Mb

So you see the Packets, PacketsPerIntervall and the traffic class is completely ignored. The destination MAC is increased by one (in the declaration it's one less).

Okay, so to find the source I started Wireshark. And saw the following MSRP Packet:

    Message: Talker Advertise (1)
    Attribute Type: Talker Advertise (1)
    Attribute Length: 25
    Attribute List Length: 30
    Attribute List
        Vector Attribute
            Vector Header: 0x0002, Leave All Event: Null
                000. .... .... .... = Leave All Event: Null (0)
                ...0 0000 0000 0010 = Number of Values: 2
            First Value
                Stream ID: 0xffeeddccbbaa9987
                Stream DA: 11:22:33:44:55:68 (11:22:33:44:55:68)
                VLAN ID: 0x0005
                TSpec Max Frame Size: 1000
                TSpec Max Frame Interval: 2
                Priority and Rank: 0x60, Priority: Traffic Class A, Rank: Emergency, Reserved: Reserved-0
                    011. .... = Priority: Traffic Class A (3)
                    ...0 .... = Rank: Emergency (0)
                    .... 0000 = Reserved: Reserved-0 (0)
                Accumulated Latency: 1000
            Attribute Event: New (0)
            Attribute Event: New (0)
        End Mark: 0x0000

So I guess it's part of MSRP that you can group Streams that are identical by setting this "Number of Values" to two.

But I defined different parameters for the two connections. So my question is: is it defined somewhere, that streams with consecutive IDs have identical parameters? Or is this a bug in mrpd?

Gstreamer - configure error

Gstreamer-avb-plugins
LDFLAGS='-L/Open-AVB-master/lib/igb' CPPFLAGS='-I/Open-AVB-master/lib/igb' LIBS='-ligb -lpci -lrt -lpthread -lm -lgstapp-1.0' ./configure

displays error
"checking for gcc... gcc
checking whether the C compiler works... no
configure: error: C compiler cannot create executables
./configure seems to work fine without LDFLAGS

simple_listener, simple_talker bugs

  • neither attempt to join the appropriate VLAN prior to attempting to stream or listen to a stream.
  • simple_listener does not process the messages out of MRP sufficiently to detect an active stream is available. It currently connects to the mrpd, and processes messages in msg_process(), but the code which looks only for "SNET" is not correct.
  • simple_listener does not initialize the pcap mac address filter with the detected stream mac address.

Implement !asCapable upon large neighbor delay

gPTP should be marked as not capable (asCapable = false/NULL etc) when the neighbour delay is bigger than a threshold.
The default pdelay threshold for various hardware link types is specified in IEEE Std 802.1AS-Cor1-2013 Table 11-0 "Value of neighborPropDelayThresh for various links”, in clause 11.2.2. It needs to be configurable because a user may be using a converter to fibre and the software won’t know until the administrator changes it.

MRPD - mrsp emit of an attribute does not clear tx flag

In mrp.c, the applicant state machine sets each attribute's tx flag if that attribute should be transmitted. When msrp_txpdu() in msrp.c is run, an attribute's tx flag should be reset as the attribute is encoded in the PDU to be sent on the wire.

Usage of Open AVB Stack for i.mx6 SABRE board

Currently i am working on use case to create Open AVB demo for one of tour application on IVI(In Vehicle Interface).
Followings are my queries

  1. Does open AVB stack available with xCore architecture be ported to i.mx6 core
  2. What are documentation need to follw for the demo.

Many Thanks
Anand

Want to use Open AVB stack with AVB switch

Hello,

Currently I am planning to test Open AVB stack with switch. So want to know that is current gptp and msrp support switch as well or not?

Thanks & Regards,
Keyur Parekh.

Review configuration interface

Current configuration interface is done through switches upon gPTP initialization. Improve the current one to support more parameters.

Here the current configuration switches we have:
./daemon_cl [-S] [-P] [-M ] [-A ] [-G ] [-R <priority 1>]
-S start syntonization
-P pulse per second
-M save/restore state
-A initial accelerated sync count
-G group id for shared memory
-R <priority 1> priority 1 value
-T force master
-L force slave

We could embed that on a gPTP.cfg and read this file on its initialization. Eventually we will need more parameters, as for instance the phy delay, which currently has to be manually set on a define (and hence recompile the gPTP). Code below:

linux/src/linux_hal_generic.cpp:52:#define TX_PHY_TIME 184
linux/src/linux_hal_generic.cpp:53:#define RX_PHY_TIME 382
linux/src/linux_hal_generic.cpp:55://#define TX_PHY_TIME 8000
linux/src/linux_hal_generic.cpp:56://#define RX_PHY_TIME 8000

MRPD: Problems with situations where attributes won't fit in a single PDU

  1. The state machine execution for tx events transfers to the next state assuming its message will get in the PDU. This is incorrect; when the current PDU is full, processing of subsequent tx! events should not transition and txLA! should change to txLAF! and execute those transitions instead. The correct behavior could be achieved by interleaving the machine execution and PDU filling, or by rolling back and amending the tx transitions that didn't fit after running the PDU transmit.
  2. When we're interrupted in the middle of traversing the list of attributes by a full PDU condition, we start over at the beginning again on the next tx opportunity. This means that with a bunch of newly-registered attributes, which are "very anxious", you'll see two PDUs full of join+new attribute vectors for the first bunch of them before the later ones are processed at all. While not technically wrong as far as I can tell, this seems awkward.
  3. The PDU transmitting functions abort in situations they shouldn't, causing well-formed PDUs to not be transmitted.

gptp build error (missing header files fixed by Chris on local machine)

To whom it may concern,
There appears to be some missing header file(s) that Chris put as the "ALTERNATE_LINUX_INCPATH=/home/chris/headers/include/

Maybe there is a prerequisite that the README does not talk about???

I get this build error under Ubuntu 12.04 LTS:

jeff2@jeff2-ThinkCentre-M57p:~/Documents/OpenAVB/daemons/gptp/linux/build$ make
g++ -Wall -g -Wnon-virtual-dtor -I. -I../../common -I../src -I../../../../lib/igb/ -I/usr/src/linux-headers-3.8.0-37-generic/ -c ../../common/ptp_message.cpp -o obj/ptp_message.o
g++ -Wall -g -Wnon-virtual-dtor -I. -I../../common -I../src -I../../../../lib/igb/ -I/usr/src/linux-headers-3.8.0-37-generic/ -c ../../common/avbts_osnet.cpp -o obj/avbts_osnet.o
g++ -Wall -g -Wnon-virtual-dtor -I. -I../../common -I../src -I../../../../lib/igb/ -I/usr/src/linux-headers-3.8.0-37-generic/ -c ../../common/ieee1588port.cpp -o obj/ieee1588port.o
g++ -Wall -g -Wnon-virtual-dtor -I. -I../../common -I../src -I../../../../lib/igb/ -I/usr/src/linux-headers-3.8.0-37-generic/ -c ../../common/ieee1588clock.cpp -o obj/ieee1588clock.o
g++ -Wall -g -Wnon-virtual-dtor -I. -I../../common -I../src -I../../../../lib/igb/ -I/usr/src/linux-headers-3.8.0-37-generic/ -c ../src/linux_hal.cpp -o obj/linux_hal.o
In file included from ../src/linux_hal.cpp:34:0:
../src/linux_hal.hpp: In member function ‘int LinuxTimestamper::findPhcIndex(InterfaceLabel_)’:
../src/linux_hal.hpp:256:26: error: aggregate ‘LinuxTimestamper::findPhcIndex(InterfaceLabel_)::ethtool_ts_info info’ has incomplete type and cannot be defined
../src/linux_hal.hpp:272:14: error: ‘ETHTOOL_GET_TS_INFO’ was not declared in this scope
../src/linux_hal.hpp:284:2: warning: control reaches end of non-void function [-Wreturn-type]
make: *** [obj/linux_hal.o] Error 1

MRPD - overflow of PDU to be transmitted bug

In msrp.c, the logic to detect when a frame is "too full" is not correct. Crashes (segmentation faults) have been observed when many attributes are declared. The problem is that the conditional used in the while() loop to encode attributes is incorrect. This definitely applies to msrp_emit_XXXXX() functions. It may also apply to equivalent mvrp and mmrp functions.

~ Ethernet AVB switch ~

Hie,
We are running talker and listener programs for streaming audio/video data. We are using Intel I210 ethernet AVB cards on both the sides. We are using AVB protocol stack downloaded from this github. When we establish a direct connection between the talker and listener we are able to get the expected Inter packet Gap(IPG) of 125usec but after deploying AVB ethernet switch the expected value gets disturbed and it shows around 900-1000usec.
What I am assuming is that the msrp module that we are running on talker side is failing to reserve the resources(bandwidth) along the talker-switch-listener path.
Is my assumption correct ? And if not what can be factors that are affecting IPG of packets received at listener side ?

Any help will be a great relief.

Regards,
Sumeet Jain

Openavb with another intel ethernet controller

Hello all. I got xmos avb boards and connect with iptime switch. So I installed openavb under linux. However open-avb say it used I210. Mine is I82540EM ethernet controller. I checked it
under ubuntu 13 using lspci -nn | grep Eth command.

daemon_cl and simple talker did not work for me.

a) daemon_cl says failed to get interface address: no such device failed to initialize port.
(In my openion above error is because of different ethernet controller)
Is it right?
IF yes how to solve this problem?

there is some issue that I knew. ./daemon_cl eth0 gives :failed to configure timestamping..
but ./daemon_cl -i eth0 gives error (a).

b) ./simple_talker -i eth0 -t 2 gives connect to failed (Success) - are you running as root?

(a) and (b) are because of my ethernet controller(I82540EM)?

also in /dev/ptp* does not exist.

Please discuss on this issue thank you.

Fix build system for gstreamer plugins and integrate with CI build

The gstreamer plugins in the example directory aren't currently being built, and require (as per their README) some manual steps to build. We should:

  1. Set up the automake/autoconf configuration so that both the talker and listener component are buildable via the standard process for automake/autoconf-style projects.
  2. Add build rules to the top-level Makefile that will perform the build process.

Help Regarding Compiling Open AVB Code

Hi,

I am new to the AVB development platform and require help regarding Compiling the open source code.
Can you please tell me what are the basic tools and software needed to compile the open source code on Ubantu and what are the basic steps to compile different kernel provided in open source,please let me know which source cod should i download from Github and start simple talker and listener program .

Regards

jackd_listener underruns

I finally figured out how to use JACK and have the jackd_talker/listener working. I am using the built-in sound cards on two machines running Ubuntu 12.04 LTS. After about 30 seconds, the listener starts reporting underruns and (obviously) I hear these artifacts. I am using rtprio at 86 (both ends) and RT scheduling in the talker at 89. Buffers are at 2048. Made no difference. I assume the underruns are due to my clock domains drifting with respect to one another. A few questions:

  1. What does Intel recommend for media clock recovery?
  2. In the short run, should I use external USB sound cards with a synchronous word clock? Do you think this would eliminate the underruns?
  3. Long term, if there was some type of pilot stream that provides media clock data, how would this data control a external USB sound card?
  4. Some said the IGB i210 card has a clock output on it. What is this for?

I have developed several readme files for both simple listener/talker and jackd versions. I also have created scripts to set everything up (all daemons, applications, etc.). I can submit these if anyone cares. Most of this would fall under "Documentation". I also fixed the jackd_talker so it would connect the ports automatically (internal sound card to the jackd_talker) without requiring this to be done manually. I presume Adrian did not do this because of the clock drift issues and he was using some external USB sound card.

Using open AVB stack in Ubuntu 12.04 kernel version 3.5.0

Hi,
Curently i am studying ethernet AVB protocols and i am trying to implement the open AVB stack in my PC, this open AVB stack comprises of daemons, Kmod, lib etc.Please clarify the following doubts

  1. Is daemons package alone is enough to establish AVB communication?
  2. In kmod Readme they have mentioned it is only for Intel I210 card, at present i dont have this card? Is it neccessary to build igb module for establishing AVB ?
  3. This kmod alone is enough to build open AVB stack rather than using daemons or we have to build both igb module and daemons?
  4. what are all the steps to be followed to build this Open AVB stack in ubuntu 12.04 kernel version 3.5.0?

PS: I am new to this field, please provide the answers for the above queries. Thanks in advance

Regards,
Shiek Mohammed

remove open-avb-1.0

I would like to remove branch open-avb-1.0.
I assume no-one is actually using it right now?
I'll give folks one week to voice objections.

igb_clean problem

At the beginning of the igb_clean() method, there is an if condition inside the for loop which returns in case the first queue available descriptor is equal to adapter->num_tx_desc. This causes a problem if we use only class B traffic (and not class A traffic). In this case, we never managed to clean up the class B descriptors since this function returns immediately.

  for (i = 0; i < adapter->num_queues; i++) {
            txr = &adapter->tx_rings[i];
            if (txr->tx_avail == adapter->num_tx_desc) {
                    txr->queue_status = IGB_QUEUE_IDLE;
                    return;
            }
        ...

SW API reconciliation

List all differences we have on gPTP against SW API best practices and keep them as close as possible.

Query for using Open AVB Stack

Dear Sir,

We are using Intel I210 ethernet AVB cards to test Talker Listener functionality. We download Open AVB stack and running Simple listener and simple talker on Inter I210 cards. Now when we start transmitting Audio stream from talker we measure time at listener side for receiving each audio packets. It takes around 125 us to reach each packet at listener side. But some time we found it taker more than 1ms time to reach to listener, even in one talker and one listener scenario.

After that we use AVB-SW from dsp4you company. When we insert switch between talker-listener than it creates more problem. Listener getting data at around 900us. So we are getting delay of 900us between each packets.

Below I have provided link for AVB switch.
http://www.dsp4you.com/products/avb-oem-series/avb-sw

So, I want to know that, do we need to change gptp daemon or MRPD daemon to use it with AVB-SW or I can use it straight forward with switch?

Let me know your inputs.

Thanks & Regards,
Keyur Parekh.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.