Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4
P4 Π΅ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Π΅Π·ΠΈΠΊ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚ΠΎ C ΠΈΠ»ΠΈ Python, P4 Π΅ спСцифичСн Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π΅Π·ΠΈΠΊ с Ρ€Π΅Π΄ΠΈΡ†Π° Π΄ΠΈΠ·Π°ΠΉΠ½ΠΈ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅.

P4 Π΅ Π΅Π·ΠΈΠΊ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€Π°Π½ ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ ΠΎΡ‚ организация с нСстопанска Ρ†Π΅Π», Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° P4 Language Consortium. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ Open Networking Foundation (ONF) ΠΈ Linux Foundation (LF), Π΄Π²Π΅ ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ-Ρ‡Π°Π΄ΡŠΡ€ΠΈ Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄.
Π•Π·ΠΈΠΊΡŠΡ‚ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ създадСн ΠΏΡ€Π΅Π· 2013 Π³. ΠΈ Π΅ описан Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π° SIGCOMM CCR ΠΎΡ‚ 2014 Π³., ΠΎΠ·Π°Π³Π»Π°Π²Π΅Π½ β€žΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° процСсора Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, нСзависимо ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°β€œ.

ΠžΡ‚ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ си P4 нарасна ΠΈ сС Ρ€Π°Π·Π²ΠΈ СкспонСнциално, Π±ΡŠΡ€Π·ΠΎ сС ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π° Π² стандарт Π·Π° описаниС Π½Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ устройства, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΈ, ΠΊΠΎΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ Ρ€ΡƒΡ‚Π΅Ρ€ΠΈ.

β€žSDN трансформира ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° индустрия ΠΈ P4 ΠΈΠ·Π²Π΅ΠΆΠ΄Π° SDN Π½Π° слСдващото Π½ΠΈΠ²ΠΎ, ΠΊΠ°Ρ‚ΠΎ внася програмируСмост Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎβ€œ, ΠΊΠ°Π·Π° Π“ΡƒΡ€Ρƒ ΠŸΠ°Ρ€ΡƒΠ»ΠΊΠ°Ρ€, ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° Open Networking Foundation.

Π•Π·ΠΈΠΊΡŠΡ‚ P4 ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ създадСн ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠ° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ ΠΈ изслСдоватСли ΠΎΡ‚ Google, Intel, Microsoft Research, Barefoot, Princeton ΠΈ Stanford. Π¦Π΅Π»Ρ‚Π° бСшС проста: създаванС Π½Π° лСсСн Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ Π½Π° софтуСр ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΡƒΡ‡ΠΈ Π·Π° Π΅Π΄ΠΈΠ½ Π΄Π΅Π½ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° опишС Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠ°ΠΊ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π² ΠΌΡ€Π΅ΠΆΠΈΡ‚Π΅.

ΠžΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ P4 Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ Π΄Π° бъдС нСзависим ΠΎΡ‚ Ρ†Π΅Π»ΠΈ (Ρ‚.Π΅. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, написана Π½Π° P4, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π° Π½Π΅ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½Π°, Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ†Π΅Π»ΠΈ ΠΊΠ°Ρ‚ΠΎ ASIC, FPGA, CPU, NPU ΠΈ GPU).

Π•Π·ΠΈΠΊΡŠΡ‚ ΡΡŠΡ‰ΠΎ Π΅ нСзависим ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° (Ρ‚.Π΅. P4 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° опишС ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ стандартни ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ ΠΈΠ»ΠΈ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ пСрсонализирани Ρ€Π΅ΠΆΠΈΠΌΠΈ Π½Π° адрСсиранС).

Π’ индустрията P4 сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° устройства. МоТС Π±ΠΈ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ стандартитС Internet-RFC ΠΈ IEEE Ρ‰Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ ΠΈ спСцификацията P4.

