Understanding IEEE 1722

84 downloads 559 Views 2MB Size Report
9 Mar 2009 ... IEEE 1722 enables interoperable streaming by defining: ... 1-3 byte padding as necessary to fill last quadlet on last or only fragment status.
Understanding IEEE 1722 AVB Transport Protocol - AVBTP

Robert Boatright Chair, IEEE 1722 [email protected] 9 March 2009

What is the purpose of the AVB Transport Protocol?  IEEE 1722 enables interoperable streaming by defining:  Media formats and encapsulations Raw & compressed audio/video formats Bridging IEEE 1394 LANs over AVB networks

 Media synchronization mechanisms Media clock reconstruction/synchronization Latency normalization and optimization

 Multicast address assignment Assigning AVB Stream ID Media clock master

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Where does the transport protocol fit?

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

AVBTP packet components  Ethernet header plus  Common frame header  Control frames  Common control frame header  Protocol-specific headers & payload

or  Streaming frames  Common stream data header  Streaming data headers & payload

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

AVBTP packets encapsulated within Ethernet header

transmitted last

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

AVBTP frame common header fields

cd: control or data packet subtype: protocol type sv: stream_id valid version: revision of p1722 standard subtype_data1/2: protocol specific info stream_id: IEEE 802.1Qat stream ID 9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Command/control packet header (cd=1) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 00 cd 04 08 12

subtype

sv

version

control_data1

status

control_frame_length (bytes)

stream_id 1722 Command/Control Header

Control frame additional header(s) and payload varies by subtype and subtype_data fields and are padded as necessary to ensure integral number of quadlets

1-3 byte padding as necessary to fill last quadlet on last or only fragment control_data1: protocol-specific data status: status flags, values, etc control_frame_length: length in bytes of control payload

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

AVBTP common stream data header 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 00 cd 04 08 12 16 20 24

subtype

sv

version

mr r

gv tv

seq_number

gm_discontinuity

h

stream_id avbtp_timestamp gateway_info packet_data_length (bytes)

protocol_specific_packet_header

stream_data_payload (additional protocol header, protocol payload data, and padding varies by protocol)

1-3 byte padding as necessary to fill last quadlet on last or only fragment mr: media engine restart r: reserved gv: gateway_info field valid tv: avbtp timestamp valid seq_number: sequence number gm_discontinuity: grandmaster discontinuity h: holdover 9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

AVBTP subtype field specifies streaming protocol

Identify registration authority to administer future assignments?

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Support for raw & compressed audio/video i.e. Firewire  Formats based on IEC 61883 parts 1-81  61883-2 SD-DVCR  61883-4 MPEG2-TS Compressed Video  61883-6 Uncompressed Audio  61883-7 Satellite TV MPEG  61883-8 Bt.601/656 Video  IIDC Uncompressed Industrial Cameras

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

61883-n header/streams encapsulated in 1722 packets

AVBTP type/cntl

16

C D 0

subtype (0) 0

0

0

0

0

ver

sv 0

0

0

0

0

mr r gv 0

0

0

0

seq_number

tv 0

0

0

0

0

20

stream_id (upper 32 bits)

24

stream_id (lower 32 bits)

AVBTP Time 28

avbtp_presentation_time

802.1Qat Stream ID

fc

Fragment header 32 0

reserved 0

0

0

0

40

9 March 2009

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

SID (= 63) 1

1

EOH/ form 1

48

0

EOH/ form 0

44

0

1

1

1

1

1

1

1

0

0

tag 0

1

0

0

0

0

0

0

0

0

0

0

1

channel (= 31)

0

0

0

0

N 0

0

0

0

0

0

0

FN 0

1

0

0

SFC 1

0

0

1

1

0

0

1

1

S P H

QPC 0

0

tcode(A16) 1

1

0

1

rsv 0

0

0

sy 0

0

0

0

-

-

-

DBC

0

FDF EVT 0 0

0

0

DBS

FMT 0

1

0

h

stream_sequence (quadlets)

packet_data_length (octets)

Packet header 36

61883 CIP header

0

fragment_len (quadlets)

0

gm_discontinuity

SYT 0

-

-

-

-

-

-

-

-

-

-

-

-

-

