Hi Clemens,
I guess I just didn't notice that empty packets don't need to change their FDF field. This is a bug.
I also paied no attension to empty packets. Then BeBoB chipset teach me.
Empty packets should be fine for all devices. (NO-DATA packets would waste DMA bandwidth.)
I completely agree with you. Would you review an attached patch?
Thanks
Takashi Sakamoto
(Nov 22 2013 20:47), Clemens Ladisch wrote:
Takashi Sakamoto wrote:
I have a question about generate packet with 'no data' in blocking mode. I think there is out of specification in current firewire-lib.
In my understanding of IEC 61883-6, there are two ways:
generate 'empty packet' defined in IEC 61883-1
- size of packet is 2 quadlets
- FDF = sfc
- packet includes just CIP headers
generate 'special non-empty packet' defined in IEC 61883-6
- size of packet is following to blocking mode
- FDF = 0xff ('NO-DATA' code)
- packet includes dummy data
But current implementation is a strange combination of them.
- size of packet is 2 (way 1)
- FDF = 0xff (way 2)
It's an empty NO-DATA packet. ;-)
I guess I just didn't notice that empty packets don't need to change their FDF field. This is a bug.
If this is a qurk for some devices, I'll prepare patches to switch generating mode because BeBoB cannot sound with current firewire-lib. If this is a bug, then I want to discuss which is better for firewire-lib.
Empty packets should be fine for all devices. (NO-DATA packets would waste DMA bandwidth.)
Regards, Clemens