рдкреА 4 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛


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

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

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

рдУрдкрди рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреЗ рдХрд╛рд░реНрдпрдХрд╛рд░реА рдирд┐рджреЗрд╢рдХ рдЧреБрд░реБ рдкрд╛рд░реБрд▓рдХрд░ рдиреЗ рдХрд╣рд╛, "рдПрд╕рдбреАрдПрди рдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЙрджреНрдпреЛрдЧ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдкреА 4 рдПрд╕рдбреАрдПрди рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рд░реВрдЯрд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореИрдмрд┐рд▓рд┐рдЯреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред"

P4 рднрд╛рд╖рд╛ рдореВрд▓ рд░реВрдк рд╕реЗ Google, Intel, Microsoft Research, Barefoot, рдкреНрд░рд┐рдВрд╕рдЯрди рдФрд░ рд╕реНрдЯреИрдирдлреЛрд░реНрдб рдХреЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдФрд░ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рд▓рдХреНрд╖реНрдп рд╕рд░рд▓ рдерд╛: рдПрдХ рдЖрд╕рд╛рди-рд╕реЗ-рдЙрдкрдпреЛрдЧ рд╡рд╛рд▓реА рднрд╛рд╖рд╛ рдмрдирд╛рдПрдВ рдЬреЛ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░ рдПрдХ рджрд┐рди рдореЗрдВ рд╕реАрдЦ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреИрдХреЗрдЯ рдХреИрд╕реЗ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред

рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА, P4 рдХреЛ рд▓рдХреНрд╖реНрдп рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╛рдиреА P4 рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ, рдЬреИрд╕реЗ ASIC, FPGA, CPU, NPU рдФрд░ GPU) рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд╛рд╖рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ (рдпрд╛рдиреА, рдкреА 4 рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореМрдЬреВрджрд╛ рдорд╛рдирдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирдП рдХрд╕реНрдЯрдо рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рдореЛрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

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

P4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдФрд░ рдлрд┐рдХреНрд╕реНрдб-рдлрдВрдХреНрд╢рди рджреЛрдиреЛрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдУрдкрди рд╕реЛрд░реНрд╕ SONC рд╕реНрд╡рд┐рдЪ OS рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд╡рд┐рдЪ рдПрдмреНрд╕реНрдЯреНрд░рдХреНрд╢рди рдЗрдВрдЯрд░рдлреЗрд╕ (SAI) рдПрдкреАрдЖрдИ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред P4 рдХрд╛ рдЙрдкрдпреЛрдЧ ONF рд╕реНрдЯреНрд░реИрдЯрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд┐рдХреНрд╕реНрдб рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

рдмреЗрд╢рдХ, рдкреА 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рдорд╛рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреА 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдФрд░ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ, рдЙрджреНрдпрдо рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ рдорд╛рдк рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рд╡рд┐рдХрд╛рд╕ рд╕рдореБрджрд╛рдп рдиреЗ рдХреЛрдб рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХрд▓рдХ, рдкрд╛рдЗрдкрд▓рд╛рдЗрди, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЙрдбрд▓, рдПрдкреАрдЖрдИ, рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрд▓реАрдмрд╛рдмрд╛, AT & T, рдирдВрдЧреЗ рдкрд╛рдБрд╡, рд╕рд┐рд╕реНрдХреЛ, рдлреЙрдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ, Google, Intel, IXIA, рдЬреБрдирд┐рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx рдФрд░ ZTE рдЬреИрд╕реА рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рд╕рдорд░реНрдкрд┐рдд рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ; BUPT, рдХреЙрд░реНрдиреЗрд▓, рд╣рд╛рд░реНрд╡рд░реНрдб, MIT, NCTU, рдкреНрд░рд┐рдВрд╕рдЯрди, рд╕реНрдЯреИрдирдлреЛрд░реНрдб, рддрдХрдиреАрдХ, рд╕рд┐рдВрдШреБрдЖ, UMass рдФрд░ USI рд╕рд╣рд┐рдд рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдпреЛрдВ рд╕реЗ; рдФрд░ CORD, FD.io, OpenDaylight, ONOS, OvS, SAI рдФрд░ рд╕реНрдЯреНрд░реИрдЯрдо рд╕рд╣рд┐рдд рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЗрд╕ рддрдереНрдп рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ P4 рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреА 4 рдирд┐рдпрдВрддреНрд░рдХ рдкреАрдврд╝реА:



рдЖрд╡реЗрджрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ



рдЪреВрдВрдХрд┐ рднрд╛рд╖рд╛ рд░реВрдЯрд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕реВрдЪреА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ рд╣реИред рднрд╛рд╖рд╛ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:

  1. рд▓рдХреНрд╖реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░рддрд╛;
  2. рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛;
  3. рдлрд╝реАрд▓реНрдб рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рд▓рдХреНрд╖реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░рддрд╛

рдкреА 4 рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди-рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреА рдХрд╛рд░реНрдпрдХрд╛рд░реА рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдкреНрд░реЛрд╕реЗрд╕рд░, рдПрдлрдкреАрдЬреАрдП, рдСрди-рдЪрд┐рдк рд╕рд┐рд╕реНрдЯрдо, рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдПрдПрд╕рдЖрдИрд╕реАред рдЗрди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдорд╢реАрдиреЛрдВ рдХреЛ P4 рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП P4 рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд▓рдХреНрд╖реНрдп рд╕реНрд╡рд┐рдЪ рдореЙрдбрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдВрдХрд▓рдХ рдХреЛ рд▓рдХреНрд╖реНрдп рдбрд┐рд╡рд╛рдЗрд╕, рдмрд╛рд╣рд░реА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдкреА 4 рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░рд▓ рдкреИрдХреЗрдЯ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЖрдк рдЕрдХреНрд╕рд░ "рдкреА 4 рд╕реНрд╡рд┐рдЪ" рд╢рдмреНрдж рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА "рд▓рдХреНрд╖реНрдп рдкреА 4" рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛред

рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛

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

рдлрд╝реАрд▓реНрдб рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛

рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдФрд░ рдЕрдореВрд░реНрдд рднрд╛рд╖рд╛ рдореЙрдбрд▓ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдкреА 4 рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкреИрдХреЗрдЯ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рдирд┐рдпрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдорд╛рдиреНрдп-рдкреНрд░рдпреЛрдЬрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИред

рдпрджреНрдпрдкрд┐ рдРрд╕реА рдХреЛрдИ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдореВрд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд░реЛрдХ рд╕рдХрддреА рд╣реИ, рдпреЗ рдЕрдиреБрдХреВрд▓рди рднрд╛рд╖рд╛ рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдЕрджреГрд╢реНрдп рд╣реИрдВ рдФрд░ рдЕрдВрддрддрдГ, рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рдкреБрди: рдпреЛрдЧреНрдпрддрд╛ред

рднрд╛рд╖рд╛ рдХреА рдпреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЗрд╕рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд░рдЦреА рдЧрдИ рдереАрдВред

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА, рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

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

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

рдкреА 4 рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рд░реВрдЯрд┐рдВрдЧ рдЙрдиреНрдирдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдХрдВрдкрдиреА рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред

рдПрдХ рд░рдЪрдирд╛рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, Google рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдкреА 4 рдХреЗ рддреЗрдЬреА рд╕реЗ рдкрд░рд┐рдЪрдп рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдХреЗ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдкрд░ рдЧрд░реНрд╡ рд╣реИред

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

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

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

рд╕рдВрдкреВрд░реНрдг рдиреЗрдЯрд╡рд░реНрдХ рдЙрджреНрдпреЛрдЧ рдХреЛ рдкреА 4 рдЬреИрд╕реА рднрд╛рд╖рд╛ рд╕реЗ рд▓рд╛рдн рд╣реЛрдЧрд╛, рдЬреЛ рдХреЙрд▓ рдбрд╛рдЗрд╡рд░реНрдЯрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рд┐рд╕реНрдХреЛ рдореЗрдВ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЗрд╕ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЙрддреНрдкрд╛рдж рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред

рдЬреБрдирд┐рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдиреЗ рдХрдИ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдкреА 4 рдФрд░ рдкреА 4 рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЬреБрдирд┐рдкрд░ рдПрдореНрдмреЗрдбреЗрдб рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рддрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

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

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

рдПрдЯреА рдПрдВрдб рдЯреА рдкреА 4 рдХреЗ рдкрд╣рд▓реЗ рд╕рдорд░реНрдердХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛, рдкреА 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреА 4 рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдбреЙрдпрдЪреЗ рдЯреЗрд▓реАрдХреЙрдо рдПрдХреНрд╕реЗрд╕ 4.0 рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЦреНрдп рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

5) рд╕реЗрдореАрдХрдВрдбрдХреНрдЯрд░ рдЙрджреНрдпреЛрдЧ;

рднрд╛рд╖рд╛ рдиреЗ рдмреЗрдпрд░рдлреБрдЯ рджреНрд╡рд╛рд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд░реВрдЯрд┐рдВрдЧ рд╡рд┐рдорд╛рди рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдкреНрд░рддрд┐рдорд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ред

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

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

