tcpdump mailing list archives

Re: DLT Request for Radio Data System (RDS)


From: Jonathan Brucker <jonathan.brucke () gmail com>
Date: Thu, 15 Sep 2016 16:36:24 +0000

On Thu, Sep 15, 2016 at 2:16 AM, Guy Harris <guy () alum mit edu> wrote:
On Sep 14, 2016, at 7:13 AM, Jonathan Brucker <jonathan.brucke () gmail com> wrote:
Does it make more sense to define an enum (0..7) instead of ASCII symbols?
So I'm OK with changing it - but let's do it quickly.  It's not on the tcpdump.org site yet, so it's not really 
"published", so we could change it, but I'd rather get it done ASAP before it does get published.

All right, we'll change it to enum instead of ASCII characters.

There's "do the same" as in "using 0 through 5" (is there any need to have a value for "invalid"?  Will there ever be 
a block with an invalid offset word?), and there's "do the same" as in "add #defines to libpcap".

The RDS standard allows the option of decoding partially corrupted frames,
notably decoding Information Word #1 (Program Identification) even if
the remaining
Information Words are corrupt/invalid.

For completeness, I'm posting the updated packet structure below:

RDS Packet Structure

+---------------------------+
|  RDS Information Word 1   |
|         (2 Octets)        |
+---------------------------+
|  RDS Information Word 2   |
|         (2 Octets)        |
+---------------------------+
|  RDS Information Word 3   |
|         (2 Octets)        |
+---------------------------+
|  RDS Information Word 4   |
|         (2 Octets)        |
+---------------------------+
|     RDS Offset Word 1     |
|         (1 Octet)         |
+---------------------------+
|     RDS Offset Word 2     |
|         (1 Octet)         |
+---------------------------+
|     RDS Offset Word 3     |
|         (1 Octet)         |
+---------------------------+
|     RDS Offset Word 4     |
|         (1 Octet)         |
+---------------------------+

Description:

Note: the RDS frame is also known as a "group" in the RDS standard.

The RDS frame consists of 4 RDS Information Words, each 16 bits,
followed by 4 Offset Symbols, each 8 bits, for a total of 12 octets.

The Information Words are as specified in the RDS standard.
Encoding is Big-Endian, as in the standard.

The Offset Word values represent the detected syndromes for the
corresponding Information Words, and are used in the interpretation
of Information Words, as per RDS standard.

The valid Offset Word values are:

Offset | "Offset Word"   | Offset xor value
Values | in RDS Standard | in RDS standard
-------|-----------------|----------------
0      | A               | 0011111100
1      | B               | 0110011000
2      | C               | 0101101000
3      | D               | 0110110100
4      | c' (C-TAG)      | 1101010000
5      | E (MMBS)        | 0000000000
255    | Invalid offset word

(from US RBDS Standard 1998, tables P.2, P.3)

Sample Frames:

d3 93 05 c8 e1 17 57 44 00 01 02 03
d3 93 05 c9 e1 17 52 20 00 01 02 03
d3 93 05 ca e1 17 33 20 00 01 02 03
d3 93 05 cf e1 17 20 20 00 01 02 03

The preceding 4 frames encode the following station:
* Program Identification (PI) = 0xd393
* Station Name = "WDR 3   "
* Alternate Frequency = 89.8 MHz
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers () lists tcpdump org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Current thread: