P4 āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻ¯āĻž āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ°āĻžāĻāĻāĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ C āĻŦāĻž Python-āĻāĻ° āĻŽāĻ¤ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ-āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§āĻ° āĻāĻžāĻˇāĻž āĻĨā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¨, P4 āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āĻ¨-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻžāĻˇāĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ°āĻžāĻāĻāĻŋāĻ-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž āĻ
āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¨āĨ¤
P4 āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻ˛ā§āĻ¯āĻžāĻā§āĻā§āĻ¯āĻŧā§āĻ āĻ¯āĻž P4 āĻ˛ā§āĻ¯āĻžāĻā§āĻā§āĻ¯āĻŧā§āĻ āĻāĻ¨āĻ¸ā§āĻ°ā§āĻāĻŋāĻ¯āĻŧāĻžāĻŽ āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻ
āĻ˛āĻžāĻāĻāĻ¨āĻ āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻŦāĻ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻĒā§āĻ¨ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻĢāĻžāĻāĻ¨ā§āĻĄā§āĻļāĻ¨ (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 āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻāĻžāĻŽ āĻĒā§āĻ°āĻā§āĻā§āĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ¸ā§āĻĨāĻŋāĻ° āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻ¯ā§āĻā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻāĻ°āĻŖ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¸ā§āĻāĻ āĻāĻŦāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻ°āĻŖ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻā§ āĻ¸āĻŽāĻā§āĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻ āĻŋāĻ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻŽāĻĄā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻŦā§āĻšā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§āĻ°āĻž āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ˛ā§āĻ¯āĻžāĻŦā§ āĻāĻ¨ā§āĻ¤āĻāĻāĻžāĻ°ā§āĻ¯āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ°āĻ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤
P4 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻŦāĻŋāĻā§āĻ°ā§āĻ¤āĻžāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻŖā§āĻ¯ āĻā§āĻĄāĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ°āĻžāĻāĻāĻŋāĻ āĻāĻāĻ°āĻŖ āĻāĻļāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§āĻ° āĻĒā§āĻ¨āĻāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻāĻžāĻļāĻā§ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻ¨ā§āĻ¤āĻāĻāĻžāĻ°ā§āĻ¯āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĨ¤
āĻ āĻŦāĻļā§āĻ¯āĻ, P4 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻ°āĻžāĻāĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°, āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°āĻžāĻāĻ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻŽā§āĻā§āĻ°āĻŋ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ P4 āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻŦā§āĻˇāĻŖāĻž āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧāĻ āĻāĻāĻŋāĻ¯āĻŧā§āĻā§āĨ¤ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻļā§āĻ°ā§āĻˇāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻāĻžāĻĄā§āĻŽāĻŋāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻāĻŦā§āĻˇāĻŖāĻž āĻā§āĻˇā§āĻ ā§ P4 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻ¤ā§āĻ¤ā§āĻāĻ¨āĻžāĻĒā§āĻ°ā§āĻŖ āĻ¨āĻ¤ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻŋāĻ, āĻāĻ¨āĻ¸ā§āĻ¨āĻ¸āĻžāĻ¸ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŦāĻ āĻā§ āĻā§āĻ¯āĻžāĻ˛ā§ āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§, āĻāĻĻā§āĻāĻžāĻŦāĻ¨ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĨā§āĻā§ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§ āĻāĻ˛ā§ āĻ¯āĻžāĻā§āĻā§, āĻ¯āĻž āĻ āĻ¨ā§āĻ āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤, āĻ¨āĻ¤ā§āĻ¨ āĻāĻŦāĻ āĻāĻĻā§āĻāĻžāĻŦāĻ¨ā§ āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻāĻĻā§āĻāĻŦ āĻšāĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°, āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨, āĻāĻāĻ°āĻŖāĻāĻ¤ āĻŽāĻĄā§āĻ˛, āĻāĻĒāĻŋāĻāĻ, āĻā§āĻ¸ā§āĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻ°āĻ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§ āĻ¸āĻš āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧ āĻā§āĻĄ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻ āĻŦāĻĻāĻžāĻ¨ āĻ°ā§āĻā§āĻā§āĨ¤ Alibaba, AT&T, āĻŦā§āĻ¯āĻŧāĻžāĻ°āĻĢā§āĻ, 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 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨āĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻ āĻ°ā§āĻĨ āĻāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ-āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°, FPGA, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻ āĻ¨-āĻāĻŋāĻĒāĻ¸, āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻāĻŦāĻ ASIC-āĻāĻ° āĻŽāĻ¤ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻāĻā§āĻāĻŋāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻŽā§āĻļāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻā§ P4 āĻāĻžāĻ°ā§āĻā§āĻ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ P4 āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄāĻā§ āĻāĻžāĻ°ā§āĻā§āĻ āĻ¸ā§āĻāĻ āĻŽāĻĄā§āĻ˛ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°āĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸, āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻž āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ P4 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻŽā§āĻ˛ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻŋāĻ˛ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¸ā§āĻāĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ "P4 āĻ¸ā§āĻāĻ" āĻļāĻŦā§āĻĻāĻāĻŋ āĻļā§āĻ¨āĻž āĻā§āĻŦ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¯āĻĻāĻŋāĻ "P4 āĻāĻžāĻ°ā§āĻā§āĻ" āĻāĻ°āĻ āĻ¸āĻ āĻŋāĻāĨ¤
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛(āĻā§āĻ˛āĻŋ) āĻāĻ° āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨āĻ¤āĻž
P4 āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻāĻĒāĻŋ, āĻāĻĨāĻžāĻ°āĻ¨ā§āĻ, TCP, VxLAN āĻŦāĻž MPLS āĻāĻ° āĻŽāĻ¤ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻˇāĻžāĻāĻŋāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¨ā§āĻāĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, P4 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻšā§āĻĄāĻžāĻ° āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻŦāĻ āĻĢāĻŋāĻ˛ā§āĻĄā§āĻ° āĻ¨āĻžāĻŽ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§, āĻ¯āĻž āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻˇā§āĻ¤ā§āĻ° āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž
āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨āĻ¤āĻž āĻāĻŦāĻ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻāĻžāĻˇāĻžāĻ° āĻŽāĻĄā§āĻ˛āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ â āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻĒāĻ°ā§ P4 āĻ˛āĻā§āĻˇā§āĻ¯āĻā§āĻ˛āĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻ āĻā§āĻˇāĻŽāĻ¤āĻžāĻāĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤āĻāĻžāĻŦā§ āĻĢāĻŋāĻā§āĻ¸āĻĄ-āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻā§āĻĄ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ-āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻŦāĻž āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ°āĻžāĻāĻāĻŋāĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤āĨ¤
āĻ¯āĻĻāĻŋāĻ āĻāĻžāĻˇāĻžāĻ¤ā§ āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻ¨ā§āĻ āĻ¯āĻž āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨āĻā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻŦā§, āĻāĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻžāĻˇāĻž āĻ˛ā§āĻāĻā§āĻ° āĻāĻžāĻā§ āĻ āĻĻā§āĻļā§āĻ¯ āĻāĻŦāĻ āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻ˛āĻā§āĻˇā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻžāĻˇāĻžāĻ° āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻžāĻ°āĻž āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻāĻŋāĻ˛ā§āĻ¨āĨ¤
āĻāĻžāĻˇāĻžāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ āĻ¨ā§āĻ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§:
1) āĻšāĻžāĻāĻĒāĻžāĻ°āĻ¸ā§āĻā§āĻ˛ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°;
āĻā§āĻ¨āĻž āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋ āĻā§āĻ¨āĻ¸ā§āĻ¨ā§āĻ āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻŦā§āĻšāĻ¤ā§āĻ¤āĻŽ āĻŦāĻŋāĻ¨āĻŋāĻ¯āĻŧā§āĻ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋ āĻāĻŦāĻ āĻŦā§āĻšāĻ¤ā§āĻ¤āĻŽ āĻā§āĻā§āĻāĻžāĻ° āĻā§āĻ¯āĻžāĻĒāĻŋāĻāĻžāĻ˛ āĻĢāĻžāĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋāĨ¤ Tencent-āĻāĻ° āĻ¸āĻšāĻ¯ā§āĻā§ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻā§āĻ˛āĻŋ, āĻāĻāĻ¯āĻŧ āĻā§āĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĻā§āĻļā§, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž, āĻā§āĻ¤ā§āĻ°āĻŋāĻŽ āĻŦā§āĻĻā§āĻ§āĻŋāĻŽāĻ¤ā§āĻ¤āĻž āĻāĻŦāĻ āĻāĻ˛ā§āĻāĻā§āĻ°āĻ¨āĻŋāĻ āĻŦāĻŋāĻ¨ā§āĻĻāĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ¸āĻš āĻāĻā§āĻ-āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦāĻŋāĻļā§āĻˇāĻā§āĻāĨ¤
P4 āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻŦāĻ˛ āĻ°āĻžāĻāĻāĻŋāĻ āĻšāĻ˛ āĻāĻ¨ā§āĻ¨āĻ¤ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¯āĻž āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻ¨ āĻāĻĻā§āĻ¯ā§āĻā§āĻ¤āĻž āĻšāĻŋāĻ¸ā§āĻŦā§, āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻļāĻŋāĻ˛ā§āĻĒā§ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¨ā§ P4 āĻĻā§āĻ°ā§āĻ¤ āĻā§āĻ°āĻšāĻŖā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§ Google āĻāĻ°ā§āĻŦāĻŋāĻ¤āĨ¤
2) āĻŦāĻžāĻŖāĻŋāĻā§āĻ¯āĻŋāĻ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋ;
Goldman Sachs āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§ āĻāĻĻā§āĻāĻžāĻŦāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ āĻāĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
3) āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨;
āĻ¸āĻŽāĻā§āĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻļāĻŋāĻ˛ā§āĻĒ P4 āĻāĻ° āĻŽāĻ¤ āĻāĻāĻāĻŋ āĻāĻžāĻˇāĻž āĻĨā§āĻā§ āĻāĻĒāĻā§āĻ¤ āĻšāĻŦā§ āĻ¯āĻž āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ āĻāĻāĻ°āĻŖāĻā§ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ°āĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ Cisco āĻāĻ āĻāĻžāĻˇāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ° āĻĒāĻŖā§āĻ¯ āĻ˛āĻžāĻāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°ā§āĨ¤
āĻā§āĻ¨āĻŋāĻĒāĻžāĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻŖā§āĻ¯ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ P4 āĻāĻŦāĻ P4 āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§āĻā§ āĻāĻŦāĻ āĻā§āĻ¨āĻŋāĻĒāĻžāĻ° āĻāĻŽāĻŦā§āĻĄā§āĻĄ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻāĻŦāĻ āĻāĻ° āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻā§āĻĄā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ¯āĻžāĻāĻŋāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
Ruijie āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻā§āĻ˛āĻŋ P4 āĻāĻ° āĻāĻāĻāĻŋ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¯ā§ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§ā§ˇ P4-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻā§āĻ°āĻžāĻšāĻāĻĻā§āĻ° āĻāĻžāĻā§ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ-āĻļā§āĻ°ā§āĻŖā§āĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
4) āĻā§āĻ˛āĻŋāĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§;
AT&T āĻāĻŋāĻ˛ P4-āĻāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻā§āĻ° āĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§, P4 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻ¤āĻžāĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¯ā§ āĻāĻāĻ°āĻŖ āĻĻā§āĻāĻ¤ā§ āĻā§āĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ P4 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻŦāĻ˛ āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽāĨ¤
āĻĄāĻ¯āĻŧā§āĻā§ āĻā§āĻ˛āĻŋāĻāĻŽā§, āĻāĻžāĻˇāĻžāĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ 4.0 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
5) āĻ¸ā§āĻŽāĻŋāĻāĻ¨ā§āĻĄāĻžāĻā§āĻāĻ° āĻļāĻŋāĻ˛ā§āĻĒ;
āĻāĻžāĻˇāĻžāĻāĻŋ āĻŦā§āĻ¯āĻŧāĻžāĻ°āĻĢā§āĻāĻā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ°āĻžāĻāĻāĻŋāĻ āĻĒā§āĻ˛ā§āĻ¨ā§ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻā§āĨ¤
Xilinx P4.org-āĻāĻ° āĻ āĻ¨ā§āĻ¯āĻ¤āĻŽ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¤āĻž āĻāĻŋāĻ˛ā§āĻ¨ āĻāĻŦāĻ P4 āĻāĻžāĻˇāĻžāĻ° āĻŦāĻŋāĻāĻžāĻļā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻĄāĻŧāĻŋāĻ¤ āĻāĻŋāĻ˛ā§āĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻāĻāĻ¨āĻāĻāĻ¸āĻŋ āĻāĻŦāĻ NFV āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ FPGA-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻŦāĻ˛ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻāĻŋāĻ˛ā§āĻ¨, SDNet āĻĄāĻŋāĻāĻžāĻāĻ¨ā§āĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻĨāĻŽ P416 āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻāĻŋāĻ˛ā§āĻ¨āĨ¤
6) āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĨ¤
VMware āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°ā§ āĻ¯ā§ P4 āĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻļāĻā§āĻ¤āĻŋ, āĻāĻĻā§āĻāĻžāĻŦāĻ¨ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¯āĻž āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻ āĻ°ā§āĻĨāĻŦāĻš āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻžāĻ˛āĻžāĻā§āĻā§āĨ¤ āĻāĻŋāĻāĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻļā§āĻ°ā§ āĻĨā§āĻā§āĻ āĻāĻ āĻļāĻŋāĻ˛ā§āĻĒ āĻāĻ¨ā§āĻĻā§āĻ˛āĻ¨ā§āĻ° āĻ āĻāĻļ āĻāĻŋāĻ˛, āĻāĻžāĻ°āĻŖ āĻāĻĻā§āĻāĻžāĻŦāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¤āĻ°āĻā§āĻ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§āĻāĻ¤ āĻā§āĻˇāĻŽāĻ¤āĻžāĻā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻĒāĻŖā§āĻ¯āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĨ¤
āĻāĻāĻāĻžāĻŦā§, 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;
}
}âĻ
}
āĻā§āĻŦāĻŋāĻ˛ â āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻā§āĻā§āĻ˛āĻŋāĻā§ āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ â āĻāĻŋāĻāĻžāĻŦā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĨ¤
āĻā§āĻŦāĻŋāĻ˛ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ (āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻ¸ā§āĻ¤āĻ°ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤) āĻ°āĻ¯āĻŧā§āĻā§, āĻŽā§āĻ¯āĻžāĻ-āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ āĻāĻāĻ¨āĻŋāĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨
āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŽā§āĻ˛ā§:
- āĻāĻžāĻĒā§ āĻāĻžāĻĒ
- āĻĻā§āĻ°ā§āĻāĻ¤āĻŽ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŽāĻŋāĻ˛ (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;
}
āĻŽā§āĻ¯āĻžāĻ-āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ â āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ, āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻž, āĻāĻ°ā§āĻŽ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻžāĨ¤
āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻŋāĻ¤ā§āĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§:
āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ°āĻŦāĻžāĻš â āĻ¯ā§ āĻā§āĻ°āĻŽā§ āĻŽā§āĻ¯āĻžāĻ-āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¯āĻž āĻāĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻ-āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ āĻā§āĻ°āĻŽ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§āĻ° āĻ¸ā§āĻ¤āĻ° āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§āĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤
āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻāĻŦāĻ 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) āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§:
- āĻĄā§āĻāĻž āĻĒā§āĻ˛ā§āĻ¨ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ
- āĻĄā§āĻāĻž āĻĒā§āĻ˛ā§āĻ¨ā§ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ API
P4 āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸ā§āĻāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻā§āĻ¸ āĻā§āĻĄ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§āĻā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§.
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>
āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸ā§āĻāĻ API-āĻāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤ā§āĻ¸ āĻā§āĻĄāĻāĻŋāĻ¤ā§ simple_switch_CLI āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§āĻā§ āĻāĻāĻŋ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯ āĻāĻ āĻā§āĻ°ā§āĻˇā§āĻŽā§āĻ° āĻļā§āĻ°ā§āĻ¤ā§, āĻšāĻžāĻāĻĒāĻžāĻ°āĻ¸ā§āĻā§āĻ˛ āĻā§āĻ˛āĻžāĻāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻ°ā§āĻ¤ āĻāĻžāĻšāĻŋāĻĻāĻž āĻŽā§āĻāĻžāĻ¤ā§ Intel āĻŦā§āĻ¯āĻŧāĻžāĻ°āĻĢā§āĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻā§āĻ˛āĻŋ āĻ āĻ°ā§āĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¤āĻŋ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻāĻ°ā§āĻā§āĨ¤ āĻ¨āĻŦā§āĻ¨ āĻļā§āĻ¨āĻ¯āĻŧ (āĻāĻ¨ā§āĻā§āĻ˛ āĻāĻ°ā§āĻĒā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ°ā§āĻĒā§āĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšā§ āĻāĻžāĻāĻ¸ āĻĒā§āĻ°ā§āĻ¸āĻŋāĻĄā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻā§āĻ¨āĻžāĻ°ā§āĻ˛ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ°) āĻ¯ā§āĻŽāĻ¨ āĻŦāĻ˛ā§āĻā§āĻ¨, āĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ˛āĻā§ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻ°āĻžāĻšāĻāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻšāĻ¤ā§āĻ¤āĻ° āĻāĻžāĻā§āĻ° āĻāĻžāĻĒ āĻāĻŦāĻ āĻāĻ°āĻ āĻ¸ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§āĨ¤
āĻāĻŽāĻžāĻ° āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻŽāĻ¤ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻ¯ā§ āĻāĻĢāĻĒāĻŋāĻāĻŋāĻ āĻāĻŋāĻĒ āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻāĻ¨ā§āĻā§āĻ˛ āĻāĻāĻāĻŋ āĻļā§āĻ°ā§āĻˇāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻŽā§āĻāĻžāĻ° āĻā§āĻ¯āĻŧāĻžāĻ°ā§āĻāĻžāĻ¸ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻļāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§ āĻāĻ¨ā§āĻā§āĻ˛ā§āĻ° āĻāĻāĻŽāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§, āĻŦā§āĻ¯āĻŧāĻžāĻ°āĻĢā§āĻ āĻā§āĻŦāĻ˛ āĻ¤āĻžāĻ° āĻĒāĻŖā§āĻ¯ā§āĻ° āĻ˛āĻžāĻāĻ¨āĻā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻŦā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻā§āĻ¯āĻŧāĻžāĻ°ā§āĻāĻžāĻ¸ āĻāĻŦāĻ āĻĒāĻŋ4 āĻ¸ā§āĻā§āĻĄāĻŋāĻ āĻāĻĢāĻŋāĻ¨ā§ āĻāĻŦāĻ āĻāĻĢāĻŋāĻ¨ā§ 2 āĻ˛āĻžāĻāĻ¨ā§ āĻā§āĻ°ā§āĻ¤āĻ° āĻāĻĒāĻĄā§āĻ āĻāĻŦāĻ āĻ¸āĻāĻ¯ā§āĻāĻ¨ āĻĒāĻžāĻŦā§āĨ¤
P4 āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§āĻ° āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻĻāĻ¸ā§āĻ¯ - āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋ
āĻāĻ¤ā§āĻ¸: www.habr.com