Using SDN To Facilitate Precisely Timed Ac8ons On Real-Time - - PowerPoint PPT Presentation
Using SDN To Facilitate Precisely Timed Ac8ons On Real-Time - - PowerPoint PPT Presentation
Using SDN To Facilitate Precisely Timed Ac8ons On Real-Time Data Streams Thomas Edwards FOX Networks Engineering & Opera8ons, Advanced Tech.
- 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 ¡
Live ¡Professional ¡Video ¡
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 ¡
flow ¡
- IGMP ¡join ¡new ¡video ¡flow ¡
- Wait ¡for ¡Switch ¡Point… ¡
- Switch ¡Video ¡(internally) ¡
- IGMP ¡Leave ¡old ¡video ¡flow ¡
RX ¡1 ¡ IGMP ¡Join ¡2, ¡ RX ¡1+2 ¡ IGMP ¡Leave ¡2, ¡ 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? ¡
HD-SDI Monitors 2022-6 GW 1 2022-6 GW 1 SSD Video Player
HD-SDI 10GbE [2 x video streams] 10GbE [switched stream #2] 10GbE [switched stream #1] 1GbE [control]
Switch Button
HD-SDI HD-SDI HD-SDI 10GbE [2 x video streams
- w. source timing]
USB Blackburst Generator
Linux Server HD-SDI Camera 10 GbE Switch
Source-‑Timed ¡Switching ¡PoC ¡Schema8c ¡
Source-‑Timed ¡Video ¡Switching: ¡ Ini8al ¡Condi8ons ¡
Controller ¡ Source ¡A ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10001 ¡ Source ¡B ¡ Switch ¡port ¡2 ¡ SRC ¡IP ¡10.0.0.2 ¡ UDP ¡SRC ¡10001 ¡ Des8na8on ¡A ¡ Switch ¡port ¡3 ¡ Des8na8on ¡B ¡ Switch ¡port ¡4 ¡
VRT ¡#10001 ¡ Source ¡A ¡ Source ¡B ¡ Des8na8on ¡A ¡ X ¡ Des8na8on ¡B ¡ X ¡
Ini8al ¡SDN ¡switch ¡flow ¡table: ¡
Video ¡flows ¡
Ini8al ¡Video ¡Rou8ng ¡Table ¡(VRT): ¡ UDP ¡SRC ¡port ¡used ¡as ¡“)ming ¡header” ¡to ¡ signal ¡VRT ¡Version ¡
IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ 10.0.0.1 ¡ 10001 ¡ Forward ¡Port ¡3 ¡ 10.0.0.2 ¡ 10001 ¡ Forward ¡Port ¡4 ¡
Switching ¡Request ¡
Controller ¡ Source ¡A ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10001 ¡ Source ¡B ¡ Switch ¡port ¡2 ¡ SRC ¡IP ¡10.0.0.2 ¡ UDP ¡SRC ¡10001 ¡ Des8na8on ¡A ¡ Switch ¡port ¡3 ¡ Des8na8on ¡B ¡ Switch ¡port ¡4 ¡
VRT ¡#10002 ¡ Source ¡A ¡ Source ¡B ¡ Des8na8on ¡A ¡ X ¡ Des8na8on ¡B ¡ X ¡ IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ 10.0.0.1 ¡ 10001 ¡ Forward ¡Port ¡3 ¡ 10.0.0.2 ¡ 10001 ¡ Forward ¡Port ¡4 ¡ 10.0.0.1 ¡ 10002 ¡ Forward ¡Port ¡4 ¡ 10.0.0.2 ¡ 10002 ¡ Forward ¡Port ¡3 ¡
3) ¡New ¡entries ¡added ¡to ¡ ¡SDN ¡switch ¡ flow ¡table: ¡ 1) ¡VRT ¡Updated ¡& ¡VRT ¡Version ¡# ¡ incremented: ¡
Video ¡flows ¡ SDN ¡Flow ¡table ¡update ¡
2) ¡Controller ¡sends ¡SDN ¡flow ¡table ¡ update ¡to ¡switches ¡(~1 ¡ms) ¡
Upda8ng ¡Source ¡VRT ¡Version ¡
Controller ¡ Source ¡A ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10001 ¡ Source ¡B ¡ Switch ¡port ¡2 ¡ SRC ¡IP ¡10.0.0.2 ¡ UDP ¡SRC ¡10001 ¡ Des8na8on ¡A ¡ Switch ¡port ¡3 ¡ Des8na8on ¡B ¡ Switch ¡port ¡4 ¡
VRT ¡#10002 ¡ Source ¡A ¡ Source ¡B ¡ Des8na8on ¡A ¡ X ¡ Des8na8on ¡B ¡ X ¡
SDN ¡switch ¡flow ¡table: ¡ Video ¡Rou8ng ¡Table: ¡
Video ¡flows ¡ Source ¡VRT ¡Version ¡Number ¡Update ¡
Controller ¡sends ¡new ¡VRT ¡ Version ¡# ¡to ¡Sources ¡
IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ 10.0.0.1 ¡ 10001 ¡ Forward ¡Port ¡3 ¡ 10.0.0.2 ¡ 10001 ¡ Forward ¡Port ¡4 ¡ 10.0.0.1 ¡ 10002 ¡ Forward ¡Port ¡4 ¡ 10.0.0.2 ¡ 10002 ¡ Forward ¡Port ¡3 ¡
Sources ¡Switch ¡VRT ¡Version ¡
at ¡appropriate ¡)me ¡(e.g. ¡SMPTE ¡RP ¡168) ¡
Controller ¡ Source ¡A ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10002 ¡ Source ¡B ¡ Switch ¡port ¡2 ¡ SRC ¡IP ¡10.0.0.2 ¡ UDP ¡SRC ¡10002 ¡ Des8na8on ¡A ¡ Switch ¡port ¡3 ¡ Des8na8on ¡B ¡ Switch ¡port ¡4 ¡
VRT ¡#10002 ¡ Source ¡A ¡ Source ¡B ¡ Des8na8on ¡A ¡ X ¡ Des8na8on ¡B ¡ X ¡
SDN ¡switch ¡flow ¡table: ¡ Video ¡Rou8ng ¡Table: ¡
Video ¡flows ¡
Source ¡switches ¡VRT ¡ version ¡# ¡in ¡HDR ¡ Source ¡switches ¡VRT ¡ version ¡# ¡in ¡HDR ¡
IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ 10.0.0.1 ¡ 10001 ¡ Forward ¡Port ¡3 ¡ 10.0.0.2 ¡ 10001 ¡ Forward ¡Port ¡4 ¡ 10.0.0.1 ¡ 10002 ¡ Forward ¡Port ¡4 ¡ 10.0.0.2 ¡ 10002 ¡ Forward ¡Port ¡3 ¡
Old ¡Flow ¡Rules ¡Removed ¡
Controller ¡ Source ¡A ¡ Switch ¡port ¡1 ¡ SRC ¡IP ¡10.0.0.1 ¡ UDP ¡SRC ¡10002 ¡ Source ¡B ¡ Switch ¡port ¡2 ¡ SRC ¡IP ¡10.0.0.2 ¡ UDP ¡SRC ¡10002 ¡ Des8na8on ¡A ¡ Switch ¡port ¡3 ¡ Des8na8on ¡B ¡ Switch ¡port ¡4 ¡
VRT ¡#10002 ¡ Source ¡A ¡ Source ¡B ¡ Des8na8on ¡A ¡ X ¡ Des8na8on ¡B ¡ X ¡
Old ¡rules ¡are ¡specifically ¡removed ¡or ¡ idle_8meout: ¡ Video ¡Rou8ng ¡Table: ¡
Video ¡flows ¡
IP ¡SRC ¡ UDP ¡SRC ¡port ¡ Ac=on ¡ 10.0.0.1 ¡ 10002 ¡ Forward ¡Port ¡4 ¡ 10.0.0.2 ¡ 10002 ¡ Forward ¡Port ¡3 ¡