[tcpdump-workers] Linktype allocation for ATSC link layer protocol

Nick Kelsey nickk at silicondust.com
Fri Mar 20 13:28:27 EDT 2020


After going to interop/test events and discussions with other engineers 
in the field it looks like a lot of the junk in the ATSC ALP protocol 
will never be used and can be ignored.

The protocol is defined in the ATSC A/330 standard.

Proposed implementation:

1) Check the packet_type (first 3 bits of the packet). If the packet 
type is 7 (MPEG2 transport stream) then report "MPEG2 transport stream" 
and stop parsing. It is likely this packet type will never be used in 
real-world use. Note that the fields that follow don't apply when the 
packet type is 7 - all we can do is report the packet type and stop.

2) If the payload_configuration bit is 1 check the 
segmentation_concatenation bit.

If the segmentation_concatenation bit is 0 report that it is a 
"segmented packet" and stop parsing. It is likely this mode will never 
be used in real world use (the layer below this protocol does 
segmentation/reassembly).

If the segmentation_concatenation bit is 1 report that it is a 
"concatenation packet" and stop parsing. It is likely this mode will 
never be used in real world use.

3) If the payload_configuration bit is 0 then the packet is useful!

If header_mode is 0 then report the length and the packet_type. The 
packet type will typically be IPv4 packet (packet_type = 0) where the 
payload is a normal IPv4 packet.

The other possible packet type is a link layer signalling packet 
(packet_type = 4). In this case there is an "Addition Header for 
Signaling" header followed by a table. Note that the payload_length 
tells you the table length - it does not include the "Addition Header 
for Signaling" header length.

If header_mode is 1 then parse the single_packet_hdr().

If SIF flag is set then parse/skip sub_stream_identification() header.

If HEF flag is set the parse/skip header_extension() header.

At this point you look at the packet type, following the same logic as 
header_mode 0 above.

Nick




More information about the tcpdump-workers mailing list