P4 ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° устройства с фиксирана функция. НапримСр, Ρ‚ΠΎΠΉ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Ρ‚ΠΎΡ‡Π½ΠΎ записванС Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° Π½Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚Π΅Π»Ρ Π² API Π½Π° интСрфСйса Π·Π° абстракция Π½Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚Π΅Π»Ρ (SAI), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΎΡ‚ OS с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ SONiC ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚Π΅Π». P4 сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ONF Stratum, Π·Π° Π΄Π° опишС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ фиксирани ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΈ устройства.

Π—Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚ описаниСто Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΈ Π²ΠΈ позволява Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π΅Π½ изпълним ΠΌΠΎΠ΄Π΅Π» Π½Π° цялата ΠΌΡ€Π΅ΠΆΠ° ΠΏΡ€Π΅Π΄ΠΈ внСдряванСто. Π“ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΈ доставчици ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° тСстват ΠΈ отстраняват Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° изцяло с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° софтуСр, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° тСстванС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π² лабораторията, Π±Π΅Π· Π΄Π° изисква скъп Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€.

Π§Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° P4 доставчицитС Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΎΡ‡Π°ΠΊΠ²Π°Ρ‚ ΠΎΠ±Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ във всички ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° тСстова инфраструктура, опростяванС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° софтуСр Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка осигуряванС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚.

Π Π°Π·Π±ΠΈΡ€Π° сС, P4 ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° писанС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ описват напълно Π½ΠΎΠ²ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅. НапримСр P4 сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ Π·Π° тСлСмСтрия ΠΈ измСрвания Π² Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΈ ΠΈ ΠΌΡ€Π΅ΠΆΠΈ Π½Π° доставчици Π½Π° услуги.

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΊΠ°Ρ‚Π° общност ΡΡŠΡ‰ΠΎ сС засили. Няколко Π²ΠΎΠ΄Π΅Ρ‰ΠΈ изслСдоватСлски Π³Ρ€ΡƒΠΏΠΈ Π·Π° Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ‡Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ…Π° Π²ΡŠΠ»Π½ΡƒΠ²Π°Ρ‰ΠΈ Π½ΠΎΠ²ΠΈ прилоТСния, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° P4 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ балансиранС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ, консСнсусни ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ ΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ стойности. Бъздава сС Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½Π° ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°, ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‚ ΠΎΡ‚ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ към софтуСр, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π΄Π° сС появят ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΈ, Π½ΠΎΠ²ΠΈ ΠΈ Π³Π΅Π½ΠΈΠ°Π»Π½ΠΈ ΠΈΠ΄Π΅ΠΈ.

ΠžΠ±Ρ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈΠΌΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π΅Π½ принос Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈ, повСдСнчСски ΠΌΠΎΠ΄Π΅Π»ΠΈ, API, тСстови Ρ€Π°ΠΌΠΊΠΈ, прилоТСния ΠΈ Π΄Ρ€. Компании ΠΊΠ°Ρ‚ΠΎ Alibaba, AT&T, Barefoot, Cisco, Fox Networks, Google, Intel, IXIA, Juniper Networks, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx ΠΈ ZTE ΠΈΠΌΠ°Ρ‚ спСциализирани Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ; ΠΎΡ‚ унивСрситСти, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ BUPT, Cornell, Harvard, MIT, NCTU, Princeton, Stanford, Technion, Tsinghua, UMass ΠΈ USI; ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ CORD, FD.io, OpenDaylight, ONOS, OvS, SAI ΠΈ Stratum, ΠΏΠΎΠ΄Ρ‡Π΅Ρ€Ρ‚Π°Π²Π°Ρ‚ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ P4 Π΅ нСзависим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° общността.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ Π·Π° Π΅Π·ΠΈΠΊΠ° P4:

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4

ΠŸΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²ΠΈ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4
Въй ΠΊΠ°Ρ‚ΠΎ Π΅Π·ΠΈΠΊΡŠΡ‚ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° прилоТСния Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅, ΡΠΏΠΈΡΡŠΠΊΡŠΡ‚ с изисквания ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° Π΄ΠΈΠ·Π°ΠΉΠ½ Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π² сравнСниС с Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ характСристики Π½Π° Π΅Π·ΠΈΠΊΠ° са:

  1. НСзависимост ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ†Π΅Π»Ρ‚Π°;
  2. НСзависимост Π½Π° използвания ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»(ΠΈ);
  3. РСконфигурируСмост Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ.

НСзависимост ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ†Π΅Π»Ρ‚Π°

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ P4 са ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ нСзависими ΠΎΡ‚ внСдряванСто, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ машини, ΠΊΠ°Ρ‚ΠΎ процСсори с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, FPGA, SoC, ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ процСсори ΠΈ ASIC. Π’Π΅Π·ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ машини са извСстни ΠΊΠ°Ρ‚ΠΎ P4 Ρ†Π΅Π»ΠΈ ΠΈ всяка Ρ†Π΅Π» изисква ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° изходния ΠΊΠΎΠ΄ Π½Π° P4 Π² ΠΌΠΎΠ΄Π΅Π» Π½Π° Ρ†Π΅Π»Π΅Π²ΠΈ ΠΊΠΎΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€. ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π²Π³Ρ€Π°Π΄Π΅Π½ Π² Ρ†Π΅Π»Π΅Π²ΠΎΡ‚ΠΎ устройство, външСн софтуСр ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Π° услуга. Въй ΠΊΠ°Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ Π·Π° P4 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ бяха Π·Π° просто ΠΊΠΎΠΌΡƒΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΌΠ½ΠΎΠ³ΠΎ чСсто сС Ρ‡ΡƒΠ²Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΡŠΡ‚ "P4 switch", Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ "P4 target" Π΅ ΠΏΠΎ-Ρ‚ΠΎΡ‡Π΅Π½.

НСзависимост Π½Π° използвания ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»(ΠΈ).

P4 Π΅ нСзависим ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ няма СстСствСна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΎΠ±Ρ‰ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ IP, Ethernet, TCP, VxLAN ΠΈΠ»ΠΈ MPLS. ВмСсто Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡΡ‚ΡŠΡ‚ P4 описва Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ‚Π΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈΡ‚Π΅ ΠΈ ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚ своя страна сС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΡ‚ΠΎ устройство.

РСконфигурируСмост Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ

НСзависимостта Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡŠΡ‚ Π½Π° абстрактния Π΅Π·ΠΈΠΊ позволяват рСконфигурируСмост - P4 Ρ†Π΅Π»ΠΈΡ‚Π΅ трябва Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° промСнят ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, слСд ΠΊΠ°Ρ‚ΠΎ систСмата бъдС Ρ€Π°Π·Π³ΡŠΡ€Π½Π°Ρ‚Π°. Π’Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ сС ΡΠ²ΡŠΡ€Π·Π²Π° с ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Ρ‡Ρ€Π΅Π· процСсори с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ процСсори, Π° Π½Π΅ Ρ‡Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π½ΠΈ схСми с фиксирана функция.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ няма Π½ΠΈΡ‰ΠΎ Π² Π΅Π·ΠΈΠΊΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π±ΠΈ ΠΏΠΎΠΏΡ€Π΅Ρ‡ΠΈΠ»ΠΎ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° производитСлността Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ, Ρ‚Π΅Π·ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ са Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΈ Π·Π° Π°Π²Ρ‚ΠΎΡ€Π° Π½Π° Π΅Π·ΠΈΠΊΠ° ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° намалят Π³ΡŠΠ²ΠΊΠ°Π²ΠΎΡΡ‚Ρ‚Π° Π½Π° систСмата ΠΈ Ρ†Π΅Π»ΠΈΡ‚Π΅ ΠΈ тяхната Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅.

Π’Π΅Π·ΠΈ характСристики Π½Π° Π΅Π·ΠΈΠΊΠ° ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ са Π±ΠΈΠ»ΠΈ Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΡ‚ ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ ΠΌΡƒ с Π°ΠΊΡ†Π΅Π½Ρ‚ Π²ΡŠΡ€Ρ…Ρƒ ΡˆΠΈΡ€ΠΎΠΊΠΎΡ‚ΠΎ ΠΌΡƒ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° инфраструктура.

Π•Π·ΠΈΠΊΡŠΡ‚ Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ:

1) Π₯ΠΈΠΏΠ΅Ρ€ΠΌΠ°Ρ‰Π°Π±Π½ΠΈ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ;

ΠšΠΈΡ‚Π°ΠΉΡΠΊΠ°Ρ‚Π° компания Tencent Π΅ Π½Π°ΠΉ-голямата инвСстиционна компания Π² свСта ΠΈ Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π·Π° рисков ΠΊΠ°ΠΏΠΈΡ‚Π°Π». Π”ΡŠΡ‰Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π° Tencent, ΠΊΠ°ΠΊΡ‚ΠΎ Π² ΠšΠΈΡ‚Π°ΠΉ, Ρ‚Π°ΠΊΠ° ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ страни ΠΏΠΎ свСта, са спСциализирани Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ области Π½Π° високотСхнологичния бизнСс, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ услуги, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² областта Π½Π° изкуствСния ΠΈΠ½Ρ‚Π΅Π»Π΅ΠΊΡ‚ ΠΈ Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΈΡ‚Π΅ забавлСния.

P4 ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΡ‚ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ са ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° компанията.

ΠšΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅, Google с гордост отбСлязва Π±ΡŠΡ€Π·ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅ Π½Π° P4 Π² ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° индустрия ΠΈ ΠΏΠΎ-спСциално Π² архитСктурния Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ.

2) Π’ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ друТСства;

Goldman Sachs сС възползва ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с общността с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ‰ΠΈ стандарти ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° иновация Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° инфраструктура ΠΈ прСдоставянС Π½Π° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅.

3) ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²ΠΎ;

Цялата ΠΌΡ€Π΅ΠΆΠΎΠ²Π° индустрия Ρ‰Π΅ сС възползва ΠΎΡ‚ Π΅Π·ΠΈΠΊ ΠΊΠ°Ρ‚ΠΎ P4, ΠΊΠΎΠΉΡ‚ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ прСнасочванС. Cisco ΡΡŠΡ‰ΠΎ вярва Π² ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° своитС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈ Π»ΠΈΠ½ΠΈΠΈ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚ΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ.

Juniper Networks Π²ΠΊΠ»ΡŽΡ‡ΠΈ P4 ΠΈ P4 Runtime Π² Ρ€Π΅Π΄ΠΈΡ†Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ ΠΈ прСдоставя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ вградСния процСсор Juniper ΠΈ нСговия софтуСрСн ΠΊΠΎΠ΄.

Ruijie Networks Π΅ силСн ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠ½ΠΈΠΊ Π½Π° P4 ΠΈ ΠΏΠΎΠ»Π·ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ носи Π·Π° ΠΌΡ€Π΅ΠΆΠΈΡ‚Π΅. Π‘ P4 компанията ΠΌΠΎΠΆΠ΅ Π΄Π° създава ΠΈ доставя Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ Π² класа си Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΡˆΠΈΡ€ΠΎΠΊ ΠΊΡ€ΡŠΠ³ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

4) Π’Π΅Π»Π΅ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ доставчици;

AT&T бСшС Ρ€Π°Π½Π΅Π½ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π½Π° P4, Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…Π° P4, Π·Π° Π΄Π° опрСдСлят ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ искаха Π΄Π° видят Π² своитС ΠΌΡ€Π΅ΠΆΠΈ, ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ P4 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΈ прСнасочващи устройства Π² своята ΠΌΡ€Π΅ΠΆΠ°.

Π’ Deutsche Telekom Π΅Π·ΠΈΠΊΡŠΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Access 4.0.

5) ΠŸΠΎΠ»ΡƒΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²Π° индустрия;

Π•Π·ΠΈΠΊΡŠΡ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Barefoot Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ Π½ΠΎΠ²Π° ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° Π·Π° прСдоставянС Π½Π° софтуСрни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π² Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅.

Xilinx бСшС Π΅Π΄ΠΈΠ½ ΠΎΡ‚ основатСлитС Π½Π° P4.org ΠΈ участва Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° P4 ΠΈ Π³ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈ Π² Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° FPGA ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ Π·Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ SmartNIC ΠΈ NFV, пускайки Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ P416 ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° SDNet.

6) Π‘ΠΎΡ„Ρ‚ΡƒΠ΅Ρ€.

VMware вярва, Ρ‡Π΅ P4 създава ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° СнСргия, ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ ΠΈ общност, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΠ° ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° трансформация Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. VMware Π΅ част ΠΎΡ‚ Ρ‚ΠΎΠ²Π° индустриално Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½ΠΎΠ²Π° вълна ΠΎΡ‚ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ сС Π·Π°Π΄Π²ΠΈΠΆΠ²Π° ΠΎΡ‚ Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° софтуСр ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Ρ‚ инфраструктурнитС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π³ΠΈ внСдряват Π² Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ.

По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ P4 Π΅ нСзависим ΠΎΡ‚ Ρ†Π΅Π»Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ индустрията ΠΈ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ‡Π½ΠΈΡ‚Π΅ срСди Π·Π° Π΅Π΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, която ΠΎΡ‚ своя страна ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π° Π·Π° мноТСство Ρ†Π΅Π»ΠΈ. ДнСс Ρ†Π΅Π»ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ΠΈ софтуСрни ΠΊΠΎΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΠΈ, Ρ…ΠΈΠΏΠ΅Ρ€Π²Π°ΠΉΠ·ΠΎΡ€Π½ΠΈ ΠΊΠΎΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΠΈ, NPU, GPU, FPGA, SmartNIC ΠΈ ASIC.

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ характСристики Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Ρ‚ ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ осигуряват Π±ΡŠΡ€Π·ΠΎΡ‚ΠΎ ΠΌΡƒ внСдряванС Π² ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ.

ΠŸΡŠΡ€Π²ΠΈ ΡΡ‚ΡŠΠΏΠΊΠΈ

P4 Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, цялата Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° информация Π΅ Π½Π° уСбсайта P4.org

Π’Ρ€ΡŠΠ·ΠΊΠ° към Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ https://github.com/p4lang, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΡƒΡ€ΠΎΡ†ΠΈ.

плъгин Π·Π° Eclipse с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° P4, Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°ΠΌΠ΅ P4 Studio ΠΎΡ‚ БоситС.

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4

НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ основнитС абстракции Π½Π° ядрото:

Π”Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈ β€” с тяхна ΠΏΠΎΠΌΠΎΡ‰ сС опрСдСлят Π·Π°Π³Π»Π°Π²ΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°.

ДСфиницията Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° уточнява:

  • описаниС Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΈ ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π°
  • Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ фиксирани ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°

НапримСр

header Ethernet_h{
    bit<48>  dstAddr;
    bit<48>  srcAddr;
    bit<16>  etherType;
}

header IPv4_h{
    bit<4>  version;
    bit<4>  ihl;
    bit<8>  diffserv;
    bit<16>  totalLen;
    bit<16>  identification;
    bit<3>  flags;
    bit<13>  fragOffset;
    bit<8>  ttl;
    bit<8>  protocol;
    bit<16>  hdrChecksum;
    bit<32>  srcAddr;
    bit<32>  dstAddr;
    varbit<320>  options;
}

ΠŸΠ°Ρ€ΡΠ΅Ρ€ΠΈ β€” тяхната Π·Π°Π΄Π°Ρ‡Π° Π΅ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ заглавията.

БлСдният ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Ρ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΠΊΡ€Π°ΠΉΠ½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° ΠΎΡ‚ Π΅Π΄Π½ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ към Π΅Π΄Π½ΠΎ ΠΎΡ‚ Π΄Π²Π΅Ρ‚Π΅ ΠΊΡ€Π°ΠΉΠ½ΠΈ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ:

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4

parser MyParser(){
 state  start{transition parse_ethernet;}
 state  parse_ethernet{
    packet.extract(hdr.ethernet);
    transition select(hdr.ethernet.etherType){
        TYPE_IPV4: parse_ipv4;
        default: accept;
        }
    }…
}

маси β€” ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π°, ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‰ΠΈ потрСбитСлски ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ с дСйствия. ДСйност β€” описаниС Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ трябва Π΄Π° сС ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π° ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°Ρ‚Π°.

Π’Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ (Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅) Π·Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, описват Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ‚Π° Match-Action

ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ сС ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΡ‚ ΠΏΠΎ:

  • Π’ΠΎΡ‡Π½ΠΎ съвпадСниС
  • Най-дълго съвпадСниС Π½Π° прСфикса (LPM)
  • Π’Ρ€ΠΎΠΉΠ½ΠΎ съвпадСниС (маскиранС)

table ipv4_lpm{
    reads{
        ipv4.dstAddr: lpm;
    } actions {
        forward();
    }
}

Всички възмоТни дСйствия трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.

ДСйствията сС ΡΡŠΡΡ‚ΠΎΡΡ‚ ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΠΈ. Π”Π°Π½Π½ΠΈΡ‚Π΅ ΠΈΠ΄Π²Π°Ρ‚ ΠΎΡ‚ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€. IP адрСси/Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅). Някои ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ Π±Π΅Π· Ρ†ΠΈΠΊΠ»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² дСйствиСто, Π½ΠΎ броят Π½Π° инструкциитС трябва Π΄Π° бъдС ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ дСйствията Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Ρ†ΠΈΠΊΠ»ΠΈ ΠΈΠ»ΠΈ условни ΠΈΠ·Ρ€Π°Π·ΠΈ.

action ipv4_forward(macAddr_t dstAddr, egressSpec_t port){
    standard_metadata.egress_spec = port;
    hdr.ethernet.srcAddr = hdr.ethernet.dstAddr;
    hdr.ethernet.dstAddr = dstAddr;
    hdr.ipv4.ttl = hdr.ipv4.ttl - 1;
}

ΠœΠΎΠ΄ΡƒΠ»ΠΈ Match-Action β€” дСйствия Π·Π° създаванС Π½Π° ΠΊΠ»ΡŽΡ‡ Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅, Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° дСйствия.

Π’ΠΈΠΏΠΈΡ‡Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΌΠΎΠ΄ΡƒΠ» Π΅ ​​показан Π½Π° Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚Π°:

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ β€” ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ€Π΅Π΄Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ Match-Action. Π’ΠΎΠ²Π° Π΅ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, която Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° високо Π½ΠΈΠ²ΠΎ ΠΈ послСдоватСлността Π½Π° съвпадСниС-дСйствиС. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈΡΡ‚ ΠΏΠΎΡ‚ΠΎΠΊ ΡΠ²ΡŠΡ€Π·Π²Π° всички ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ опрСдСля Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ».

Π’ΡŠΠ½ΡˆΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ са спСцифични ΠΎΠ±Π΅ΠΊΡ‚ΠΈ с ясно Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ API интСрфСйси. НапримСр изчисляванС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° сума, рСгистри, броячи, броячи ΠΈ Ρ‚.Π½.

extern register{
    register(bit<32> size);
    void read(out T result, in bit<32> index);
    void write(in bit<32> index, in T value);
}

extern Checksum16{
  Checksum16();    //constructor
  void clear();    //prepare unit for computation
  void update(in T data);    //add data to checksum
  void remove(in T data);  /remove data from existing checksum
  bit<16> get(); //get the checksum for the data added since last clear
}

ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ β€” структури ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с всСки ΠΏΠ°ΠΊΠ΅Ρ‚.

Има 2 Π²ΠΈΠ΄Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ:

  ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ (ΠΏΡ€Π°Π·Π½Π° структура Π·Π° всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ)
    ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° поставитС ΠΊΠ°ΠΊΠ²ΠΎΡ‚ΠΎ искатС Ρ‚ΡƒΠΊ
    ΠŸΡ€Π΅Π΄Π»Π°Π³Π° сС Π² цСлия Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄
    ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π·Π° ваши собствСни Ρ†Π΅Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Ρ…Π΅Ρˆ ΠΏΠ°ΠΊΠ΅Ρ‚

  Π’ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ – прСдоставСни ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π°
    Π’Ρ…ΠΎΠ΄Π΅Π½ ΠΏΠΎΡ€Ρ‚, ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΏΠΎΡ€Ρ‚ са ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ‚ΡƒΠΊ
    Π’Ρ€Π΅ΠΌΠ΅Π²ΠΎ ΠΊΠ»Π΅ΠΉΠΌΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ Π΅ поставСн Π½Π° опашка, Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠ½Π° Π½Π° ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π°
    ΠΌΡƒΠ»Ρ‚икаст Ρ…Π΅Ρˆ / мултикаст опашка
    ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ваТност Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°
    Π‘пСцификация Π½Π° изходния ΠΏΠΎΡ€Ρ‚ (Π½Π°ΠΏΡ€. ΠΈΠ·Ρ…ΠΎΠ΄Π½Π° опашка)

P4 ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€

ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ P4 (P4C) Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°:

  1. Π’Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ
  2. API Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° Π² Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° софтуСрСн ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚Π΅Π» Π½Π° Π΅Π·ΠΈΠΊ P4

Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΈ ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ.

p4lang/p4c-bm: създава JSON конфигурация Π·Π° bmv2
p4lang/bmv2: софтуСрСн ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π° JSON ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° bmv2 вСрсия

Π€ΠΈΠ³ΡƒΡ€Π°Ρ‚Π° ΠΏΠΎΠΊΠ°Π·Π²Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4

ΠœΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ с Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, рСгистри Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅, броячи:

  • table_set_default <table name> <action name> <action parameters>
  • table_add <table name> <action name> <match fields> => <action
    parameters> [priority]
  • table_delete <table name> <entry handle>


Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° simple_switch_CLI Π·Π° ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° API Π·Π° софтуСрСн ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚Π΅Π».

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ.

Π•Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ P4

PS Π’ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ‚ΠΎΠ²Π° лято Intel подписа споразумСниС Π·Π° ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ²Π°Π½Π΅ Π½Π° Barefoot Networks Π² ΠΎΠΏΠΈΡ‚ Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π±ΡŠΡ€Π·ΠΎ Π½Π° Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Hyperscale Cloud. ΠšΠ°ΠΊΡ‚ΠΎ ΠΊΠ°Π·Π° Navin Shenoy (ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Π²ΠΈΡ†Π΅ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Π»Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° Data Center Group Π² Intel Corporation), Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Intel Π΄Π° осигури ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ натоварвания ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ.

Π‘ΠΏΠΎΡ€Π΅Π΄ ΠΌΠ΅Π½ Π»ΠΈΡ‡Π½ΠΎ Π½Π΅ Π±ΠΈΠ²Π° Π΄Π° забравямС, Ρ‡Π΅ Intel Π΅ Π»ΠΈΠ΄Π΅Ρ€ Π² производството Π½Π° FPGA Ρ‡ΠΈΠΏΠΎΠ²Π΅ ΠΈ ΠΈΠΌΠ° ΠΎΡ‚Π»ΠΈΡ‡Π½Π° срСда Quartus. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅, Ρ‡Π΅ с пристиганСто Π½Π° Intel, Barefoot Π½Π΅ само Ρ‰Π΅ Ρ€Π°Π·ΡˆΠΈΡ€ΠΈ своята ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Π° линия, Π½ΠΎ ΠΈ Quartus ΠΈ P4 Studio Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ сСриозни Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ допълнСния към линията Toffino ΠΈ Toffino 2.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π΅Π½ Ρ‡Π»Π΅Π½ Π½Π° общността P4 - компания Π€Π°ΠΊΡ‚ΠΎΡ€Π½Π° Π³Ρ€ΡƒΠΏΠ°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€