P4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛

P4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛
P4 рдкреНрдпрд╛рдХреЗрдЯ рд░реВрдЯрд┐рдЩ рдирд┐рдпрдорд╣рд░реВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд╣реЛред C рд╡рд╛ рдкрд╛рдЗрдерди рдЬрд╕реНрддрд╛ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдпреАрдп рднрд╛рд╖рд╛рдХреЛ рд╡рд┐рдкрд░реАрдд, P4 рдПрдХ рдбреЛрдореЗрди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛ рд╣реЛ рдЬрд╕рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд░рд╛рдЙрдЯрд┐рдЩрдХрд╛ тАЛтАЛрд▓рд╛рдЧрд┐ рдЕрдиреБрдХреВрд▓рд┐рдд рдзреЗрд░реИ рдбрд┐рдЬрд╛рдЗрдирд╣рд░реВ рдЫрдиреНред

P4 рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рднрд╛рд╖рд╛ рд╣реЛ рдЬрд╕рд▓рд╛рдИ P4 Language Consortium рднрдирд┐рдиреЗ рдЧреИрд░-рд▓рд╛рднрдХрд╛рд░реА рд╕рдВрд╕реНрдерд╛рджреНрд╡рд╛рд░рд╛ рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рд░ рдорд░реНрдордд рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕рд▓рд╛рдИ рдУрдкрди рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдлрд╛рдЙрдиреНрдбреЗрд╕рди (ONF) рд░ рд▓рд┐рдирдХреНрд╕ рдлрд╛рдЙрдиреНрдбреЗрд╕рди (LF) рджреНрд╡рд╛рд░рд╛ рдкрдирд┐ рд╕рдорд░реНрдерди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рджреБрдИ рдареВрд▓рд╛ рдЫрд╛рддрд╛ рд╕рдВрд╕реНрдерд╛рд╣рд░реВ рд╣реБрдиреНред
рднрд╛рд╖рд╛ рдореВрд▓ рд░реВрдкрдорд╛ 2013 рдорд╛ рдмрдирд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ рд░ "рдкреНрд░реЛрдЯреЛрдХрд▓ рд╕реНрд╡рддрдиреНрддреНрд░, рдкреНрдпрд╛рдХреЗрдЯ рд░реВрдЯрд┐рдЩ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ" рд╢реАрд░реНрд╖рдХрдХреЛ 2014 SIGCOMM CCR рдкреЗрдкрд░рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

рдпрд╕рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рднрдПрджреЗрдЦрд┐, P4 рдмрдвреЗрдХреЛ рдЫ рд░ рддреАрд╡реНрд░ рд░реВрдкрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рднрдПрдХреЛ рдЫ, рдиреЗрдЯрд╡рд░реНрдХ рдПрдбреЗрдкреНрдЯрд░рд╣рд░реВ, рд╕реНрд╡рд┐рдЪрд╣рд░реВ, рд░ рд░рд╛рдЙрдЯрд░рд╣рд░реВ рд╕рд╣рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рдкреНрд░рд╕рд╛рд░рдг рд╡рд░реНрдгрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рджреНрд░реБрдд рд░реВрдкрдорд╛ рдорд╛рдирдХ рдмрдиреНрдпреЛред

"SDN рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдЙрджреНрдпреЛрдЧрд▓рд╛рдИ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реЗрдХреЛ рдЫ, рд░ P4 рд▓реЗ SDN рд▓рд╛рдИ рд░рд╛рдЙрдЯрд┐рдЩрдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд┐рд▓рд┐рдЯреА рд▓реНрдпрд╛рдПрд░ рдЕрд░реНрдХреЛ рддрд╣рдорд╛ рд▓реИрдЬрд╛рдиреНрдЫ," рдУрдкрди рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдлрд╛рдЙрдиреНрдбреЗрд╢рдирдХрд╛ рдХрд╛рд░реНрдпрдХрд╛рд░реА рдирд┐рд░реНрджреЗрд╢рдХ рдЧреБрд░реБ рдкрд╛рд░реБрд▓рдХрд░рд▓реЗ рднрдиреЗред

P4 рднрд╛рд╖рд╛ рдореВрд▓рддрдГ рдЧреБрдЧрд▓, рдЗрдВрдЯреЗрд▓, рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯ рд░рд┐рд╕рд░реНрдЪ, рдмреЗрдпрд░рдлреБрдЯ, рдкреНрд░рд┐рдиреНрд╕рдЯрди рд░ рд╕реНрдЯреНрдпрд╛рдирдлреЛрд░реНрдбрдХрд╛ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВ рд░ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕рдореВрд╣рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рд▓рдХреНрд╖реНрдп рд╕рд░рд▓ рдерд┐рдпреЛ: рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдПрдХ рджрд┐рдирдорд╛ рд╕рд┐рдХреНрди рд╕рдХреНрдиреЗ рд░ рд╕рдЮреНрдЬрд╛рд▓рд╣рд░реВрдорд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдХрд╕рд░реА рдкрдард╛рдЗрдиреНрдЫ рднрдиреЗрд░ рд╕рд╣реА рд░реВрдкрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рднрд╛рд╖рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕реБрд░реБрджреЗрдЦрд┐ рдиреИ, P4 рд▓рд╛рдИ рд▓рдХреНрд╖рд┐рдд рд╕реНрд╡рддрдиреНрддреНрд░ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (рдЕрд░реНрдерд╛рдд, P4 рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо ASICs, FPGAs, CPUs, NPUs, рд░ GPUs рдЬрд╕реНрддрд╛ рд╡рд┐рднрд┐рдиреНрди рд▓рдХреНрд╖реНрдпрд╣рд░реВрдорд╛ рдЪрд▓рд╛рдЙрди рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░реВрдкрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ)ред

рднрд╛рд╖рд╛ рдкрдирд┐ рдкреНрд░реЛрдЯреЛрдХрд▓ рд╕реНрд╡рддрдиреНрддреНрд░ рдЫ (рдЕрд░реНрдерд╛рдд, P4 рдХрд╛рд░реНрдпрдХреНрд░рдорд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рдорд╛рдирдХ рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди рд╕рдХреНрдЫ рд╡рд╛ рдирдпрд╛рдБ рдЕрдиреБрдХреВрд▓рди рдареЗрдЧрд╛рдирд╛ рдореЛрдбрд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ)ред

рдЙрджреНрдпреЛрдЧрдорд╛, P4 рдЙрдкрдХрд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рд╕рд╛рдпрдж рднрд╡рд┐рд╖реНрдпрдорд╛ рдЗрдиреНрдЯрд░рдиреЗрдЯ-RFC рд░ IEEE рдорд╛рдкрджрдгреНрдбрд╣рд░реВрдорд╛ P4 рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреЗрдЫред

P4 рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рд░ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░реНрдп рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпреЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд SONiC рд╕реНрд╡рд┐рдЪ OS рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рд╕реНрд╡рд┐рдЪ рдПрдмреНрд╕реНрдЯреНрд░реЗрдХреНрд╢рди рдЗрдиреНрдЯрд░рдлреЗрд╕ (SAI) API рдорд╛ рд╕реНрд╡рд┐рдЪ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╣реА рд░реВрдкрдорд╛ рд░реЗрдХрд░реНрдб рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред P4 рд▓рд╛рдИ ONF Stratum рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╡рд┐рднрд┐рдиреНрди рдирд┐рд╢реНрдЪрд┐рдд рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдордпреЛрдЧреНрдп рдпрдиреНрддреНрд░рд╣рд░реВрдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░рдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрди рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ, рд╕реНрд╡рд┐рдЪ рд░ рдиреЗрдЯрд╡рд░реНрдХ рдПрдбреЗрдкреНрдЯрд░рд╣рд░реВрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд░реНрдгрди рдЧрд░реНрдирд╛рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рдЕрдШрд┐ рд╕рдореНрдкреВрд░реНрдг рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рд╕рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рдореЛрдбреЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдареВрд▓рд╛ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрд▓реЗ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдиреЗрдЯрд╡рд░реНрдХрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкрд░реАрдХреНрд╖рдг рд░ рдбрд┐рдмрдЧ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рдорд╣рдБрдЧреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрд┐рдирд╛ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдорд╛ рдЕрдиреНрддрд░рд╕рдЮреНрдЪрд╛рд▓рди рдкрд░реАрдХреНрд╖рдгрдХреЛ рд╕рдордп рд░ рд▓рд╛рдЧрддрд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдШрдЯрд╛рдЙрдБрдЫрдиреНред

P4 рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдг рд╡рд┐рдХреНрд░реЗрддрд╛рд╣рд░реВрд▓реЗ рд╕рдмреИ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдорд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рд░рд╛рдЙрдЯрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рдкрд░реАрдХреНрд╖рдг рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХреЛ рдкреБрди: рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрди, рд░ рдЕрдиреНрддрддрдГ рдЕрдиреНрддрд░рд╕рдЮреНрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиред

рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, P4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рд▓реЗрдЦреНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдЬреБрди рд░реВрдЯрд┐рдЩрдХреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирдпрд╛рдБ рддрд░рд┐рдХрд╛рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, P4 рдбреЗрдЯрд╛ рдХреЗрдиреНрджреНрд░рд╣рд░реВ, рдЙрджреНрдпрдо рд░ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рдпрдХ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВрдорд╛ рдЯреЗрд▓рд┐рдореЗрдЯреНрд░реА рд░ рдорд╛рдкрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдЕрдиреБрд╕рдиреНрдзрд╛рди рд╕рдореБрджрд╛рдп рдкрдирд┐ рдЕрдШрд┐ рдмрдвреЗрдХреЛ рдЫ ред рдзреЗрд░реИ рдкреНрд░рдореБрдЦ рд╢реИрдХреНрд╖рд┐рдХ рд╕рдЮреНрдЬрд╛рд▓ рдЕрдиреБрд╕рдиреНрдзрд╛рди рд╕рдореВрд╣рд╣рд░реВрд▓реЗ P4 рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд░реЛрдорд╛рдЮреНрдЪрдХ рдирдпрд╛рдБ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реЗрдХрд╛ рдЫрдиреН, рд▓реЛрдб рд╕рдиреНрддреБрд▓рди, рд╕рд╣рдорддрд┐ рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ, рд░ рдХреБрдЮреНрдЬреА рдореВрд▓реНрдп рдХреНрдпрд╛рд╕рд┐рдЩ рд╕рд╣рд┐рддред рдирдпрд╛рдБ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдкреНрд░рддрд┐рдорд╛рди рд╕рд┐рд░реНрдЬрдирд╛ рднрдЗрд░рд╣реЗрдХреЛ рдЫ, рдирд╡реАрдирддрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдмрд╛рдЯ рд╕рдлреНрдЯрд╡реЗрдпрд░рдорд╛ рд╕рд░реНрджреИ рдЫ, рдзреЗрд░реИ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд, рдирдпрд╛рдБ рд░ рд╕рд░рд▓ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдЙрднрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред

рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╕рдореБрджрд╛рдпрд▓реЗ рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВ, рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЛрдбреЗрд▓рд╣рд░реВ, рдПрдкреАрдЖрдИрд╣рд░реВ, рдкрд░реАрдХреНрд╖рдг рдлреНрд░реЗрдорд╡рд░реНрдХрд╣рд░реВ, рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ, рд░ рдердк рд╕рд╣рд┐рдд рдХреЛрдб рд╡рд┐рдХрд╛рд╕рдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдпреЛрдЧрджрд╛рди рдЧрд░реЗрдХреЛ рдЫред 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 рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрд╡рддрдиреНрддреНрд░ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╣реЛ, рдпрд╕рдХреЛ рдорддрд▓рдм рддрд┐рдиреАрд╣рд░реВ рдзреЗрд░реИ рдлрд░рдХ рдкреНрд░рдХрд╛рд░рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрдиреНрдЬрд┐рдирд╣рд░реВ, рдЬрд╕реНрддреИ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВ, FPGAs, SoCs, рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВ, рд░ ASIC рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпреА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдореЗрд╕рд┐рдирд╣рд░реВ P4 рд▓рдХреНрд╖реНрдпрд╣рд░реВ рднрдиреЗрд░ рдЪрд┐рдирд┐рдиреНрдЫрдиреН, рд░ рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖реНрдпрд▓рд╛рдИ P4 рд╕реНрд░реЛрдд рдХреЛрдбрд▓рд╛рдИ рд▓рдХреНрд╖реНрдп рд╕реНрд╡рд┐рдЪ рдореЛрдбреЗрд▓рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рдХрдореНрдкрд╛рдЗрд▓рд░ рдЪрд╛рд╣рд┐рдиреНрдЫред рдХрдореНрдкрд╛рдЗрд▓рд░ рд▓рдХреНрд╖рд┐рдд рдЙрдкрдХрд░рдг, рдмрд╛рд╣реНрдп рд╕рдлреНрдЯрд╡реЗрдпрд░, рд╡рд╛ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдХрд┐рдирднрдиреЗ P4 рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдореМрд▓рд┐рдХ рд▓рдХреНрд╖реНрдпрд╣рд░реВ рд╕рд╛рдзрд╛рд░рдг рдкреНрдпрд╛рдХреЗрдЯ рд╕реНрд╡рд┐рдЪрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рдерд┐рдП, "P4 рд▓рдХреНрд╖реНрдп" рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рднрдП рддрд╛рдкрдирд┐ "P4 рд╕реНрд╡рд┐рдЪ" рд╢рдмреНрдж рд╕реБрдиреНрди рдзреЗрд░реИ рд╕рд╛рдорд╛рдиреНрдп рдЫред

рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдкреНрд░реЛрдЯреЛрдХрд▓(рд╣рд░реВ) рдХреЛ рд╕реНрд╡рддрдиреНрддреНрд░рддрд╛

P4 рдкреНрд░реЛрдЯреЛрдХрд▓ рд╕реНрд╡рддрдиреНрддреНрд░ рдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдЖрдИрдкреА, рдЗрдерд░рдиреЗрдЯ, TCP, VxLAN рд╡рд╛ MPLS рдЬрд╕реНрддрд╛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднрд╛рд╖рд╛рдорд╛ рдиреЗрдЯрд┐рдн рд╕рдорд░реНрдерди рдЫреИрдиред рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛, P4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдордорд╛ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВрдХреЛ рд╣реЗрдбрд░ рдврд╛рдБрдЪрд╛рд╣рд░реВ рд░ рдлрд┐рд▓реНрдб рдирд╛рдорд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫ, рдЬреБрди рдмрд╛рд░реАрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд░ рд▓рдХреНрд╖рд┐рдд рдЙрдкрдХрд░рдгрджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд░ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫред

рдХреНрд╖реЗрддреНрд░ рдкреБрди: рдХрдиреНрдлрд┐рдЧрд░реЗрдмрд┐рд▓рд┐рдЯреА

