Using ¡SDN ¡To ¡Facilitate ¡Precisely ¡ Timed ¡Ac8ons ¡On ¡Real-‑Time ¡Data ¡ Streams ¡ Thomas ¡Edwards ¡– ¡FOX ¡Networks ¡ Engineering ¡& ¡Opera8ons, ¡Advanced ¡Tech. ¡ Warren ¡Belkin ¡– ¡Arista ¡Networks ¡
Live ¡Professional ¡Video ¡ • HD-‑SDI ¡(HD ¡Serial ¡Digital ¡Interface) ¡ – 1.5 ¡Gbps ¡Uncompressed ¡HD ¡digital ¡video ¡ – On ¡75Ω ¡coax ¡( best ¡solu)on ¡in ¡1996 ) ¡ – 1 ¡HD ¡video ¡signal ¡per ¡cable, ¡unidirec8onal ¡ • Could ¡it ¡be ¡on ¡Ethernet? ¡ – SMPTE ¡2022-‑6 ¡ carries ¡HD-‑SDI ¡bit ¡stream ¡on ¡ mul8cast ¡RTP ¡ – 6 ¡HD ¡signals ¡on ¡10 ¡GbE, ¡66 ¡HD ¡signals ¡on ¡100 ¡GbE ¡ – Mul8cast ¡because ¡we ¡need ¡point-‑to-‑mul8point ¡
1 ¡video ¡signal ¡per ¡cable ¡in ¡one ¡direc8on ¡means ¡lots ¡of ¡cables… ¡
“Video ¡Switching”: ¡Best ¡during ¡the ¡ Ver8cal ¡Interval… ¡
Use ¡IGMP ¡for ¡ ¡ “Des8na8on-‑Timed” ¡Video ¡Switching? ¡ • Receiving ¡exis8ng ¡video ¡ RX ¡1 ¡ flow ¡ • IGMP ¡join ¡new ¡video ¡flow ¡ IGMP ¡Join ¡2, ¡ • Wait ¡for ¡Switch ¡Point… ¡ RX ¡1+2 ¡ • Switch ¡Video ¡(internally) ¡ IGMP ¡Leave ¡2, ¡ • IGMP ¡Leave ¡old ¡video ¡flow ¡ RX ¡2 ¡
Use ¡SDN ¡for ¡“Switch-‑Timed ¡Video ¡ Switching”? ¡ • Need ¡8ming ¡accuracy ¡~ 10 ¡µs ¡ to ¡synchronously ¡ switch ¡video ¡in ¡ver8cal ¡interval ¡(SMPTE ¡RP ¡ 168) ¡ • 1-‑10 ¡ms ¡ to ¡update ¡flow ¡rules ¡on ¡switches ¡ • No ¡guarantees ¡ on ¡flow ¡rule ¡update ¡latency ¡ • Other ¡solu8ons? ¡
“Source-‑Timed ¡SDN ¡Flow ¡Switching” ¡ • Before ¡video ¡switch ¡(~100 ¡ms), ¡add ¡new ¡flow ¡rule ¡ that ¡matches ¡packet ¡header ¡value ¡ not ¡being ¡sent ¡ yet ¡ • At ¡ precise ¡=me ¡ of ¡video ¡switch, ¡all ¡video ¡sources ¡ update ¡packet ¡header ¡value ¡to ¡ match ¡new ¡rule ¡ [sources ¡are ¡“video ¡aware”] ¡ • Video ¡flows ¡over ¡new ¡flow ¡rules ¡ • Old ¡rules ¡can ¡idle_8meout, ¡etc. ¡ • Live ¡PoC ¡used ¡UDP ¡SRC ¡port ¡(header ¡field) ¡& ¡ DirectFlow ¡(SDN ¡API) ¡on ¡Arista ¡switch ¡
It ¡worked… ¡ Perhaps ¡there ¡are ¡other ¡flows ¡that ¡need ¡precisely-‑8med ¡changes ¡besides ¡video? ¡
Ques8ons? ¡ 10 GbE Switch 1GbE HD-SDI Monitors [control] Linux Server 2022-6 10GbE [switched HD-SDI GW 1 stream #1] 10GbE [2 x video streams USB w. source timing] 10GbE [switched 2022-6 stream #2] HD-SDI 10GbE GW 1 [2 x video streams] HD-SDI HD-SDI Blackburst Switch Button Generator SSD Video Player HD-SDI Camera Source-‑Timed ¡Switching ¡PoC ¡Schema8c ¡
Source-‑Timed ¡Video ¡Switching: ¡ Ini8al ¡Condi8ons ¡ Ini8al ¡Video ¡Rou8ng ¡Table ¡(VRT): ¡ Source ¡B ¡ VRT ¡#10001 ¡ Source ¡A ¡ Source ¡B ¡ Source ¡A ¡ Switch ¡port ¡2 ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.2 ¡ Des8na8on ¡A ¡ X ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10001 ¡ UDP ¡SRC ¡10001 ¡ Des8na8on ¡B ¡ X ¡ Controller ¡ Ini8al ¡SDN ¡switch ¡flow ¡table: ¡ Des8na8on ¡A ¡ Des8na8on ¡B ¡ Switch ¡port ¡3 ¡ Switch ¡port ¡4 ¡ IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ UDP ¡SRC ¡port ¡used ¡as ¡“)ming ¡header” ¡to ¡ 10.0.0.1 ¡ 10001 ¡ Forward ¡Port ¡3 ¡ signal ¡VRT ¡Version ¡ 10.0.0.2 ¡ 10001 ¡ Forward ¡Port ¡4 ¡ Video ¡flows ¡
Switching ¡Request ¡ 1) ¡VRT ¡Updated ¡& ¡VRT ¡Version ¡# ¡ incremented: ¡ Source ¡B ¡ VRT ¡# 10002 ¡ Source ¡A ¡ Source ¡B ¡ Source ¡A ¡ Switch ¡port ¡2 ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.2 ¡ Des8na8on ¡A ¡ X ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10001 ¡ UDP ¡SRC ¡10001 ¡ Des8na8on ¡B ¡ X ¡ Controller ¡ 3) ¡New ¡entries ¡added ¡to ¡ ¡SDN ¡switch ¡ Des8na8on ¡A ¡ Des8na8on ¡B ¡ flow ¡table: ¡ Switch ¡port ¡3 ¡ Switch ¡port ¡4 ¡ IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ 2) ¡Controller ¡sends ¡SDN ¡flow ¡table ¡ 10.0.0.1 ¡ 10001 ¡ Forward ¡Port ¡3 ¡ update ¡to ¡switches ¡(~1 ¡ms) ¡ 10.0.0.2 ¡ 10001 ¡ Forward ¡Port ¡4 ¡ 10.0.0.1 ¡ 10002 ¡ Forward ¡Port ¡4 ¡ Video ¡flows ¡ 10.0.0.2 ¡ 10002 ¡ Forward ¡Port ¡3 ¡ SDN ¡Flow ¡table ¡update ¡
Upda8ng ¡Source ¡VRT ¡Version ¡ Video ¡Rou8ng ¡Table: ¡ Source ¡B ¡ VRT ¡#10002 ¡ Source ¡A ¡ Source ¡B ¡ Source ¡A ¡ Switch ¡port ¡2 ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.2 ¡ Des8na8on ¡A ¡ X ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10001 ¡ UDP ¡SRC ¡10001 ¡ Des8na8on ¡B ¡ X ¡ Controller ¡ SDN ¡switch ¡flow ¡table: ¡ Des8na8on ¡A ¡ Des8na8on ¡B ¡ Switch ¡port ¡3 ¡ Switch ¡port ¡4 ¡ IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ Controller ¡sends ¡new ¡VRT ¡ 10.0.0.1 ¡ 10001 ¡ Forward ¡Port ¡3 ¡ Version ¡# ¡to ¡Sources ¡ 10.0.0.2 ¡ 10001 ¡ Forward ¡Port ¡4 ¡ 10.0.0.1 ¡ 10002 ¡ Forward ¡Port ¡4 ¡ Video ¡flows ¡ 10.0.0.2 ¡ 10002 ¡ Forward ¡Port ¡3 ¡ Source ¡VRT ¡Version ¡Number ¡Update ¡
Sources ¡Switch ¡VRT ¡Version ¡ at ¡appropriate ¡)me ¡(e.g. ¡SMPTE ¡RP ¡168) ¡ Video ¡Rou8ng ¡Table: ¡ Source ¡B ¡ VRT ¡#10002 ¡ Source ¡A ¡ Source ¡B ¡ Source ¡A ¡ Switch ¡port ¡2 ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.2 ¡ Des8na8on ¡A ¡ X ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡ 10002 ¡ UDP ¡SRC ¡ 10002 ¡ Des8na8on ¡B ¡ X ¡ Controller ¡ SDN ¡switch ¡flow ¡table: ¡ Des8na8on ¡A ¡ Des8na8on ¡B ¡ Switch ¡port ¡3 ¡ Switch ¡port ¡4 ¡ IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ Source ¡switches ¡VRT ¡ Source ¡switches ¡VRT ¡ 10.0.0.1 ¡ 10001 ¡ Forward ¡Port ¡3 ¡ version ¡# ¡in ¡HDR ¡ version ¡# ¡in ¡HDR ¡ 10.0.0.2 ¡ 10001 ¡ Forward ¡Port ¡4 ¡ 10.0.0.1 ¡ 10002 ¡ Forward ¡Port ¡4 ¡ Video ¡flows ¡ 10.0.0.2 ¡ 10002 ¡ Forward ¡Port ¡3 ¡
Old ¡Flow ¡Rules ¡Removed ¡ Video ¡Rou8ng ¡Table: ¡ Source ¡B ¡ VRT ¡#10002 ¡ Source ¡A ¡ Source ¡B ¡ Source ¡A ¡ Switch ¡port ¡2 ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.2 ¡ Des8na8on ¡A ¡ X ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10002 ¡ UDP ¡SRC ¡10002 ¡ Des8na8on ¡B ¡ X ¡ Controller ¡ Old ¡rules ¡are ¡specifically ¡removed ¡or ¡ idle_8meout: ¡ Des8na8on ¡A ¡ Des8na8on ¡B ¡ Switch ¡port ¡3 ¡ Switch ¡port ¡4 ¡ IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ 10.0.0.1 ¡ 10002 ¡ Forward ¡Port ¡4 ¡ 10.0.0.2 ¡ 10002 ¡ Forward ¡Port ¡3 ¡ Video ¡flows ¡
Recommend
More recommend