SRP(Stream Reservation Protocol) について調べてみた

SRPとは

  • Stream Reservation Protocol の略
  • 例えば、カメラ(talker)と Display(listener) のストリームに必要な帯域を事前に予約しておくことで、優先的に通信が確保される。Ethernet switch に接続されたその他のデバイス間の通信量が増大しても、通信混雑によるパケット落ちや遅延は発生しない。
  • Ethernet AVB で必要とされるプロトコルの一つ。他には、gPTP, AVTP, FQTSS, AVDECC等がある。
  • IEEE 802.1Qatにて2010年に策定され、2011年に802.1Q(Clause35)に取り込まれた

応用例

車載アプリケーションにおいては、Parking Assisist System(バックカメラやサラウンドビュー)やInfortaiment, ADAS(advanced driver assistance system)といったリアルタイム性を必要とするアプリケーションでの使用が期待されている。

例えば、バックカメラの映像をナビの画面に表示させるアプリでは、他のデバイスの通信状況によって、バックカメラの映像が乱れたり、映像に遅延が生じると、ドライバーを混乱させ重大な事故につながる。SRPの技術を導入すれば、帯域の確保が保障されるため、このような問題は発生しない。

特徴

  • Class 制
    • Class A
      • generate 8000 packets/s
      • guarantees max 2m sec latency across 7 AVB devices (hops)
    • Class B
      • generate 4000 packets/s
      • guarantees max 50m sec latency across 7 AVB devices (hops)
    • Best efffort
      • no gurantee
  • IEEE802.1Q VLAN を利用
    • Stream にVLAN IDを設定する
    • Ethernet switch のportに通過させるVLAN ID を設定する。

利用するプロトコル

  • MSRP(Multiple Stream Registration Protocol)
    • Domain, Talker, Listener 情報の伝搬
  • MVRP(Multiple VLAN Registration Protocol)
    • ストリームが流れるポートに、そのストリームのVLAN 情報を登録する
  • MMRP(Multiple MAC Registretion Protocol)
    • Talker prunning に使用
  • Ethertype

MMRP, MVRP, MSRP のEthertype は以下の通り。

Ethertype
IPv4 0x0800
ARP 0x0806
IPv6 0x86dd
MMRP 0x88F6
MVRP 0x88F5
MSRP 0x22EA
PTP 0x88F7
AVTP 0x22F0

どのようにstreamを予約するのか?

おおまかな流れ
  1. AVB domain をつくる
  2. Talker がstream 情報をadvertize する
  3. Listener がstream をregister する
AVB domain をつくる

AVB domainはSRP domainとgPTP domainの交わった領域。SRP domainは、各EndpointがMSRP(attibute type:domain)をmulticastすることでスイッチに通知。Domain message を受け取らなかったポートは、Boundary となる。
gPTP domainはasCapableがtrue のポート。(詳しくはIEEE802.1as)を参照

Talker がstream 情報をadvertize する

TalkerはMSRP talker advertise メッセージをmulticastする。SRP domain 全体に送られる。talker advertise メッセージは、Class ID、Priority、VLAN IDといったストリームの情報を含む。
Bridgeは、自分ポートの利用可能バンド幅を確認し、OK なら次のスイッチにメッセージ転送する。NG ならTalker failed メッセージをTalkerに転送する。Listener にメッセージが届くまで繰り返す。

Listener がstream をregister する (attach/request)

ListenerはMSRP Ready メッセージをtalker へと送り返す。Ready メッセージは、stream IDの情報が含まれる。スイッチはready を受け取ったら、resource(バンド幅)をlock down し、Ready メッセージを上流のスイッチに転送し、
talkerにメッセージが届くまで繰り返す。

talker はready メッセージを受け取れば、そのストリームに必要なバンド幅を確保できたとみなせる。