рдкреНрд░реЛрдЯреЛрдХрд▓ рд╕реНрд╡рддрдиреНрддреНрд░рддрд╛ рд░ рдЕрдореВрд░реНрдд рднрд╛рд╖рд╛ рдореЛрдбреЗрд▓рд▓реЗ рдкреБрди: рдХрдиреНрдлрд┐рдЧрд░реЗрдмрд┐рд▓рд┐рдЯреАрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ тАФ P4 рд▓рдХреНрд╖реНрдпрд╣рд░реВрд▓реЗ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╢реЛрдзрди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫред рдпреЛ рдХреНрд╖рдорддрд╛ рдкрд░рдореНрдкрд░рд╛рдЧрдд рд░реВрдкрдорд╛ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВ рдорд╛рд░реНрдлрдд рд░рд╛рдЙрдЯрд┐рдЩрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫ рдлрд┐рдХреНрд╕-рдлрдВрдХреНрд╢рди рдПрдХреАрдХреГрдд рд╕рд░реНрдХрд┐рдЯрд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛ред

рдпрджреНрдпрдкрд┐ рддреНрдпрд╣рд╛рдБ рднрд╛рд╖рд╛рдорд╛ рдХреЗрд╣рд┐ рдкрдирд┐ рдЫреИрди рдЬрд╕рд▓реЗ рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВрдХреЛ рд╡рд┐рд╢реЗрд╖ рд╕реЗрдЯрдХреЛ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рдЕрдиреБрдХреВрд▓рдирд▓рд╛рдИ рд░реЛрдХреНрди рд╕рдХреНрдЫ, рдпреА рдЕрдиреБрдХреВрд▓рдирд╣рд░реВ рднрд╛рд╖рд╛ рд▓реЗрдЦрдХрдХреЛ рд▓рд╛рдЧрд┐ рдЕрджреГрд╢реНрдп рд╣реБрдиреНрдЫрдиреН рд░ рдЕрдиреНрддрддрдГ рдкреНрд░рдгрд╛рд▓реА рд░ рд▓рдХреНрд╖реНрдпрд╣рд░реВрдХреЛ рд▓рдЪрд┐рд▓реЛрдкрди рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреБрди: рдХрдиреНрдлрд┐рдЧрд░реЗрдмрд┐рд▓рд┐рдЯреА рдХрдо рдЧрд░реНрди рд╕рдХреНрдЫред

рднрд╛рд╖рд╛рдХрд╛ рдпреА рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╕рдЮреНрдЬрд╛рд▓ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдпрд╕рдХреЛ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рдпреЛрдЧрдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реЗрд░ рдпрд╕рдХреЛ рд╕рд┐рд░реНрдЬрдирд╛рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╕реБрд░реБрдорд╛ рд░рд╛рдЦреЗрдХрд╛ рдерд┐рдПред

рднрд╛рд╖рд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдзреЗрд░реИ рдХрдореНрдкрдиреАрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫ:

1) рд╣рд╛рдЗрдкрд░рд╕реНрдХреЗрд▓ рдбрд╛рдЯрд╛ рдХреЗрдиреНрджреНрд░рд╣рд░реВ;

рдЪрд┐рдирд┐рдпрд╛рдБ рдХрдореНрдкрдиреА рдЯреЗрдиреНрд╕реЗрдиреНрдЯ рд╡рд┐рд╢реНрд╡рдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдареВрд▓реЛ рд▓рдЧрд╛рдиреА рдХрдореНрдкрдиреА рд░ рд╕рдмреИрднрдиреНрджрд╛ рдареВрд▓реЛ рднреЗрдиреНрдЪрд░ рдХреНрдпрд╛рдкрд┐рдЯрд▓ рдлрд░реНрдорд╣рд░реВрдордзреНрдпреЗ рдПрдХ рд╣реЛред Tencent рдХреЛ рд╕рд╣рд╛рдпрдХ рдХрдореНрдкрдиреАрд╣рд░реВ, рджреБрдмреИ рдЪреАрди рд░ рд╡рд┐рд╢реНрд╡рднрд░рдХрд╛ рдЕрдиреНрдп рджреЗрд╢рд╣рд░реВрдорд╛, рд╡рд┐рднрд┐рдиреНрди рдЗрдиреНрдЯрд░рдиреЗрдЯ рд╕реЗрд╡рд╛рд╣рд░реВ, рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЛрдирд┐рдХ рдордиреЛрд░рдЮреНрдЬрдирдХреЛ рдХреНрд╖реЗрддреНрд░рдорд╛ рд╡рд┐рдХрд╛рд╕рд╣рд░реВ рд╕рд╣рд┐рдд рдЙрдЪреНрдЪ-рдЯреЗрдХ рд╡реНрдпрд╡рд╕рд╛рдпрдХрд╛ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЫрдиреНред

P4 рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рд░реВрдЯрд┐рдЩ рдЙрдиреНрдирдд рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рд╣реБрдиреН рдЬреБрди рдХрдореНрдкрдиреАрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдПрдХ рдкреНрд░рд╡рд░реНрддрдХрдХреЛ рд░реВрдкрдорд╛, рдЧреБрдЧрд▓рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдЙрджреНрдпреЛрдЧ рд░ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдбрд╛рдЯрд╛ рд╕реЗрдиреНрдЯрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдбрд┐рдЬрд╛рдЗрдирдорд╛ P4 рдХреЛ рджреНрд░реБрдд рд░реВрдкрдорд╛ рдЕрдкрдирд╛рдПрдХреЛ рдиреЛрдЯ рдЧрд░реНрди рдкрд╛рдЙрдБрджрд╛ рдЧрд░реНрд╡ рдЫред

2) рд╡рд╛рдгрд┐рдЬреНрдп рдХрдореНрдкрдиреАрд╣рд░реВ;

Goldman Sachs рд▓реЗ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдореБрджрд╛рдпрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдирд╡рд╛рдЪрд╛рд░ рдЧрд░реНрди рд░ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдореНрд░реЛ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рд╛рдЭрд╛ рдорд╛рдирдХрд╣рд░реВ рд░ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдлрд╛рдЗрджрд╛ рд▓рд┐рдиреНрдЫред

3) рдЙрддреНрдкрд╛рджрди;

рд╕рдореНрдкреВрд░реНрдг рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдЙрджреНрдпреЛрдЧрд▓реЗ P4 рдЬрд╕реНрддреЛ рднрд╛рд╖рд╛рдмрд╛рдЯ рд▓рд╛рдн рдЙрдард╛рдЙрдиреЗрдЫ рдЬрд╕рд▓реЗ рдлрд░реНрд╡рд╛рд░реНрдбрд┐рдЩ рд╡реНрдпрд╡рд╣рд╛рд░рд▓рд╛рдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред рд╕рд┐рд╕реНрдХреЛрд▓реЗ рдкрдирд┐ рдпреЛ рднрд╛рд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреЛ рдЙрддреНрдкрд╛рджрди рд▓рд╛рдЗрдирд╣рд░реВ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдирдорд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдЫред

рдЬреБрдирд┐рдкрд░ рдиреЗрдЯрд╡рд░реНрдХрд▓реЗ рдзреЗрд░реИ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдорд╛ P4 рд░ P4 рд░рдирдЯрд╛рдЗрдо рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реЗрдХреЛ рдЫ, рд░ рдЬреБрдирд┐рдкрд░ рдЗрдореНрдмреЗрдбреЗрдб рдкреНрд░реЛрд╕реЗрд╕рд░ рд░ рдпрд╕рдХреЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдХреЛрдбрдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

Ruijie Networks P4 рдХреЛ рдмрд▓рд┐рдпреЛ рд╕рдорд░реНрдердХ рд╣реЛ рд░ рдпрд╕рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВрдорд╛ рд▓реНрдпрд╛рдЗрдиреЗ рдлрд╛рдЗрджрд╛рд╣рд░реВред P4 рдХреЛ рд╕рд╛рде, рдХрдореНрдкрдиреАрд▓реЗ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛рд▓рд╛рдИ рдЙрддреНрдХреГрд╖реНрдЯ-рдЗрди-рдХреНрд▓рд╛рд╕ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрди рд╕рдХреНрдЫред

4) рджреВрд░рд╕рдВрдЪрд╛рд░ рдкреНрд░рджрд╛рдпрдХрд╣рд░реВ;

AT&T P4 рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЕрдкрдирд╛рдЙрдиреЗ рд╡реНрдпрдХреНрддрд┐ рдерд┐рдпреЛ, P4 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкрд╣рд┐рд▓реЛ рд╡реНрдпрдХреНрддрд┐рд▓реЗ рдЖрдлреНрдиреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рджреЗрдЦреНрди рдЪрд╛рд╣реЗрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░рд▓рд╛рдИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рд░ рдпрд╕рдХреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ P4 рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдлрд░реНрд╡рд╛рд░реНрдбрд┐рдЩ рдпрдиреНрддреНрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиред

Deutsche Telekom рдорд╛, рднрд╛рд╖рд╛ рдкрд╣реБрдБрдЪ 4.0 рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдореБрдЦреНрдп рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

5) рдЕрд░реНрдзрдЪрд╛рд▓рдХ рдЙрджреНрдпреЛрдЧ;

рднрд╛рд╖рд╛рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рд░реВрдЯрд┐рдЩ рдкреНрд▓реЗрдирдорд╛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдкреНрд░рддрд┐рдорд╛рди рд▓рд╛рдЧреВ рдЧрд░реНрди рдмреЗрдпрд░рдлреБрдЯрд▓рд╛рдИ рд╕рдХреНрд╖рдо рдмрдирд╛рдпреЛред

Xilinx P4.org рдХреЛ рд╕рдВрд╕реНрдерд╛рдкрдХрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдерд┐рдпреЛ рд░ P4 рднрд╛рд╖рд╛рдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рд╕рдВрд▓рдЧреНрди рдерд┐рдпреЛ рд░ SDNet рдбрд┐рдЬрд╛рдЗрдирдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдкрд╣рд┐рд▓реЛ P416 рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдЬрд╛рд░реА рдЧрд░реНрджреИ SmartNIC рд░ NFV рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рд▓рд╛рдЧрд┐ FPGA-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдпреЛред

6) рд╕рдлреНрдЯрд╡реЗрдпрд░ред

VMware рд▓реЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдЫ рдХрд┐ P4 рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдЕрд░реНрдердкреВрд░реНрдг рд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдкрд╛рдиреНрддрд░рдг рдЪрд▓рд╛рдЙрдиреЗ рдареВрд▓реЛ рдКрд░реНрдЬрд╛, рдирд╡реАрдирддрд╛ рд░ рд╕рдореБрджрд╛рдп рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред VMware рд╕реБрд░реБрджреЗрдЦрд┐ рдиреИ рдпрд╕ рдЙрджреНрдпреЛрдЧ рдЖрдиреНрджреЛрд▓рдирдХреЛ рд╣рд┐рд╕реНрд╕рд╛ рднрдПрдХреЛ рдЫ, рдирд╡реАрдирддрд╛рдХреЛ рдирдпрд╛рдБ рд▓рд╣рд░ рд╕рдлреНрдЯрд╡реЗрдпрд░-рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдЫ рдЬрд╕рд▓реЗ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдХреНрд╖рдорддрд╛рд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдирд╡реАрдирддрдо рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред

рддрд╕рд░реНрде, P4 рдПрдХ рд▓рдХреНрд╖реНрдп-рд╕реНрд╡рддрдиреНрддреНрд░ рд░ рдкреНрд░реЛрдЯреЛрдХрд▓-рд╕реНрд╡рддрдиреНрддреНрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд╣реЛ рдЬреБрди рдЙрджреНрдпреЛрдЧ рд░ рд╢рд┐рдХреНрд╖рд╛рд╡рд┐рджреНрд╣рд░реВрд▓реЗ рдкреНрдпрд╛рдХреЗрдЯ рд░рд╛рдЙрдЯрд┐рдЩ рд╡реНрдпрд╡рд╣рд╛рд░рд▓рд╛рдИ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд░реВрдкрдорд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЬреБрди рдмрд╛рд░реАрдорд╛ рдзреЗрд░реИ рд▓рдХреНрд╖реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЖрдЬ, рд▓рдХреНрд╖реНрдпрд╣рд░реВрдорд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реНрд╡рд┐рдЪрд╣рд░реВ, рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░ рд╕реНрд╡рд┐рдЪрд╣рд░реВ, NPUs, GPUs, FPGAs, SmartNICs рд░ ASICрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

рднрд╛рд╖рд╛рдХреЛ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрд▓реЗ рдпрд╕рдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рджрд╛рдпрд░рд╛рд▓рд╛рдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫ рд░ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдорд╛ рдпрд╕рдХреЛ рджреНрд░реБрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫред

рд╕реБрд░реБрд╡рд╛рдд

P4 рдПрдХ рдЦреБрд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛ, рд╕рдмреИ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯрдорд╛ рдЫ P4.org

рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд▓рд┐рдЩреНрдХ https://github.com/p4lang, рдЬрд╣рд╛рдБ рддрдкрд╛рдЗрдБ рдЙрджрд╛рд╣рд░рдг рд╕реНрд░реЛрдд рдХреЛрдб рд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдЬреЛрдбреНрдиреБ P4 рд╕рдорд░реНрдерди рд╕рдВрдЧ рдЧреНрд░рд╣рдг рдХреЛ рд▓рд╛рдЧреА, рддрд░ рд╣рд╛рдореА рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ P4 рд╕реНрдЯреБрдбрд┐рдпреЛ рдЦрд╛рд▓реА рдЦреБрдЯреНрдЯрд╛рдмрд╛рдЯред

P4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛

рдХрд░реНрдиреЗрд▓ рдХреЛ рдореБрдЦреНрдп abstractions рд╣реЗрд░реМрдВ:

рд╣реЗрдбрд░рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджреИ - рддрд┐рдиреАрд╣рд░реВрдХреЛ рдорджреНрджрддрд▓реЗ, рдкреНрд░реЛрдЯреЛрдХрд▓ рд╣реЗрдбрд░рд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдиреНрдЫред

рд╣реЗрдбрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫ:

  • рдкреНрдпрд╛рдХреЗрдЯ рдврд╛рдБрдЪрд╛ рд░ рд╣реЗрдбрд░ рдХреНрд╖реЗрддреНрд░ рдирд╛рдорд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдг
  • рдирд┐рд╢реНрдЪрд┐рдд рд░ рдЪрд░ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐

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;
        }
    }тАж
}

рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ - рдХрд╛рд░реНрдпрд╣рд░реВрд╕рдБрдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд▓рд┐рдЩреНрдХ рдЧрд░реНрдиреЗ рдореЗрд╕рд┐рди рдЕрд╡рд╕реНрдерд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реНред ╨Ф╨╡╨╣╤Б╤В╨▓╨╕╤П - рдкреНрдпрд╛рдХреЗрдЬрд▓рд╛рдИ рдХрд╕рд░реА рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрдиреБрдкрд░реНрдЫ рднрдиреНрдиреЗ рд╡рд┐рд╡рд░рдгред

рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдкреНрдпрд╛рдХреЗрдЯ рдлрд░реНрд╡рд╛рд░реНрдбрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рд░рд╛рдЬреНрдпрд╣рд░реВ (рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕реНрддрд░рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН, рдорд┐рд▓рд╛рди-рдХрд╛рд░реНрдп рдПрдХрд╛рдЗрдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдпрд╕рджреНрд╡рд╛рд░рд╛ рдорд┐рд▓рд╛рдЗрдиреНрдЫ:

  • рд╕рдЯреАрдХ рдорд┐рд▓рд╛рди
  • рд╕рдмреИрднрдиреНрджрд╛ рд▓рд╛рдореЛ рдЙрдкрд╕рд░реНрдЧ рдорд┐рд▓рд╛рди (LPM)
  • рдЯреНрд░рд┐рдкрд▓ рдорд┐рд▓рд╛рди (рдорд╛рд╕реНрдХрд┐рдЩ)

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

рд╕рдмреИ рд╕рдореНрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╣рд░реВ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред

рдХрд╛рд░реНрдпрд╣рд░реВ рдХреЛрдб рд░ рдбреЗрдЯрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдбрд╛рдЯрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕реНрддрд░рдмрд╛рдЯ рдЖрдЙрдБрдЫ (рдЬрд╕реНрддреИ рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рд╣рд░реВ/рдкреЛрд░реНрдЯ рдирдореНрдмрд░рд╣рд░реВ)ред рдирд┐рд╢реНрдЪрд┐рдд, рд▓реВрдк-рдореБрдХреНрдд рдЖрджрд┐рдорд╣рд░реВ рд╕реАрдзрд╛ рдХрд╛рд░реНрдпрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред рддреНрдпрд╕рдХрд╛рд░рдг, рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рдХреБрдиреИ рдкрдирд┐ рд▓реВрдк рд╡рд╛ рд╕рд╢рд░реНрдд рдХрдердирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрджреИрдиред

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;
}

рдореНрдпрд╛рдЪ-рдПрдХреНрд╢рди рдореЛрдбреНрдпреБрд▓рд╣рд░реВ - рдЦреЛрдЬ рдХреБрдЮреНрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдХрд╛рд░реНрдпрд╣рд░реВ, рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН, рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдореЛрдбреНрдпреБрд▓рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЪрд┐рддреНрд░рдорд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫ:

P4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛

рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ - рдореНрдпрд╛рдЪ-рдПрдХреНрд╢рди рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдХреНрд░рдорд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫред рдпреЛ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛ рдЬрд╕рд▓реЗ рдЙрдЪреНрдЪ рд╕реНрддрд░рдХреЛ рддрд░реНрдХ рд░ рдорд┐рд▓рд╛рди-рдХрд╛рд░реНрдп рдЕрдиреБрдХреНрд░рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣рд▓реЗ рдирд┐рдпрдиреНрддреНрд░рдгрдХреЛ рд╕реНрддрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реЗрд░ рд╕рдмреИ рд╡рд╕реНрддреБрд╣рд░реВрд▓рд╛рдИ рд▓рд┐рдЩреНрдХ рдЧрд░реНрджрдЫред

рдмрд╛рд╣реНрдп рд╡рд╕реНрддреБрд╣рд░реВ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд░ рдПрдкреАрдЖрдИ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рднрдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╕реНрддреБрд╣рд░реВ рд╣реБрдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЪреЗрдХрд╕рдо рдЧрдгрдирд╛, рджрд░реНрддрд╛рд╣рд░реВ, рдХрд╛рдЙрдиреНрдЯрд░рд╣рд░реВ, рдХрд╛рдЙрдиреНрдЯрд░рд╣рд░реВ, рдЖрджрд┐ред

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
}

рдореЗрдЯрд╛рдбреЗрдЯрд╛ - рдкреНрд░рддреНрдпреЗрдХ рдкреНрдпрд╛рдХреЗрдЬрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдбрд╛рдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВред

рддреНрдпрд╣рд╛рдБ реи рдкреНрд░рдХрд╛рд░рдХрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛рд╣рд░реВ рдЫрдиреН:

  рдЖрдлреВ рдЕрдиреБрдХреВрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рд╕рдмреИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЦрд╛рд▓реА рд╕рдВрд░рдЪрдирд╛)
    рддрдкрд╛рдИрд▓реЗ рдЪрд╛рд╣рд╛рдиреБ рднрдПрдХреЛ рдХреБрд░рд╛ рдпрд╣рд╛рдБ рд░рд╛рдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
    рдкрд╛рдЗрдкрд▓рд╛рдЗрди рднрд░ рдЙрдкрд▓рдмреНрдз рдЫ
    рддрдкрд╛рдИрдХреЛ рдЖрдлреНрдиреИ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрдпрд╛рдХреЗрдЬ рд╣реНрдпрд╛рд╕ рднрдгреНрдбрд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐

  рдЖрдиреНрддрд░рд┐рдХ рдореЗрдЯрд╛рдбреЗрдЯрд╛ - рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ
    рдЗрдирдкреБрдЯ рдкреЛрд░реНрдЯ, рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рдпрд╣рд╛рдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ
    рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдк рдЬрдм рдкреНрдпрд╛рдХреЗрдЯ рд▓рд╛рдордмрджреНрдз рдерд┐рдпреЛ, рд▓рд╛рдо рдЧрд╣рд┐рд░рд╛рдИ
    рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рд╣реНрдпрд╛рд╕ / рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рд▓рд╛рдо
    рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рд╛рдердорд┐рдХрддрд╛, рдкреНрдпрд╛рдХреЗрдЬ рдорд╣рддреНрд╡
    рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ (рдЬрд╕реНрддреИ рдЖрдЙрдЯрдкреБрдЯ рд▓рд╛рдо)