рд╡реАрдПрдорд╡реЗрдпрд░ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдкреА 4 рдЬрдмрд░рджрд╕реНрдд рдКрд░реНрдЬрд╛, рдирд╡рд╛рдЪрд╛рд░ рдФрд░ рдПрдХ рд╕рдореБрджрд╛рдп рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕рд╛рд░реНрдердХ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред VMware рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕ рдЙрджреНрдпреЛрдЧ рдЖрдВрджреЛрд▓рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдирд╡рд╛рдЪрд╛рд░ рдХреА рдПрдХ рдирдИ рд▓рд╣рд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ рдЬреЛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд╡реАрдирддрдо рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, P4 рдПрдХ рд▓рдХреНрд╖реНрдп-рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджреНрдпреЛрдЧ рдФрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдореБрджрд╛рдп рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрдХреЗрдЯ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдХрдИ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдЬ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрд╡рд┐рдЪ, рд╣рд╛рдЗрдкрд░рд╡рд╛рдЗрдЬрд░ рд╕реНрд╡рд┐рдЪ, NPU, GPU, FPGAs, SmartNIC рдФрд░ ASIC рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ


P4 рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рд╕рднреА рд╡рд░реНрддрдорд╛рди рдЬрд╛рдирдХрд╛рд░реА P4.org рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╣реИ

рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА https://github.com/p4lang рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ , рдЬрд╣рд╛рдВ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

P4 рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди , рд▓реЗрдХрд┐рди рд╣рдо рдирдВрдЧреЗ рдкрд╛рдВрд╡ рд╕реЗ 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;
}


рдкрд╛рд░реНрд╕рд░реНрд╕ рд╣реЗрдбрд░реНрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЙрдирдХрд╛ рдХрд╛рдо рд╣реИред

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



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


рддрд╛рд▓рд┐рдХрд╛рдПрдБ - рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрди рдХреА рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ рдХреНрд░рд┐рдпрд╛ - рдкреИрдХреЗрдЬ рдХрд╛ рд╣реЗрд░рдлреЗрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдгред

рдЯреЗрдмрд▓реНрд╕ рдореЗрдВ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдкреИрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдпреЛрдВ (рдкреНрд░рдмрдВрдзрдХреАрдп рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд), рдореИрдЪ-рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЗрдХрд╛рдИ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ

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

  • рд╕рдЯреАрдХ рдореИрдЪ
  • рдПрдХ рдЙрдкрд╕рд░реНрдЧ (рдПрд▓рдкреАрдПрдо) рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд▓рдВрдмрд╛ рдореИрдЪ
  • рдЯреНрд░рд┐рдкрд▓ рдорд┐рд▓рд╛рди (рдорд╛рд╕реНрдХрд┐рдВрдЧ)

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


рдореИрдЪ-рдПрдХреНрд╢рди рдореЙрдбреНрдпреВрд▓ - рдПрдХ рдЦреЛрдЬ рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛рдПрдБ, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЦреЛрдЬреЗрдВ, рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░реЗрдВред

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



рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ - рдореИрдЪ-рдПрдХреНрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрд╡реЗрджрди рдХреНрд░рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рддрд░реНрдХ рдФрд░ рдореИрдЪ-рдПрдХреНрд╢рди рдЕрдиреБрдХреНрд░рдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдирд┐рдпрдВрддреНрд░рдг рд╕реНрддрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

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

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. рдбреЗрдЯрд╛ рдкреНрд▓реЗрди рдореЗрдВ рдорд╢реАрди рд╕реНрдЯреЗрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ


рдкреА 4 рдореЗрдВ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрд╡рд┐рдЪ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг


рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдЖрдВрдХрдбрд╝рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдХрд▓рди рдЪрд┐рддреНрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:



рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЛрдбрд╝, рд░рдЬрд┐рд╕реНрдЯрд░ рдкрдврд╝реЗрдВ, рдХрд╛рдЙрдВрдЯрд░:

  • 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>
  • 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>
  • 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 рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИред

рдЖрдк рдЗрд╕реЗ рдФрд░ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



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

рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЗрдВрдЯреЗрд▓ FPGA рдЪрд┐рдкреНрд╕ рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдПрдХ рдиреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреНрд╡рд╛рд░реНрдЯрд╕ рдХрд╛ рдЙрддреНрдХреГрд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИред рддреЛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдЯреЗрд▓ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдирдВрдЧреЗ рдкрд╛рдВрд╡ рди рдХреЗрд╡рд▓ рдЕрдкрдиреА рдЙрддреНрдкрд╛рдж рд▓рд╛рдЗрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдХреНрд╡рд╛рд░реНрдЯрд╕ рдФрд░ рдкреА 4 рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рднреА рдЯреЛрдлрд┐рдиреЛ рдФрд░ рдЯреЙрдлрд┐рдиреЛ 2 рд▓рд╛рдЗрди рдХреЗ рдЧрдВрднреАрд░ рдЕрдкрдбреЗрдЯ рдФрд░ рдкрд░рд┐рд╡рд░реНрдзрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред

P4 рд╕рдореБрджрд╛рдп рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рджрд╕реНрдп рдлреИрдХреНрдЯрд░ рдЧреНрд░реБрдк рд╣реИ ред

Source: https://habr.com/ru/post/hi460439/


All Articles