P4 āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž

P4 āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž
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 āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž

āĻ†āĻŦā§‡āĻĻāĻ¨ āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž

P4 āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž
āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ­āĻžāĻˇāĻžāĻŸāĻŋ āĻ°āĻžāĻ‰āĻŸāĻŋāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡, āĻ¤āĻžāĻ‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ-āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻžāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ‚ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ­āĻŋāĻ¨ā§āĻ¨āĨ¤ āĻ­āĻžāĻˇāĻžāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻšāĻ˛:

  1. āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ¤āĻž;
  2. āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛(āĻ—ā§āĻ˛āĻŋ) āĻāĻ° āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ¤āĻž;
  3. āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻžāĨ¤

āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ¤āĻž

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 āĻāĻ•āĻŸāĻŋ āĻ‰āĻ¨ā§āĻŽā§āĻ•ā§āĻ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ• āĻ¤āĻĨā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻĒāĻŋ 4.org

āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ˛āĻŋāĻ™ā§āĻ• https://github.com/p4lang, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄ āĻāĻŦāĻ‚ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻĒā§āĻ˛āĻžāĻ— āĻ˛āĻžāĻ—āĻžāĻ¨ā§‹ P4 āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš Eclipse-āĻāĻ° āĻœāĻ¨ā§āĻ¯, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ 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;
}

āĻĒāĻžāĻ°ā§āĻ¸āĻžāĻ°ā§āĻ¸ — āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻžāĻœ āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ.

āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĒāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻĻā§āĻŸāĻŋ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻ•āĻŸāĻŋāĻ¤ā§‡ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻŦā§‡:

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 āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž

āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ°āĻŦāĻžāĻš — āĻ¯ā§‡ āĻ•ā§āĻ°āĻŽā§‡ āĻŽā§āĻ¯āĻžāĻš-āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ…āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ¯āĻž āĻ‰āĻšā§āĻš āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻŽā§āĻ¯āĻžāĻš-āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ•ā§āĻ°āĻŽ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡āĻ° āĻ¸ā§āĻ¤āĻ° āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻ¸ā§āĻ¤ā§āĻ•ā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤

āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻāĻŦāĻ‚ API āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻ¸āĻš āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦāĻ¸ā§āĻ¤ā§āĨ¤ āĻ¯ā§‡āĻŽāĻ¨, āĻšā§‡āĻ•āĻ¸āĻžāĻŽ āĻ—āĻŖāĻ¨āĻž, āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°, āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ°, āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤

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

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

āĻŽā§‡āĻŸāĻžāĻĄā§‡āĻŸāĻž — āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ°āĨ¤

āĻŽā§‡āĻŸāĻžāĻĄā§‡āĻŸāĻž 2 āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ†āĻ›ā§‡:

  āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻŽā§‡āĻŸāĻžāĻĄā§‡āĻŸāĻž (āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ–āĻžāĻ˛āĻŋ āĻ•āĻžāĻ āĻžāĻŽā§‹)
    āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻ¯āĻž āĻ–ā§āĻļāĻŋ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨
    āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻœā§āĻĄāĻŧā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§
    āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻœā§‡āĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻšā§āĻ¯āĻžāĻļ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯

  āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻŽā§‡āĻŸāĻžāĻĄā§‡āĻŸāĻž - āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ
    āĻ‡āĻ¨āĻĒā§āĻŸ āĻĒā§‹āĻ°ā§āĻŸ, āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĒā§‹āĻ°ā§āĻŸ āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡
    āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻŸā§āĻ¯āĻžāĻŽā§āĻĒ āĻ¯āĻ–āĻ¨ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§ āĻ›āĻŋāĻ˛, āĻ¸āĻžāĻ°āĻŋāĻ° āĻ—āĻ­ā§€āĻ°āĻ¤āĻž
    āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻšā§āĻ¯āĻžāĻļ / āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻ¸āĻžāĻ°āĻŋ
    āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°, āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦ
    āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĒā§‹āĻ°ā§āĻŸ āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ (āĻ¯ā§‡āĻŽāĻ¨ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ¸āĻžāĻ°āĻŋ)

P4 āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°

P4 āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° (P4C) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡:

  1. āĻĄā§‡āĻŸāĻž āĻĒā§āĻ˛ā§‡āĻ¨ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ
  2. āĻĄā§‡āĻŸāĻž āĻĒā§āĻ˛ā§‡āĻ¨ā§‡ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ API

P4 āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž

P4 āĻ­āĻžāĻˇāĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸ā§āĻ‡āĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ

āĻ‰ā§ŽāĻ¸ āĻ•ā§‹āĻĄ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡.

p4lang/p4c-bm: 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 āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯ āĻāĻ‡ āĻ—ā§āĻ°ā§€āĻˇā§āĻŽā§‡āĻ° āĻļā§āĻ°ā§āĻ¤ā§‡, āĻšāĻžāĻ‡āĻĒāĻžāĻ°āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻĻā§āĻ°ā§āĻ¤ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻŽā§‡āĻŸāĻžāĻ¤ā§‡ Intel āĻŦā§‡āĻ¯āĻŧāĻžāĻ°āĻĢā§āĻŸ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ—ā§āĻ˛āĻŋ āĻ…āĻ°ā§āĻœāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ āĻ¨āĻŦā§€āĻ¨ āĻļā§‡āĻ¨āĻ¯āĻŧ (āĻ‡āĻ¨ā§āĻŸā§‡āĻ˛ āĻ•āĻ°ā§āĻĒā§‹āĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ—ā§āĻ°ā§āĻĒā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšā§€ āĻ­āĻžāĻ‡āĻ¸ āĻĒā§āĻ°ā§‡āĻ¸āĻŋāĻĄā§‡āĻ¨ā§āĻŸ āĻāĻŦāĻ‚ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻ˛ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ°) āĻ¯ā§‡āĻŽāĻ¨ āĻŦāĻ˛ā§‡āĻ›ā§‡āĻ¨, āĻāĻŸāĻŋ āĻ‡āĻ¨ā§āĻŸā§‡āĻ˛āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ—ā§āĻ°āĻžāĻšāĻ•āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§ƒāĻšāĻ¤ā§āĻ¤āĻ° āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ¸ā§āĻ¯ā§‹āĻ— āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻŦā§‡āĨ¤

āĻ†āĻŽāĻžāĻ° āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻŽāĻ¤ā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ­ā§āĻ˛ā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻ¯ā§‡ āĻāĻĢāĻĒāĻŋāĻœāĻŋāĻ āĻšāĻŋāĻĒ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻ‡āĻ¨ā§āĻŸā§‡āĻ˛ āĻāĻ•āĻŸāĻŋ āĻļā§€āĻ°ā§āĻˇāĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻšāĻŽā§ŽāĻ•āĻžāĻ° āĻ•ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻŸāĻžāĻ¸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻļāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§‡ āĻ‡āĻ¨ā§āĻŸā§‡āĻ˛ā§‡āĻ° āĻ†āĻ—āĻŽāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡, āĻŦā§‡āĻ¯āĻŧāĻžāĻ°āĻĢā§āĻŸ āĻ•ā§‡āĻŦāĻ˛ āĻ¤āĻžāĻ° āĻĒāĻŖā§āĻ¯ā§‡āĻ° āĻ˛āĻžāĻ‡āĻ¨āĻ•ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ•ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻŸāĻžāĻ¸ āĻāĻŦāĻ‚ āĻĒāĻŋ4 āĻ¸ā§āĻŸā§āĻĄāĻŋāĻ“ āĻŸāĻĢāĻŋāĻ¨ā§‹ āĻāĻŦāĻ‚ āĻŸāĻĢāĻŋāĻ¨ā§‹ 2 āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ—ā§āĻ°ā§āĻ¤āĻ° āĻ†āĻĒāĻĄā§‡āĻŸ āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻ¯ā§‹āĻœāĻ¨ āĻĒāĻžāĻŦā§‡āĨ¤

P4 āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§‡āĻ° āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻĻāĻ¸ā§āĻ¯ - āĻ•ā§‹āĻŽā§āĻĒāĻžāĻ¨āĻŋ āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸāĻ° āĻ—ā§āĻ°ā§āĻĒ.

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