P4 рдХрдореНрдкрд╛рдЗрд▓рд░

P4 рдХрдореНрдкрд╛рдЗрд▓рд░ (P4C) рд▓реЗ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫ:

  1. рдбрд╛рдЯрд╛ рдкреНрд▓реЗрди рд░рдирдЯрд╛рдЗрдо
  2. рдбрд╛рдЯрд╛ рдкреНрд▓реЗрдирдорд╛ рдореЗрд╕рд┐рдирдХреЛ рдЕрд╡рд╕реНрдерд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди API

P4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛

P4 рднрд╛рд╖рд╛рдорд╛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реНрд╡рд┐рдЪрдХреЛ рдЙрджрд╛рд╣рд░рдг

рд╕реНрд░реЛрдд рдХреЛрдбрд╣рд░реВ рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

p4lang/p4c-bm: bmv2 рдХреЛ рд▓рд╛рдЧрд┐ JSON рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ
p4lang/bmv2: рдПрдЙрдЯрд╛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реНрд╡рд┐рдЪ рдЬрд╕рд▓реЗ bmv2 рд╕рдВрд╕реНрдХрд░рдг JSON рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рдмреБрдЭреНрджрдЫ

рдЪрд┐рддреНрд░рд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдХрд▓рди рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рджреЗрдЦрд╛рдЙрдБрдЫ:

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>


рд╕реНрд░реЛрдд рдХреЛрдбрд▓реЗ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реНрд╡рд┐рдЪ API рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ simple_switch_CLI рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рддрдкрд╛рдИрдВ рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рдпреЛ рд░ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

P4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛

PS рдпрд╕ рдЧрд░реНрдореАрдХреЛ рд╕реБрд░реБрдорд╛, рдЗрдВрдЯреЗрд▓рд▓реЗ рд╣рд╛рдЗрдкрд░рд╕реНрдХреЗрд▓ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рджреНрд░реБрдд рд░реВрдкрдорд╛ рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕рдорд╛ рдмреЗрдпрд░рдлреБрдЯ рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдореНрдЭреМрддрд╛рдорд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЧрд░реНтАНрдпреЛред рдирд╡реАрди рд╢реЗрдиреЛрдп (рдХрд╛рд░реНрдпрдХрд╛рд░реА рдЙрдкрд╛рдзреНрдпрдХреНрд╖ рд░ рдЗрдиреНрдЯреЗрд▓ рдХрд░реНрдкреЛрд░реЗрд╢рдирдорд╛ рдбрд╛рдЯрд╛ рд╕реЗрдиреНрдЯрд░ рд╕рдореВрд╣рдХрд╛ рдорд╣рд╛рдкреНрд░рдмрдиреНрдзрдХ) рд▓реЗ рднрдиреЗ, рдпрд╕рд▓реЗ рдЗрдиреНрдЯреЗрд▓рд▓рд╛рдИ рдбрд╛рдЯрд╛ рд╕реЗрдиреНрдЯрд░ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдареВрд▓реЛ рдХрд╛рд░реНрдпрднрд╛рд░ рд░ рдердк рдЕрд╡рд╕рд░рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред

рдореЗрд░реЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рдЪрд╛рд░рдорд╛, рд╣рд╛рдореАрд▓реЗ рдмрд┐рд░реНрд╕рдиреБ рд╣реБрдБрджреИрди рдХрд┐ рдЗрдВрдЯреЗрд▓ FPGA рдЪрд┐рдкреНрд╕рдХреЛ рдЙрддреНрдкрд╛рджрдирдорд╛ рдПрдХ рдиреЗрддрд╛ рд╣реЛ рд░ рдпрд╕рдорд╛ рдЙрддреНрдХреГрд╖реНрдЯ рдХреНрд╡рд╛рд░реНрдЯрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ Intel рдХреЛ рдЖрдЧрдорди рд╕рдВрдЧ, Barefoot рд▓реЗ рдпрд╕рдХреЛ рдЙрддреНрдкрд╛рджрди рд▓рд╛рдЗрди рдорд╛рддреНрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджреИрди, рддрд░ Quartus рд░ P4 Studio рд▓реЗ Toffino рд░ Toffino 2 рд▓рд╛рдИрдирдорд╛ рдЧрдореНрднреАрд░ рдЕрдкрдбреЗрдЯ рд░ рдердкрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫред

P4 рд╕рдореБрджрд╛рдпрдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рджрд╕реНрдп - рдХрдореНрдкрдиреА рдХрд╛рд░рдХ рд╕рдореВрд╣.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди