ภาษาโปรแกรม P4

ภาษาโปรแกรม P4
P4 เป็นภาษาโปรแกรมที่ออกแบบมาเพื่อตั้งโปรแกรมกฎการกำหนดเส้นทางแพ็กเก็ต ต่างจากภาษาใช้งานทั่วไป เช่น C หรือ Python ตรงที่ P4 เป็นภาษาเฉพาะโดเมนที่มีการออกแบบหลายแบบที่ปรับให้เหมาะสมสำหรับการกำหนดเส้นทางเครือข่าย

P4 เป็นภาษาโอเพ่นซอร์สที่ได้รับอนุญาตและดูแลโดยองค์กรไม่แสวงหากำไรที่เรียกว่า P4 Language Consortium นอกจากนี้ยังได้รับการสนับสนุนจาก Open Networking Foundation (ONF) และ Linux Foundation (LF) ซึ่งเป็นองค์กรหลักสองแห่งที่ใหญ่ที่สุดสำหรับโครงการเครือข่ายโอเพ่นซอร์ส
ภาษานี้ได้รับการประกาศเกียรติคุณครั้งแรกในปี 2013 และอธิบายไว้ในรายงาน SIGCOMM CCR ปี 2014 เรื่อง “การเขียนโปรแกรมตัวประมวลผลการกำหนดเส้นทางแพ็คเก็ตอิสระ”

นับตั้งแต่ก่อตั้ง P4 ได้เติบโตและพัฒนาอย่างทวีคูณ และกลายเป็นมาตรฐานอย่างรวดเร็วในการอธิบายการส่งแพ็กเก็ตโดยอุปกรณ์เครือข่าย รวมถึงอะแดปเตอร์เครือข่าย สวิตช์ และเราเตอร์

“SDN ได้เปลี่ยนแปลงอุตสาหกรรมเครือข่าย และ P4 ได้ยกระดับ SDN ไปอีกระดับด้วยการเปิดใช้งานความสามารถในการตั้งโปรแกรมในการกำหนดเส้นทาง” Guru Parulkar กรรมการบริหารของ Open Networking Foundation กล่าว

ภาษา P4 เดิมสร้างขึ้นโดยกลุ่มวิศวกรและนักวิจัยจาก Google, Intel, Microsoft Research, Barefoot, Princeton และ Stanford เป้าหมายนั้นเรียบง่าย: สร้างภาษาที่ใช้งานง่ายซึ่งนักพัฒนาซอฟต์แวร์สามารถเรียนรู้ได้ภายในหนึ่งวัน และใช้เพื่ออธิบายวิธีการส่งแพ็กเก็ตข้ามเครือข่ายได้อย่างแม่นยำ

จากจุดเริ่มต้น P4 ได้รับการออกแบบมาให้เป็นอิสระจากเป้าหมาย (เช่น โปรแกรมที่เขียนด้วย P4 สามารถคอมไพล์ได้โดยไม่มีการเปลี่ยนแปลงเพื่อให้ทำงานบนเป้าหมายที่หลากหลาย เช่น ASIC, FPGA, CPU, NPU และ GPU)

ภาษานี้ยังเป็นอิสระจากโปรโตคอล (เช่น โปรแกรม P4 สามารถอธิบายโปรโตคอลมาตรฐานที่มีอยู่ หรือใช้เพื่อระบุโหมดการกำหนดแอดเดรสแบบกำหนดเองใหม่)

ในอุตสาหกรรม P4 ใช้สำหรับการเขียนโปรแกรมอุปกรณ์ บางทีในอนาคตมาตรฐาน Internet-RFC และ IEEE อาจจะรวมข้อกำหนด P4 ไว้ด้วย

P4 สามารถใช้กับอุปกรณ์ทั้งแบบตั้งโปรแกรมและแบบคงที่ได้ ตัวอย่างเช่น ใช้เพื่อบันทึกพฤติกรรมไปป์ไลน์ของสวิตช์ใน API ของ Switch Abstraction Interface (SAI) ที่ใช้โดยระบบปฏิบัติการสวิตช์ SONiC แบบโอเพ่นซอร์ส นอกจากนี้ P4 ยังใช้ในโครงการ ONF Stratum เพื่ออธิบายพฤติกรรมการสลับระหว่างอุปกรณ์แบบคงที่และแบบตั้งโปรแกรมได้ต่างๆ

เป็นครั้งแรกที่การอธิบายลักษณะการทำงานของสวิตช์และอะแดปเตอร์เครือข่ายช่วยให้คุณสร้างโมเดลปฏิบัติการที่แม่นยำของเครือข่ายทั้งหมดก่อนที่จะปรับใช้ ผู้ให้บริการระบบคลาวด์ขนาดใหญ่สามารถทดสอบและแก้ไขข้อบกพร่องของเครือข่ายได้ทั้งหมดโดยใช้ซอฟต์แวร์ ซึ่งช่วยลดเวลาและต้นทุนของการทดสอบการทำงานร่วมกันในห้องปฏิบัติการได้อย่างมาก โดยไม่ต้องใช้ฮาร์ดแวร์ราคาแพง

การใช้ P4 ผู้จำหน่ายอุปกรณ์เครือข่ายสามารถคาดหวังพฤติกรรมการกำหนดเส้นทางทั่วไปในทุกผลิตภัณฑ์ ช่วยให้สามารถนำโครงสร้างพื้นฐานทดสอบกลับมาใช้ใหม่ได้ ทำให้การพัฒนาซอฟต์แวร์การจัดการง่ายขึ้น และรับประกันความสามารถในการทำงานร่วมกันในท้ายที่สุด

แน่นอนว่า P4 สามารถใช้ในการเขียนโปรแกรมที่อธิบายวิธีการกำหนดเส้นทางแบบใหม่โดยสิ้นเชิง ตัวอย่างเช่น P4 ถูกนำมาใช้กันอย่างแพร่หลายสำหรับการวัดและการวัดทางไกลในศูนย์ข้อมูล เครือข่ายองค์กร และผู้ให้บริการ

ชุมชนการวิจัยก็ก้าวขึ้นมาเช่นกัน กลุ่มวิจัยเครือข่ายทางวิชาการชั้นนำหลายกลุ่มได้เผยแพร่แอปพลิเคชันใหม่ที่น่าตื่นเต้นโดยใช้โปรแกรม P4 รวมถึงการปรับสมดุลโหลด โปรโตคอลฉันทามติ และการแคชค่าคีย์ มีการสร้างกระบวนทัศน์การเขียนโปรแกรมใหม่ นวัตกรรมกำลังย้ายจากฮาร์ดแวร์ไปสู่ซอฟต์แวร์ ทำให้เกิดแนวคิดใหม่ๆ ที่ไม่คาดคิด แปลกใหม่ และแยบยลมากมาย

ชุมชนนักพัฒนามีส่วนสำคัญในการพัฒนาโค้ด รวมถึงคอมไพเลอร์ ไปป์ไลน์ โมเดลพฤติกรรม API เฟรมเวิร์กการทดสอบ แอปพลิเคชัน และอื่นๆ บริษัทต่างๆ เช่น Alibaba, AT&T, Barefoot, Cisco, Fox Networks, Google, Intel, IXIA, Juniper Networks, Mellanox, Microsoft, Netcope, Netronome, VMware, Xilinx และ ZTE ได้ทุ่มเทให้กับนักพัฒนา จากมหาวิทยาลัยต่างๆ เช่น BUPT, Cornell, Harvard, MIT, NCTU, Princeton, Stanford, Technion, Tsinghua, UMass และ USI; และโครงการโอเพ่นซอร์ส รวมถึง CORD, FD.io, OpenDaylight, ONOS, OvS, SAI และ Stratum เน้นย้ำถึงความจริงที่ว่า P4 เป็นโครงการชุมชนอิสระ

คอนโทรลเลอร์รุ่นทั่วไปสำหรับภาษา P4:

ภาษาโปรแกรม P4

โอกาสในการสมัคร

ภาษาโปรแกรม P4
เนื่องจากภาษานี้มีไว้สำหรับแอปพลิเคชันการกำหนดเส้นทาง รายการข้อกำหนดและตัวเลือกการออกแบบจึงแตกต่างเมื่อเปรียบเทียบกับภาษาการเขียนโปรแกรมทั่วไป ลักษณะสำคัญของภาษาคือ:

  1. ความเป็นอิสระจากการดำเนินการตามเป้าหมาย
  2. ความเป็นอิสระของโปรโตคอลที่ใช้
  3. ความสามารถในการกำหนดค่าฟิลด์ใหม่

ความเป็นอิสระจากการดำเนินการตามเป้าหมาย

โปรแกรม P4 ได้รับการออกแบบมาให้ใช้งานได้อย่างอิสระ ซึ่งหมายความว่าสามารถคอมไพล์สำหรับกลไกการดำเนินการหลายประเภท เช่น ตัวประมวลผลอเนกประสงค์, FPGA, ระบบบนชิป, ตัวประมวลผลเครือข่าย และ ASIC เครื่องจักรประเภทต่างๆ เหล่านี้เรียกว่าเป้าหมาย P4 และแต่ละเป้าหมายต้องใช้คอมไพเลอร์เพื่อแปลงซอร์สโค้ด P4 ให้เป็นโมเดลสวิตช์เป้าหมาย คอมไพลเลอร์สามารถติดตั้งไว้ในอุปกรณ์เป้าหมาย ซอฟต์แวร์ภายนอก หรือแม้แต่บริการคลาวด์ เนื่องจากเป้าหมายดั้งเดิมจำนวนมากสำหรับโปรแกรม P4 มีไว้สำหรับการสลับแพ็กเก็ตอย่างง่าย จึงเป็นเรื่องปกติที่จะได้ยินคำว่า "สวิตช์ P4" แม้ว่า "เป้าหมาย P4" จะมีความแม่นยำมากกว่าก็ตาม

ความเป็นอิสระของโปรโตคอลที่ใช้

P4 เป็นโปรโตคอลที่ไม่ขึ้นกับใคร ซึ่งหมายความว่าภาษานั้นไม่มีการรองรับโปรโตคอลทั่วไป เช่น IP, Ethernet, TCP, VxLAN หรือ MPLS โปรแกรมเมอร์ P4 จะอธิบายรูปแบบส่วนหัวและชื่อฟิลด์ของโปรโตคอลที่จำเป็นในโปรแกรมแทน ซึ่งจะถูกตีความและประมวลผลโดยโปรแกรมที่คอมไพล์และอุปกรณ์เป้าหมาย

ความสามารถในการกำหนดค่าฟิลด์ใหม่

ความเป็นอิสระของโปรโตคอลและโมเดลภาษาเชิงนามธรรมช่วยให้สามารถกำหนดค่าใหม่ได้ เป้าหมาย P4 ควรสามารถเปลี่ยนการประมวลผลแพ็กเก็ตได้หลังจากที่ระบบถูกปรับใช้ ความสามารถนี้แต่เดิมมีความเกี่ยวข้องกับการกำหนดเส้นทางผ่านตัวประมวลผลอเนกประสงค์หรือตัวประมวลผลเครือข่าย แทนที่จะเป็นวงจรรวมที่มีฟังก์ชันคงที่

แม้ว่าจะไม่มีสิ่งใดในภาษาที่จะขัดขวางการปรับประสิทธิภาพของชุดโปรโตคอลบางชุดให้เหมาะสม แต่ผู้เขียนภาษาจะมองไม่เห็นการปรับให้เหมาะสมเหล่านี้ และท้ายที่สุดสามารถลดความยืดหยุ่นของระบบและเป้าหมาย รวมถึงความสามารถในการกำหนดค่าใหม่ได้

คุณลักษณะของภาษาเหล่านี้เริ่มแรกถูกกำหนดโดยผู้สร้างโดยเน้นไปที่การใช้อย่างแพร่หลายในโครงสร้างพื้นฐานเครือข่าย

ภาษานี้ถูกใช้ไปแล้วในหลายบริษัท:

1) ศูนย์ข้อมูลระดับไฮเปอร์สเกล

บริษัท Tencent ของจีนเป็นบริษัทด้านการลงทุนที่ใหญ่ที่สุดในโลกและเป็นหนึ่งในบริษัทร่วมลงทุนที่ใหญ่ที่สุดในโลก บริษัทในเครือของ Tencent ทั้งในประเทศจีนและประเทศอื่นๆ ทั่วโลก มีความเชี่ยวชาญในธุรกิจไฮเทคในด้านต่างๆ รวมถึงบริการอินเทอร์เน็ตต่างๆ การพัฒนาในด้านปัญญาประดิษฐ์ และความบันเทิงอิเล็กทรอนิกส์

P4 และการกำหนดเส้นทางแบบตั้งโปรแกรมได้เป็นเทคโนโลยีขั้นสูงที่ใช้ในสถาปัตยกรรมเครือข่ายของบริษัท

ในฐานะหนึ่งในผู้ก่อตั้ง Google รู้สึกภูมิใจที่ได้เห็นการนำ P4 มาใช้อย่างรวดเร็วในอุตสาหกรรมเครือข่าย และโดยเฉพาะอย่างยิ่งในการออกแบบสถาปัตยกรรมศูนย์ข้อมูล

2) บริษัทพาณิชย์

Goldman Sachs ใช้ประโยชน์จากการทำงานร่วมกับชุมชนโอเพ่นซอร์สและพัฒนามาตรฐานและโซลูชันทั่วไปเพื่อสร้างสรรค์โครงสร้างพื้นฐานเครือข่ายและมอบโซลูชันที่ดีกว่าให้กับลูกค้า

3) การผลิต;

อุตสาหกรรมเครือข่ายทั้งหมดจะได้รับประโยชน์จากภาษาอย่าง P4 ที่กำหนดพฤติกรรมการส่งต่อโดยเฉพาะ Cisco ยังเชื่อในการโอนสายผลิตภัณฑ์ไปใช้ภาษานี้

Juniper Networks ได้รวม P4 และ P4 Runtime ไว้ในผลิตภัณฑ์จำนวนหนึ่ง และช่วยให้สามารถเข้าถึงโปรเซสเซอร์ที่ฝังตัวของ Juniper และโค้ดซอฟต์แวร์ได้โดยทางโปรแกรม

Ruijie Networks เป็นผู้สนับสนุน P4 ที่แข็งแกร่งและคุณประโยชน์ที่ P4 มอบให้กับเครือข่าย ด้วย PXNUMX บริษัทสามารถสร้างและส่งมอบโซลูชั่นที่ดีที่สุดให้แก่ลูกค้าในวงกว้างได้

4) ผู้ให้บริการโทรคมนาคม

AT&T เป็นผู้ใช้ P4 รุ่นแรกๆ ซึ่งเป็นหนึ่งในกลุ่มแรกๆ ที่ใช้ P4 เพื่อกำหนดพฤติกรรมที่ต้องการเห็นในเครือข่าย และใช้อุปกรณ์ส่งต่อที่ตั้งโปรแกรมได้ P4 บนเครือข่าย

ที่ Deutsche Telekom ภาษานี้ถูกใช้เพื่อสร้างต้นแบบฟังก์ชันเครือข่ายหลักโดยเป็นส่วนหนึ่งของโปรแกรม Access 4.0

5) อุตสาหกรรมเซมิคอนดักเตอร์

ภาษาดังกล่าวทำให้ Barefoot สามารถใช้กระบวนทัศน์ใหม่ในการส่งมอบความสามารถของซอฟต์แวร์ไปยังระนาบการกำหนดเส้นทางเครือข่าย

Xilinx เป็นหนึ่งในผู้ก่อตั้ง P4.org และมีส่วนร่วมอย่างแข็งขันในการพัฒนาภาษา P4 และนำไปใช้ในแพลตฟอร์มที่ตั้งโปรแกรมได้บน FPGA สำหรับฮาร์ดแวร์ SmartNIC และ NFV โดยปล่อยหนึ่งในคอมไพเลอร์ P416 ตัวแรก ๆ โดยเป็นส่วนหนึ่งของการออกแบบ SDNet

6) ซอฟต์แวร์

วีเอ็มแวร์เชื่อว่า P4 สร้างสรรค์พลังงาน นวัตกรรม และชุมชนจำนวนมหาศาล ซึ่งขับเคลื่อนการเปลี่ยนแปลงที่มีความหมายและจำเป็นในเครือข่าย วีเอ็มแวร์เป็นส่วนหนึ่งของความเคลื่อนไหวของอุตสาหกรรมนี้ตั้งแต่เริ่มต้น เนื่องจากนวัตกรรมคลื่นลูกใหม่ขับเคลื่อนด้วยแนวทางที่ใช้ซอฟต์แวร์ซึ่งขยายขีดความสามารถด้านโครงสร้างพื้นฐานและนำไปใช้ในผลิตภัณฑ์ใหม่ล่าสุด

ดังนั้น P4 จึงเป็นภาษาการเขียนโปรแกรมที่ไม่ขึ้นกับเป้าหมายและไม่ขึ้นกับโปรโตคอลที่ใช้โดยภาคอุตสาหกรรมและสถาบันการศึกษาเพื่อกำหนดพฤติกรรมการกำหนดเส้นทางแพ็กเก็ตโดยไม่ซ้ำกันในฐานะโปรแกรม ซึ่งสามารถคอมไพล์สำหรับหลายเป้าหมายได้ ปัจจุบัน เป้าหมายประกอบด้วยสวิตช์ฮาร์ดแวร์และซอฟต์แวร์ สวิตช์ไฮเปอร์ไวเซอร์ NPU GPU FPGA SmartNIC และ ASIC

คุณสมบัติหลักของภาษาขยายขอบเขตของแอปพลิเคชันอย่างมีนัยสำคัญและรับประกันการใช้งานอย่างรวดเร็วในสถาปัตยกรรมเครือข่าย

เริ่มต้นใช้งาน

P4 เป็นโครงการเปิด ข้อมูลที่เกี่ยวข้องทั้งหมดอยู่บนเว็บไซต์ P4.org

ลิงค์พื้นที่เก็บข้อมูล https://github.com/p4langซึ่งคุณสามารถรับซอร์สโค้ดตัวอย่างและบทช่วยสอนได้

ปลั๊กอิน สำหรับ Eclipse ที่รองรับ P4 แต่เราสามารถแนะนำได้ พี 4 สตูดิโอ จากเท้าเปล่า.

ภาษาโปรแกรม P4

ลองดูที่นามธรรมหลักของเคอร์เนล:

การกำหนดส่วนหัว — ด้วยความช่วยเหลือ ส่วนหัวของโปรโตคอลจะถูกกำหนด

คำจำกัดความของส่วนหัวระบุ:

  • คำอธิบายรูปแบบแพ็คเก็ตและชื่อฟิลด์ส่วนหัว
  • ฟิลด์ที่อนุญาตแบบคงที่และแบบแปรผัน

เช่น

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

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

พาร์เซอร์ — หน้าที่ของพวกเขาคือแยกวิเคราะห์พาดหัวข่าว

ตัวอย่างพาร์เซอร์ต่อไปนี้จะกำหนดการเปลี่ยนแปลงของสถานะสุดท้ายของเครื่องจากสถานะเริ่มต้นหนึ่งไปเป็นสถานะสุดท้ายหนึ่งในสองสถานะ:

ภาษาโปรแกรม P4

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

ตาราง — มีสถานะของเครื่องที่เชื่อมโยงคีย์ผู้ใช้กับการดำเนินการ กิจกรรม — คำอธิบายวิธีการจัดการแพ็คเกจ

ตารางประกอบด้วยสถานะ (กำหนดในระดับการจัดการ) สำหรับการส่งต่อแพ็กเก็ต อธิบายหน่วย Match-Action

แพ็คเก็ตจะถูกจับคู่โดย:

  • คู่ที่เหมาะสม
  • การจับคู่คำนำหน้าที่ยาวที่สุด (LPM)
  • การจับคู่สามรายการ (การปิดบัง)

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

การดำเนินการที่เป็นไปได้ทั้งหมดจะต้องกำหนดไว้ในตารางล่วงหน้า

การดำเนินการประกอบด้วยโค้ดและข้อมูล ข้อมูลมาจากระดับการจัดการ (เช่น ที่อยู่ IP/หมายเลขพอร์ต) สามารถระบุค่าพื้นฐานที่ไม่มีการวนซ้ำได้โดยตรงในการดำเนินการ แต่จำนวนคำสั่งจะต้องสามารถคาดเดาได้ ดังนั้น การดำเนินการต้องไม่มีลูปหรือคำสั่งแบบมีเงื่อนไขใดๆ

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

โมดูล Match-Action — การดำเนินการเพื่อสร้างคีย์การค้นหา ค้นหาในตาราง ดำเนินการ

ตัวอย่างทั่วไปของโมดูลแสดงในรูป:

ภาษาโปรแกรม P4

ควบคุมการไหล — ระบุลำดับการใช้โมดูล Match-Action นี่เป็นโปรแกรมที่จำเป็นซึ่งกำหนดตรรกะระดับสูงและลำดับการจับคู่-การกระทำ โฟลว์การควบคุมเชื่อมโยงออบเจ็กต์ทั้งหมดโดยการกำหนดระดับการควบคุม

วัตถุภายนอก เป็นวัตถุเฉพาะที่มีสถาปัตยกรรมและอินเทอร์เฟซ API ที่กำหนดไว้อย่างชัดเจน ตัวอย่างเช่น การคำนวณเช็คซัม รีจิสเตอร์ ตัวนับ ตัวนับ ฯลฯ

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

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

ข้อมูลเมตา — โครงสร้างข้อมูลที่เกี่ยวข้องกับแต่ละแพ็คเกจ

ข้อมูลเมตามี 2 ประเภท:

  ข้อมูลเมตาที่กำหนดเอง (โครงสร้างว่างสำหรับแพ็คเกจทั้งหมด)
    คุณสามารถใส่สิ่งที่คุณต้องการได้ที่นี่
    มีจำหน่ายตลอดท่อ
    สะดวกสำหรับการใช้งานตามวัตถุประสงค์ของคุณเอง เช่น จัดเก็บแพ็คเกจแฮช

  ข้อมูลเมตาภายใน - จัดทำโดยสถาปัตยกรรม
    พอร์ตอินพุต พอร์ตเอาต์พุตถูกกำหนดไว้ที่นี่
    การประทับเวลาเมื่อแพ็กเก็ตถูกเข้าคิว ความลึกของคิว
    มัลติคาสต์แฮช / คิวมัลติคาสต์
    ลำดับความสำคัญของแพ็คเกจ ความสำคัญของแพ็คเกจ
    ข้อมูลจำเพาะพอร์ตเอาต์พุต (เช่น คิวเอาต์พุต)

คอมไพเลอร์ P4

คอมไพเลอร์ P4 (P4C) สร้าง:

  1. รันไทม์ระนาบข้อมูล
  2. API สำหรับจัดการสถานะของเครื่องในชั้นข้อมูล

ภาษาโปรแกรม P4

ตัวอย่างสวิตช์ซอฟต์แวร์ในภาษา P4

สามารถดาวน์โหลดซอร์สโค้ดได้จากพื้นที่เก็บข้อมูล

p4lang/p4c-bm: สร้างการกำหนดค่า JSON สำหรับ bmv2
p4lang/bmv2: สวิตช์ซอฟต์แวร์ที่เข้าใจการกำหนดค่า JSON เวอร์ชัน bmv2

รูปนี้แสดงแผนภาพการรวบรวมโครงการ:

ภาษาโปรแกรม P4

การจัดการกับตาราง การลงทะเบียนการอ่าน ตัวนับ:

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


ซอร์สโค้ดประกอบด้วยโปรแกรม simple_switch_CLI เพื่อความสะดวกในการใช้งานซอฟต์แวร์ switch API

คุณสามารถดาวน์โหลดสิ่งนี้และตัวอย่างอื่นๆ ได้จากพื้นที่เก็บข้อมูล

ภาษาโปรแกรม P4

PS เมื่อต้นฤดูร้อนนี้ Intel ได้ลงนามข้อตกลงเพื่อซื้อกิจการ Barefoot Networks เพื่อตอบสนองความต้องการของผู้ใช้ Hyperscale Cloud อย่างรวดเร็ว ดังที่ Navin Shenoy (รองประธานบริหารและผู้จัดการทั่วไปของกลุ่มศูนย์ข้อมูลของ Intel Corporation) กล่าว สิ่งนี้จะช่วยให้ Intel สามารถมอบเวิร์กโหลดที่มากขึ้นและโอกาสที่มากขึ้นสำหรับลูกค้าศูนย์ข้อมูล

ในความเห็นส่วนตัวของฉัน เราไม่ควรลืมว่า Intel เป็นผู้นำในการผลิตชิป FPGA และมีสภาพแวดล้อม Quartus ที่ยอดเยี่ยม ซึ่งหมายความว่าเราสามารถคาดหวังได้ว่าด้วยการมาถึงของ Intel Barefoot ไม่เพียงแต่จะขยายสายผลิตภัณฑ์ของตนเท่านั้น แต่ยังรวมถึง Quartus และ P4 Studio จะได้รับการอัปเดตที่สำคัญและเพิ่มเติมในกลุ่มผลิตภัณฑ์ Toffino และ Toffino 2

สมาชิกอย่างเป็นทางการของชุมชน P4 - บริษัท กลุ่มปัจจัย.

ที่มา: will.com

เพิ่มความคิดเห็น