Stream Data

IEEE 802.1 Plenary

Vancouver, BC

P1722 packet format for 61883-6/AM824 (Multi-bit linear audio) 48kHz stereo stream

Example 61883-6 audio packet

DA (MAC destination address, upper 32 bits)

00 802.3 04 MAC header

DA (MAC destination address, lower 16 bits)

SA (MAC source address, lower 32 bits)

08

TPID (802.1Q = 810016)

VLAN Tag field 12 1

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

1

0

0

0

1

0

1

1

C F I

PCP 0

0

0

0

0

1

0

1

C D

EtherType (AVBTP = 88B516)

AVBTP type/cntl 16

802.1Qat Stream ID

SA (MAC source address, upper 16 bits)

1

0

1

0

0

0

0

0

0

stream_id (lower 32 bits)

AVBTP Time 28

avbtp_presentation_time

fc

Fragment header 32 0

reserved 0

0

0

0

61883-6/AM824 (sample #2)

0

0

EOH/ form 0

0

0

0

fragment_len (quadlets) 0

0

0

0

0

0

0

0

0

0

0

0

1

SID (= 63) 1

1

EOH/ form 1

61883-6/AM824 (sample #1)

0

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0 t v

stream_reserved 0

stream_sequence (quadlets) 0

packet_data_length (octets)

Packet header 36

44

0

subtype

24

61883 CIP header

0

stream_id (upper 32 bits)

20

40

VID (VLAN Identifier) 0

1

1

1

1

0

0

1

0

0

0

DBS 1

0

0

FMT 0

1

tag

0

0

0

0

0

0

0

1

0

AS1 0 0

0

1

0

0

1

0

0

1

0

0

AS1 0 0

AS2 0 0

0

1

0

0

0

0

label

0

0

1

S P H

rsv

0

0

EVT 0 0

N 0

1

0

0

1

0

1

0

0

0

0

0

-

-

-

DBC

0

0

SFC 1 0

-

-

-

-

-

-

-

-

-

-

-

-

-

24-bit audio sample (Right channel)

AS1 0 0

AS2 0 0

24-bit audio sample (Left channel)

AS1 0 0

AS2 0 0

label

60

0

1

SYT

label 0

0

1

AS2 0 0

0

56

0

1

QPC

sy

24-bit audio sample (Left channel)

1

0

0

FDF

0

52

1

FN

label

48

0

tcode (= A16)

channel (= 31)

24-bit audio sample (Right channel)

(Samples 3-6)

FCS 96

9 March 2009

0

0

Ethernet_crc

IEEE 802.1 Plenary

Vancouver, BC

Example 61883-8 video packet P1722 packet format for 61883-8, Source Packet Type=0 (video data) Subtype data

00

C D

subtype

0

802.1Qat Stream ID

Fragment header

16

0

0

0

0

0

0

0

fc

pkt_hdr_len 0

0

0

36 … 752

0

0

EOH/ form 0

32

0

0

0

0

0

0

1

fragment_len (quadlets)

0

0

0

0

0

0

0

0

0

0

1

1

1

stream_sequence (quadlets) 0

packet_data_length (octets)

20

28

0

avbtp_timestamp

0

24

0

gm_info

stream_id (lower 32 bits)

0

0

0

0

0

1

0

1

1

0

SID (= 63) 1

1

EOH/ form 1

9 March 2009

0

subtype_data2

stream_id (upper 32 bits)

0

61883-8 Source Packet Data

0

08 12

61883 CIP header

0

04

AVBTP Time

Packet header

0

t v

stream_reserved

1

1

1

0

0

0

1

1

0

0

DBS

0

1

0

0

0

1

1

S P H

QPC 0

0

1

0

0

1

1

-

-

-

reserved -

0

s o l

1

0

1

sy 0

0

0

0

0

-

-

-

DBC

0

SYT -

-

-

-

-

-

-

-

-

-

Compression Mode Specific Information VDSPC

1

rsv

FDF 0

tcode (= A16)

channel (= 31)

FN

1

FMT 0

1

tag

s a v

-

-

-

r

Line number

-

-

-

Ver =0 0

0

Type =0 0

0

0

byte 1 video data

byte 2 video data

byte 3 video data

byte 4 video data









byte 717 video data

byte 718 video data

byte 719 video data

byte 720 video data

IEEE 802.1 Plenary

Vancouver, BC

0

Bridging IEEE 1394 LANs  “Interworking Units” bridge 61883 between Firewire and AVB LANs

AVB Talker

IEEE 1394 Talker

IWU

AVB Network

IWU

IEEE 1394 Listener

AVB Listener

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Synchronization mechanisms  Media clock reconstruction  Media clock master selection/management  Presentation Time  Latency normalization

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Media clock info embedded in talker’s presentation 1722 Stream timestamps Timestamps 7166667

7333333

Talker Stream

...

8666667

802.1AS Wall Time

8833333

9000000

Data 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

AVBTP Timestamp Generator

Media clock (local oscillator)

A/D

1722 Data

Incoming Analog Data

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Presentation Time Stamps and 802.1AS wall time used to recreate media clock

Incoming Stream

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Media clocks are derived from cross-timestamping

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

A/V stream media clock management2  256 addresses for unique media clocks  Located at top of p1722 MAAP OUI range

 Each address identifies a unique A/V media clock source  Specified on per stream basis i.e.  48 kHz audio word clock  44.1 kHz audio word clock  Video genlock source  Etc

 Globally pre-assigned or dynamically negotiated?

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Latency Normalization

Speaker A

Speaker B

Speaker A buffers audio until Speaker B receives audio and presentation time is reached

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Default Presentation Time is 2 ms…

… but Presentation Time can be dialed down

2 Hops

Talker is responsible for setting delay… 9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Multicast Address Allocation Protocol3  Stream Addresses must be unique  Stream Addresses also needed above Layer 2 i.e. IP, RTP, UDP…  IP Streams  Need to use IPv4/IPv6 multicast addresses  Established Multicast infrastructure  Unique layer 2 multicast not guaranteed  Mapping from IP to layer 2 is not reversible

 Layer 2 Streams  No current method for dynamic Multicast Allocation  Vendors could assign additional MAC addresses to devices

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Address Acquisition Algorithm  Pick random Stream Address(es)  Probe  Watch for Reply

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Address Defense Algorithm  Watch for Probe packets  If a conflict, send a Reply

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

MAAP Control Frame

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

MAAP frame format

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

MAAP message types

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

Address Acquisition Packet  Protocol allows for a single address or a range to be requested  Reply packets should contain only the conflicting addresses

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

256 MAAP addresses reserved for media clocks

Identify Registration Authority to administer MAAP Media Clock addresses?

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

What’s left to finish IEEE 1722?  Define Maximum Holdover Time  Get from 802.1AS maximum convergence time amount or formula

 Finish Media Clock Master algorithm  Negotiate clock addresses or pre-assigned?

 Latency  Define Class B latency guarantees  Define latency measurement points

 RAC requests  AVBTP Ethertype, MAAP Ethertype & OUI

 Define ext. variable interface  Resolve Editor’s Notes, inconsistencies, editorial errors, etc  Draft version/comment iterations as necessary  Aiming to start ratification process in CY2009 9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

More info…  Website  http://grouper.ieee.org/groups/1722/

 Email reflector  subscribe avbtp to [email protected]

 Weekly phone conferences  The AVB L2 Transport Protocol Working Group holds weekly phone conferences on Mondays at 2:00 p.m. Pacific/Los Angeles time.  Phone bridge: +1.866.888.5021 or +1.630.693.2119, Access code: 8451103#

 Face-to-face meetings every two months  Next meeting April 23, 2009 hosted by Xilinx in San Jose, California  Send RSVP to [email protected]

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC

References 1.

IEC 61883 Parts 1-8, 2003-2008

2.

Media Clock Distribution in a 1722 Network, Dave Olsen, Oct. 2008 http://grouper.ieee.org/groups/1722/contributions/avbtp-dolsen-Media-Clock-Distribution-v2.pdf

3.

Stream Address Allocation in Ethernet AVB, Dave Olsen, Mar. 2007 http://www.ieee802.org/1/files/public/docs2007/avb-do-stream-address-allocation-0307.pdf

9 March 2009

IEEE 802.1 Plenary

Vancouver, BC