[prev in list] [next in list] [prev in thread] [next in thread] 

List:       tcpdump-workers
Subject:    Re: [tcpdump-workers] DLT Request for Radio Data System (RDS)
From:       Jonathan Brucker <jonathan.brucke () gmail ! com>
Date:       2016-09-15 16:36:24
Message-ID: CAJNLcCrxONo+i0XqinFCA11KR71z3989a3paaRVzr9K1_SFj6g () mail ! gmail ! com
[Download RAW message or body]

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic