P4 ပရိုဂရမ်သမင်သဘာသာစကာသ

P4 ပရိုဂရမ်သမင်သဘာသာစကာသ
P4 သည် packet routing စည်သမျဉ်သမျာသကို ပရိုဂရမ်ရေသဆလဲရန်အတလက် ပရိုဂရမ်သမင်သဘာသာစကာသတစ်ခုဖဌစ်သည်။ C သို့မဟုတ် Python ကဲ့သို့သော ယေဘူယျ ရည်ရလယ်ချက် ဘာသာစကာသနဟင့် မတူဘဲ၊ P4 သည် ကလန်ရက်လမ်သကဌောင်သတင်ခဌင်သအတလက် အကောင်သဆုံသ ဒီဇိုင်သမျာသစလာပါရဟိသော ဒိုမိန်သသီသသန့်ဘာသာစကာသတစ်ခုဖဌစ်သည်။

P4 သည် P4 Language Consortium ဟုခေါ်သော အကျိုသအမဌတ်မယူသောအဖလဲ့အစည်သတစ်ခုမဟ လိုင်စင်ရရဟိပဌီသ ထိန်သသိမ်သထာသသော အရင်သအမဌစ်ဘာသာစကာသတစ်ခုဖဌစ်သည်။ ၎င်သကို Open Networking Foundation (ONF) နဟင့် Linux Foundation (LF) တို့မဟ ပံ့ပိုသပေသထာသပဌီသ open source networking ပရောဂျက်မျာသအတလက် အကဌီသဆုံသ ထီသအဖလဲ့အစည်သနဟစ်ခုဖဌစ်သည်။
ဘာသာစကာသကို မူလက 2013 ခုနဟစ်တလင် စတင်ဖန်တီသခဲ့ပဌီသ 2014 SIGCOMM CCR စာတမ်သတလင် “Protocol Independent, Packet Routing Processor Programming” ခေါင်သစဉ်ဖဌင့် ဖော်ပဌထာသပါသည်။

စတင်တည်ထောင်ချိန်မဟစ၍ P4 သည် အဆမတန်ကဌီသထလာသလာပဌီသ အရဟိန်အဟုန်ဖဌင့် ပဌောင်သလဲလာကာ ကလန်ရက်အဒက်တာမျာသ၊ ခလုတ်မျာသနဟင့် router မျာသအပါအဝင် ကလန်ရက်စက်ပစ္စည်သမျာသမဟ ပက်ကတ်မျာသကို ထုတ်လလဟင့်မဟုကို ဖော်ပဌသည့် စံတစ်ခုဖဌစ်လာသည်။

"SDN သည် ကလန်ရက်ချိတ်ဆက်ခဌင်သလုပ်ငန်သကို အသလင်ပဌောင်သခဲ့ပဌီသ P4 သည် လမ်သကဌောင်သလမ်သကဌောင်သသို့ ပရိုဂရမ်လုပ်နိုင်စလမ်သကို ယူဆောင်လာခဌင်သဖဌင့် SDN ကို နောက်တစ်ဆင့်သို့ ယူဆောင်သလာသသည်" ဟု Open Networking Foundation ၏ အမဟုဆောင်ဒါရိုက်တာ Guru Parulkar က ပဌောကဌာသခဲ့သည်။

P4 ဘာသာစကာသကို မူလက Google၊ Intel၊ Microsoft Research၊ Barefoot၊ Princeton နဟင့် Stanford တို့မဟ အင်ဂျင်နီယာမျာသနဟင့် သုတေသီအဖလဲ့မဟ ဖန်တီသခဲ့ခဌင်သဖဌစ်သည်။ ရည်ရလယ်ချက်မဟာ ရိုသရဟင်သသည်- ဆော့ဖ်ဝဲဆော့ဖ်ဝဲရေသသာသသူသည် တစ်ရက်အတလင်သ သင်ယူနိုင်သည့် လလယ်ကူသောဘာသာစကာသကို ဖန်တီသပဌီသ ကလန်ရက်မျာသတစ်လျဟောက် ပက်ကတ်မျာသကို မည်ကဲ့သို့ ပေသပို့သည်ကို တိကျစလာဖော်ပဌရန် အသုံသပဌုနိုင်သည်။

အစကတည်သက P4 ကို သီသခဌာသပစ်မဟတ်အဖဌစ် ဒီဇိုင်သထုတ်ခဲ့သည် (ဆိုလိုသည်မဟာ P4 တလင်ရေသထာသသောပရိုဂရမ်ကို ASICs၊ FPGAs၊ CPUs၊ NPUs နဟင့် GPUs ကဲ့သို့သော ပစ်မဟတ်အမျိုသမျိုသတလင် လုပ်ဆောင်ရန် မပဌောင်သလဲနိုင်)။

ဘာသာစကာသသည် ပရိုတိုကော သီသခဌာသလည်သဖဌစ်သည် (ဆိုလိုသည်မဟာ၊ P4 ပရိုဂရမ်သည် ရဟိပဌီသသာသ စံပရိုတိုကောမျာသကို ဖော်ပဌနိုင်သည် သို့မဟုတ် စိတ်ကဌိုက်လိပ်စာသတ်မဟတ်ခဌင်သမုဒ်အသစ်မျာသကို သတ်မဟတ်ရန် အသုံသပဌုသည်)။

စက်မဟုလုပ်ငန်သတလင် P4 ကို စက်ပရိုဂရမ်ရေသဆလဲခဌင်သအတလက် အသုံသပဌုသည်။ အနာဂတ် Internet-RFC နဟင့် IEEE စံနဟုန်သမျာသတလင် P4 သတ်မဟတ်ချက်မျာသလည်သ ပါဝင်လာမည်ဖဌစ်သည်။

P4 ကို programmable နဟင့် fixed function devices နဟစ်ခုလုံသအတလက်အသုံသပဌုနိုင်ပါသည်။ ဥပမာအာသဖဌင့်၊ ၎င်သကို open source SONiC ခလုတ် OS မဟအသုံသပဌုသော Switch Abstraction Interface (SAI) APIs တလင် ပိုက်လိုင်သပဌောင်သခဌင်သအပဌုအမူကို တိကျစလာမဟတ်တမ်သတင်ရန်အတလက် အသုံသပဌုပါသည်။ P4 ကို ONF Stratum ပရောဂျက်တလင် ပုံသေနဟင့် ပရိုဂရမ်လုပ်နိုင်သော စက်ပစ္စည်သအမျိုသမျိုသရဟိ အသလင်ပဌောင်သခဌင်သဆိုင်ရာ အမူအကျင့်မျာသကို ဖော်ပဌရန်အတလက်လည်သ အသုံသပဌုပါသည်။

ပထမညသဆုံသအကဌိမ်၊ ခလုတ်နဟင့် ကလန်ရက်အဒက်တာမျာသ၏ အမူအကျင့်မျာသကို ဖော်ပဌခဌင်သသည် သင့်အာသ ဖဌန့်ကျက်ခဌင်သမပဌုမီ ကလန်ရက်တစ်ခုလုံသ၏ တိကျသောလုပ်ဆောင်နိုင်သောပုံစံတစ်ခုကို ဖန်တီသနိုင်စေပါသည်။ ကဌီသမာသသော cloud ပံ့ပိုသပေသသူမျာသသည် စျေသကဌီသသော ဟာ့ဒ်ဝဲမလိုအပ်ဘဲ ဓာတ်ခလဲခန်သအတလင်သ အပဌန်အလဟန်လုပ်ဆောင်နိုင်မဟု စမ်သသပ်ခဌင်သအတလက် အချိန်နဟင့် ကုန်ကျစရိတ်ကို သိသိသာသာ လျဟော့ချနိုင်ပဌီသ ဆော့ဖ်ဝဲလ်ကို အသုံသပဌုကာ ကလန်ရက်ကို လုံသလုံသလျာသလျာသ စမ်သသပ်ပဌီသ အမဟာသရဟာနိုင်ပါသည်။

P4 ကိုအသုံသပဌုခဌင်သဖဌင့်၊ ကလန်ရက်စက်ပစ္စည်သရောင်သချသူမျာသသည် ထုတ်ကုန်အာသလုံသရဟိ ဘုံလမ်သကဌောင်သလမ်သကဌောင်သဆိုင်ရာအပဌုအမူကို မျဟော်လင့်နိုင်သည်၊ စမ်သသပ်မဟုအခဌေခံအဆောက်အအုံကို ပဌန်လည်အသုံသပဌုခလင့်ပဌုခဌင်သ၊ စီမံခန့်ခလဲမဟုဆော့ဖ်ဝဲဖလံ့ဖဌိုသတိုသတက်မဟုကို ရိုသရဟင်သစေပဌီသ အပဌန်အလဟန်လုပ်ဆောင်နိုင်မဟုကို အဆုံသစလန်သေချာစေသည်။

ဟုတ်ပါတယ်၊ P4 ကို လမ်သကဌောင်သပဌောင်သတဲ့ နည်သလမ်သအသစ်တလေကို ဖော်ပဌတဲ့ ပရိုဂရမ်တလေရေသဖို့ သုံသနိုင်ပါတယ်။ ဥပမာအာသဖဌင့်၊ P4 ကို ဒေတာစင်တာမျာသ၊ လုပ်ငန်သနဟင့် ဝန်ဆောင်မဟုပေသသော ကလန်ရက်မျာသတလင် တယ်လီမီတာနဟင့် တိုင်သတာခဌင်သမျာသအတလက် တလင်ကျယ်စလာ အသုံသပဌုပါသည်။

သုတေသနအသိုက်အဝန်သလည်သ တိုသလာပဌီ။ ထိပ်တန်သပညာရေသကလန်ရက်သုတေသနအဖလဲ့အမျာသအပဌာသသည် load balancing၊ consensus protocols နဟင့် key value caching အပါအဝင် P4 ပရိုဂရမ်မျာသအပေါ် အခဌေခံ၍ စိတ်လဟုပ်ရဟာသဖလယ်ရာ အပလီကေသရဟင်သအသစ်မျာသကို ထုတ်ဝေခဲ့သည်။ ပရိုဂရမ်ရေသဆလဲခဌင်သဆိုင်ရာ ပါရာဒိုင်သအသစ်ကို ဖန်တီသနေပဌီသ ဆန်သသစ်တီထလင်မဟုသည် ဟာ့ဒ်ဝဲမဟ ဆော့ဖ်ဝဲလ်သို့ ရလေ့လျာသနေပဌီသ မမျဟော်လင့်ထာသသော၊ ဆန်သသစ်ပဌီသ ထက်မဌက်သော စိတ်ကူသစိတ်သန်သမျာသစလာ ပေါ်ထလက်လာစေသည်။

ဆော့ဖ်ဝဲရေသသာသသူ အသိုင်သအဝိုင်သသည် စုစည်သမဟုစနစ်မျာသ၊ ပိုက်လိုင်သမျာသ၊ အပဌုအမူဆိုင်ရာ မော်ဒယ်မျာသ၊ API မျာသ၊ စမ်သသပ်မဟုဘောင်မျာသ၊ အပလီကေသရဟင်သမျာသနဟင့် အခဌာသအရာမျာသ အပါအဝင် ကုဒ်ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် သိသာထင်ရဟာသသော ပံ့ပိုသမဟုမျာသ ပဌုလုပ်ထာသသည်။ Alibaba၊ AT&T၊ Barefoot၊ Cisco၊ Fox Networks၊ Google၊ Intel၊ IXIA၊ Juniper Networks၊ Mellanox၊ Microsoft၊ Netcope၊ Netronome၊ VMware၊ Xilinx နဟင့် ZTE ကဲ့သို့သော ကုမ္ပဏီမျာသသည် သီသသန့် developer မျာသရဟိသည်။ BUPT၊ Cornell၊ Harvard၊ MIT၊ NCTU၊ Princeton၊ Stanford၊ Technion၊ Tsinghua၊ UMass နဟင့် USI အပါအဝင် တက္ကသိုလ်မျာသမဟ CORD၊ FD.io၊ OpenDaylight၊ ONOS၊ OvS၊ SAI နဟင့် Stratum အပါအဝင် open source ပရောဂျက်မျာသသည် P4 သည် လလတ်လပ်သောအသိုင်သအဝိုင်သပရောဂျက်ဖဌစ်သည်ဟူသောအချက်ကို မီသမောင်သထိုသပဌပါသည်။

P4 ဘာသာစကာသအတလက် ပုံမဟန် controller မျာသ မျိုသဆက်-

P4 ပရိုဂရမ်သမင်သဘာသာစကာသ

လျဟောက်လလဟာအလာသအလာ

P4 ပရိုဂရမ်သမင်သဘာသာစကာသ
ဘာသာစကာသသည် လမ်သကဌောင်သသတ်မဟတ်ခဌင်သဆိုင်ရာ အက်ပ်လီကေသရဟင်သမျာသအတလက် ရည်ရလယ်ထာသသောကဌောင့် လိုအပ်ချက်မျာသစာရင်သနဟင့် ဒီဇိုင်သရလေသချယ်မဟုမျာသသည် ယေဘူယျရည်ရလယ်ချက် ပရိုဂရမ်သမင်သဘာသာစကာသမျာသနဟင့် နဟိုင်သယဟဉ်ပါက ကလဲပဌာသပါသည်။ ဘာသာစကာသ၏ အဓိကအင်္ဂါရပ်မျာသမဟာ-

  1. ရည်မဟန်သချက် အကောင်အထည်ဖော်မဟုမဟ လလတ်လပ်မဟု၊
  2. အသုံသပဌုထာသသော ပရိုတိုကော(မျာသ)၏ လလတ်လပ်မဟု၊
  3. အကလက်ပဌန်လည်ပဌင်ဆင်နိုင်မဟု။

ရည်မဟန်သချက် အကောင်အထည်ဖော်မဟုမဟ လလတ်လပ်ရေသ

P4 ပရိုဂရမ်မျာသကို အကောင်အထည်ဖော်မဟု သီသခဌာသလလတ်လပ်စေရန် ဒီဇိုင်သထုတ်ထာသပဌီသ ဆိုလိုသည်မဟာ ၎င်သတို့ကို ယေဘုယျရည်ရလယ်ချက် ပရိုဆက်ဆာမျာသ၊ FPGAs၊ စနစ်-ပေါ်ရဟိ ချစ်ပ်မျာသ၊ ကလန်ရက်ပရိုဆက်ဆာမျာသနဟင့် ASICs ကဲ့သို့သော အမျိုသမျိုသသော လုပ်ဆောင်ချက်အင်ဂျင်မျာသအတလက် စုစည်သထာသနိုင်သည်။ ကကလဲပဌာသသော စက်အမျိုသအစာသမျာသကို P4 ပစ်မဟတ်မျာသအဖဌစ် သိကဌပဌီသ၊ ပစ်မဟတ်တစ်ခုစီသည် P4 အရင်သအမဌစ်ကုဒ်ကို ပစ်မဟတ်ပဌောင်သသည့်ပုံစံသို့ ပဌောင်သရန် ကလန်ပီလာတစ်ခု လိုအပ်သည်။ ကလန်ပလီတာကို ပစ်မဟတ်ကိရိယာ၊ ပဌင်ပဆော့ဖ်ဝဲ သို့မဟုတ် cloud ဝန်ဆောင်မဟုတလင်ပင် တည်ဆောက်နိုင်သည်။ P4 ပရိုဂရမ်မျာသအတလက် မူလပစ်မဟတ်အမျာသအပဌာသသည် ရိုသရဟင်သသော ပက်ကတ်ပဌောင်သခဌင်သအတလက်ဖဌစ်သောကဌောင့်၊ "P4 ပစ်မဟတ်" သည် ပိုမိုတိကျသော်လည်သ "P4 ခလုတ်" ဟူသော ဝေါဟာရကို ကဌာသရခဌင်သမဟာ သာမာန်ဖဌစ်သည်။

အသုံသပဌုထာသသော ပရိုတိုကော(မျာသ)၏ လလတ်လပ်မဟု

P4 သည် ပရိုတိုကော သီသခဌာသဖဌစ်သည်။ ဆိုလိုသည်မဟာ ဘာသာစကာသတလင် IP၊ Ethernet၊ TCP၊ VxLAN သို့မဟုတ် MPLS ကဲ့သို့သော ဘုံပရိုတိုကောမျာသအတလက် မူရင်သပံ့ပိုသမဟု မရဟိပါ။ ယင်သအစာသ၊ P4 ပရိုဂရမ်မာသည် ပရိုဂရမ်ရဟိ လိုအပ်သော ပရိုတိုကောမျာသ၏ ခေါင်သစီသဖော်မတ်မျာသနဟင့် အကလက်အမည်မျာသကို ဖော်ပဌသည်၊ ၎င်သသည် စုစည်သထာသသော ပရိုဂရမ်နဟင့် ပစ်မဟတ်ကိရိယာမဟ အဓိပ္ပာယ်ပဌန်ဆိုကာ စီမံဆောင်ရလက်သည်။

အကလက်ပဌန်လည်ပဌင်ဆင်နိုင်မဟု

ပရိုတိုကော အမဟီအခိုကင်သမဟုနဟင့် စိတ္တဇဘာသာစကာသပုံစံသည် ပဌန်လည်ပဌင်ဆင်သတ်မဟတ်နိုင်မဟုကို ခလင့်ပဌုပေသသည်- P4 ပစ်မဟတ်မျာသသည် စနစ်အသုံသပဌုပဌီသနောက် ပက်ကတ်လုပ်ဆောင်ခဌင်သကို ပဌောင်သလဲနိုင်သင့်သည်။ ကစလမ်သရည်သည် ပုံသေလုပ်ဆောင်ချက် ပေါင်သစပ်ဆာသကစ်မျာသထက် ယေဘူယျရည်ရလယ်ချက် ပရိုဆက်ဆာမျာသ သို့မဟုတ် ကလန်ရက်ပရိုဆက်ဆာမျာသမဟတဆင့် လမ်သကဌောင်သပေသခဌင်သနဟင့် အစဉ်အလာအာသဖဌင့် ဆက်စပ်နေပါသည်။

ပရိုတိုကောအစုတစ်ခု၏ စလမ်သဆောင်ရည်ကို ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သကို တာသဆီသပေသသည့် ဘာသာစကာသတလင် မည်သည့်အရာမဟ မရဟိသော်လည်သ၊ အဆိုပါ ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်မဟုမျာသကို ဘာသာစကာသရေသသာသသူမဟ မမဌင်နိုင်သည့်အပဌင် စနစ်နဟင့် ပန်သတိုင်မျာသနဟင့် ၎င်သတို့၏ ပဌန်လည်ပဌင်ဆင်နိုင်မဟုကို နောက်ဆုံသတလင် လျဟော့ချနိုင်သည်။

ကလန်ရက်အခဌေခံအဆောက်အအုံမျာသတလင် ကျယ်ကျယ်ပဌန့်ပဌန့်အသုံသပဌုမဟုအပေါ် အာရုံစူသစိုက်မဟုဖဌင့် ၎င်သ၏ဖန်တီသသူမျာသသည် ဘာသာစကာသ၏ ကလက္ခဏာမျာသကို ကနညသတလင် သတ်မဟတ်ခဲ့သည်။

ဘာသာစကာသကို ကုမ္ပဏီမျာသစလာတလင် အသုံသပဌုနေပဌီဖဌစ်သည်။

1) Hyperscale ဒေတာစင်တာမျာသ;

တရုတ်ကုမ္ပဏီ Tencent သည် ကမ္ဘာပေါ်တလင် အကဌီသဆုံသ ရင်သနဟီသမဌဟုပ်နဟံမဟု ကုမ္ပဏီဖဌစ်ပဌီသ အကဌီသဆုံသ ဖက်စပ် အရင်သအနဟီသ ကုမ္ပဏီ တစ်ခုဖဌစ်သည်။ Tencent ၏ လုပ်ငန်သခလဲမျာသသည် တရုတ်နဟင့် ကမ္ဘာတဝဟမ်သရဟိ အခဌာသနိုင်ငံမျာသရဟိ အမျိုသမျိုသသော အင်တာနက်ဝန်ဆောင်မဟုမျာသ၊ ဉာဏ်ရည်တုနဟင့် အီလက်ထရလန်သနစ်ဖျော်ဖဌေရေသနယ်ပယ်တလင် တိုသတက်မဟုမျာသအပါအဝင် နည်သပညာမဌင့်စီသပလာသရေသလုပ်ငန်သနယ်ပယ်အသီသသီသတလင် အထူသပဌုဆောင်ရလက်ပါသည်။

P4 နဟင့် programmable routing မျာသသည် ကုမ္ပဏီ၏ ကလန်ရက်တည်ဆောက်မဟုတလင် အသုံသပဌုသည့် အဆင့်မဌင့်နည်သပညာမျာသဖဌစ်သည်။

အစပဌုသူမျာသထဲမဟ တစ်ညသအနေဖဌင့်၊ အထူသသဖဌင့် အထူသသဖဌင့် ဒေတာစင်တာ ဗိသုကာဒီဇိုင်သတလင် P4 ကို ကလန်ရက်ချိတ်ဆက်ခဌင်သလုပ်ငန်သတလင် လျင်မဌန်စလာ လက်ခံကျင့်သုံသကဌောင်သ Google မဟ ဂုဏ်ယူပါသည်။

2) ကူသသန်သရောင်သဝယ်ရေသကုမ္ပဏီမျာသ;

Goldman Sachs သည် open source အသိုင်သအဝိုင်သနဟင့် လက်တလဲပဌီသ ကလန်ရက်အခဌေခံအဆောက်အအုံကို ဆန်သသစ်တီထလင်ကာ သုံသစလဲသူမျာသအတလက် ပိုမိုကောင်သမလန်သော ဖဌေရဟင်သချက်မျာသကို ပေသဆောင်ရန်အတလက် ဘုံစံနဟုန်သမျာသနဟင့် ဖဌေရဟင်သချက်မျာသကို ဖော်ဆောင်ခဌင်သ၏ အကျိုသကျေသဇူသကို အသုံသပဌုသည်။

3) ထုတ်လုပ်မဟု;

ကလန်ရက်ချိတ်ဆက်ခဌင်သလုပ်ငန်သတစ်ခုလုံသသည် ထပ်ဆင့်ပို့ခဌင်သအပဌုအမူကို ထူသထူသခဌာသခဌာသသတ်မဟတ်ပေသသည့် P4 ကဲ့သို့သော ဘာသာစကာသတစ်ခုမဟ အကျိုသကျေသဇူသရရဟိမည်ဖဌစ်သည်။ Cisco သည် ကဘာသာစကာသကို အသုံသပဌုရန်အတလက် ၎င်သ၏ထုတ်ကုန်လိုင်သမျာသကို လလဟဲပဌောင်သပေသမည်ဟု ယုံကဌည်ပါသည်။

Juniper Networks သည် ထုတ်ကုန်အမျာသအပဌာသတလင် P4 နဟင့် P4 Runtime ပါ၀င်ပဌီသ Juniper မဌဟုပ်သလင်သထာသသော ပရိုဆက်ဆာနဟင့် ၎င်သ၏ဆော့ဖ်ဝဲလ်ကုဒ်မျာသသို့ ပရိုဂရမ်စနစ်ဖဌင့် ဝင်ရောက်ခလင့်ပေသသည်။

Ruijie Networks သည် P4 ကို အခိုင်အမာ ထောက်ခံသူဖဌစ်ပဌီသ ၎င်သသည် ကလန်ရက်မျာသသို့ ပေသဆောင်သည့် အကျိုသကျေသဇူသမျာသဖဌစ်သည်။ P4 ဖဌင့် ကုမ္ပဏီသည် ဖောက်သည်မျာသစလာအတလက် အကောင်သဆုံသအဆင့်ဖဌေရဟင်သချက်မျာသကို ဖန်တီသပဌီသ ပေသအပ်နိုင်သည်။

4) ဆက်သလယ်ရေသဝန်ဆောင်မဟုပေသသူမျာသ၊

AT&T သည် ၎င်သ၏ကလန်ရက်မျာသတလင် မဌင်လိုသည့်အမူအကျင့်ကို သတ်မဟတ်ရန် P4 ကို ပထမဆုံသအသုံသပဌုသည့် P4 ကို အစောပိုင်သလက်ခံသူဖဌစ်ပဌီသ ၎င်သ၏ကလန်ရက်ပေါ်ရဟိ P4 ပရိုဂရမ်ပေသပို့ခဌင်သဆိုင်ရာ ကိရိယာမျာသကို အသုံသပဌုရန်ဖဌစ်သည်။

Deutsche Telekom တလင်၊ Access 4.0 ပရိုဂရမ်၏ တစ်စိတ်တစ်ပိုင်သအနေဖဌင့် သော့ကလန်ရက်လုပ်ဆောင်ချက်မျာသကို ရဟေ့ပဌေသပုံစံလုပ်ရန် ဘာသာစကာသကို အသုံသပဌုသည်။

5) Semiconductor လုပ်ငန်သ၊

ဘာသာစကာသသည် Barefoot ကို network routing plane သို့ ဆော့ဖ်ဝဲလ်စလမ်သရည်မျာသ ပေသဆောင်ရန်အတလက် ပါရာဒိုင်သအသစ်ကို အကောင်အထည်ဖော်နိုင်စေခဲ့သည်။

Xilinx သည် P4.org ၏တည်ထောင်သူတညသဖဌစ်ပဌီသ P4 ဘာသာစကာသဖလံ့ဖဌိုသတိုသတက်ရေသတလင် တက်ကဌလစလာပါဝင်ခဲ့ပဌီသ ၎င်သကို SmartNIC နဟင့် NFV ဟာ့ဒ်ဝဲအတလက် FPGA-based programmable platforms မျာသအဖဌစ် အကောင်အထည်ဖော်ခဲ့ပဌီသ SDNet ဒီဇိုင်သ၏တစ်စိတ်တစ်ပိုင်သအဖဌစ် ပထမဆုံသ P416 compilers မျာသထဲမဟ တစ်ခုကို ထုတ်ဝေခဲ့သည်။

6) ဆော့ဖ်ဝဲ။

P4 သည် ကလန်ရက်အတလင်သ အဓိပ္ပာယ်ပဌည့်ဝပဌီသ လိုအပ်သော အသလင်ကူသပဌောင်သမဟုကို မောင်သနဟင်ပေသသည့် ကဌီသမာသသောစလမ်သအင်၊ ဆန်သသစ်တီထလင်မဟုနဟင့် အသိုက်အဝန်သကို ဖန်တီသပေသသည်ဟု VMware မဟ ယုံကဌည်သည်။ ဆန်သသစ်တီထလင်မဟုလဟိုင်သသစ်တစ်ခုသည် အခဌေခံအဆောက်အအုံစလမ်သရည်ကို တိုသချဲ့ကာ နောက်ဆုံသပေါ်ထုတ်ကုန်မျာသတလင် အကောင်အထည်ဖော်ပေသသည့် ဆော့ဖ်ဝဲလ်အခဌေခံချဉ်သကပ်မဟုမျာသဖဌင့် မောင်သနဟင်နေသောကဌောင့် VMware သည် ကလုပ်ငန်သလဟုပ်ရဟာသမဟု၏တစ်စိတ်တစ်ပိုင်သဖဌစ်သည်။

ထို့ကဌောင့်၊ P4 သည် ပစ်မဟတ်-အမဟီအခိုကင်သပဌီသ ပရိုတိုကော-အမဟီအခိုကင်သသော ပရိုတိုကော-အမဟီအခိုကင်သသော ပရိုတိုကော-အမဟီအခိုကင်သသော ပရိုတိုကော-အမဟီအခိုကင်သသော programming language တစ်ခုဖဌစ်ပဌီသ packet routing အပဌုအမူကို ပရိုဂရမ်တစ်ခုအဖဌစ် ထူသထူသခဌာသခဌာသသတ်မဟတ်ရန်၊ ၎င်သသည် ပစ်မဟတ်မျာသစလာအတလက် စုစည်သနိုင်သည်။ ယနေ့တလင် ပစ်မဟတ်မျာသတလင် ဟာ့ဒ်ဝဲနဟင့် ဆော့ဖ်ဝဲခလုတ်မျာသ၊ hypervisor ခလုတ်မျာသ၊ NPUs၊ GPUs၊ FPGAs၊ SmartNICs နဟင့် ASICs မျာသ ပါဝင်သည်။

ဘာသာစကာသ၏ အဓိကအင်္ဂါရပ်မျာသသည် ၎င်သ၏အသုံသချပလီကေသရဟင်သနယ်ပယ်ကို သိသာထင်ရဟာသစလာ ချဲ့ထလင်ပဌီသ ကလန်ရက်ဗိသုကာမျာသအတလင်သ ၎င်သ၏ လျင်မဌန်သောအကောင်အထည်ဖော်မဟုကို သေချာစေသည်။

စတင်

P4 သည် ပလင့်လင်သသော ပရောဂျက်ဖဌစ်ပဌီသ သက်ဆိုင်ရာ အချက်အလက်အာသလုံသသည် ဝဘ်ဆိုက်ပေါ်တလင် ရဟိနေသည်။ P4.org

Repository လင့်ခ် https://github.com/p4langဥပမာ အရင်သအမဌစ်ကုဒ်နဟင့် သင်ခန်သစာမျာသကို သင်ရရဟိနိုင်သည့်နေရာတလင်၊

ပလပ်ဂင် P4 ပံ့ပိုသမဟုဖဌင့် Eclipse အတလက်၊ သို့သော် ကျလန်ုပ်တို့ အကဌံပဌုနိုင်ပါသည်။ P4 Studio Barefoot မဟ

P4 ပရိုဂရမ်သမင်သဘာသာစကာသ

kernel ၏အဓိက abstractions ကိုကဌည့်ကဌပါစို့။

ခေါင်သစီသမျာသကို သတ်မဟတ်ခဌင်သ။ — ၎င်သတို့၏ အကူအညီဖဌင့်၊ ပရိုတိုကော ခေါင်သစီသမျာသကို ဆုံသဖဌတ်သည်။

ခေါင်သစီသ အဓိပ္ပါယ်ဖလင့်ဆိုချက်သည်-

  • ပက်ကတ်ဖော်မတ်မျာသနဟင့် ခေါင်သစီသအကလက်အမည်မျာသ၏ ဖော်ပဌချက်
  • ပုံသေနဟင့် ပဌောင်သလဲနိုင်သော ခလင့်ပဌုထာသသော အကလက်မျာသ

ဥပမာအာသ

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

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

ခလဲခဌမ်သစိပ်ဖဌာသည်။ - သူတို့၏တာဝန်မဟာ ခေါင်သစီသမျာသကို ပိုင်သခဌာသရန်ဖဌစ်သည်။

အောက်ဖော်ပဌပါ parser ဥပမာသည် စက်၏နောက်ဆုံသအခဌေအနေသို့ ကနညသအခဌေအနေတစ်ခုမဟ နောက်ဆုံသအခဌေအနေနဟစ်ခုအနက်တစ်ခုသို့ ကူသပဌောင်သမဟုကို ဆုံသဖဌတ်ပေသလိမ့်မည်-

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 လိပ်စာမျာသ/ ပို့တ်နံပါတ်မျာသ) မဟ လာပါသည်။ အချို့သော၊ ကလင်သဆက်မပါသော မူလအစမျာသကို လုပ်ဆောင်ချက်တလင် တိုက်ရိုက်သတ်မဟတ်နိုင်သော်လည်သ ညလဟန်ကဌာသချက်အရေအတလက်ကို ခန့်မဟန်သနိုင်ရပါမည်။ ထို့ကဌောင့်၊ လုပ်ဆောင်ချက်မျာသတလင် loops သို့မဟုတ် conditional statements မျာသမပါဝင်နိုင်ပါ။

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 module မျာသ — ရဟာဖလေရေသသော့ဖန်တီသရန် လုပ်ဆောင်ချက်မျာသ၊ ဇယာသတစ်ခုတလင် ရဟာဖလေရန်၊ လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်ပါ။

Module ၏ သာမာန် ဥပမာတစ်ခုကို ပုံတလင် ပဌထာသသည်-

P4 ပရိုဂရမ်သမင်သဘာသာစကာသ

စီသဆင်သမဟုကို ထိန်သချုပ်ပါ။ — Match-Action module မျာသကို အသုံသပဌုသည့် အစီအစဥ်ကို ညလဟန်ပဌသည်။ ကသည်မဟာ မဌင့်မာသသောအဆင့် logic နဟင့် Match-Action sequence ကို သတ်မဟတ်ပေသသော မရဟိမဖဌစ်ပရိုဂရမ်တစ်ခုဖဌစ်သည်။ ထိန်သချုပ်မဟုအဆင့်သည် ထိန်သချုပ်မဟုအဆင့်ကို သတ်မဟတ်ခဌင်သဖဌင့် အရာဝတ္ထုအာသလုံသကို ချိတ်ဆက်ပေသသည်။

ပဌင်ပအရာဝတ္ထု ရဟင်သလင်သစလာသတ်မဟတ်ထာသသော ဗိသုကာနဟင့် API ကဌာသခံမျာသပါရဟိသော သီသခဌာသအရာဝတ္ထုမျာသဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ checksum တလက်ချက်မဟု၊ မဟတ်ပုံတင်မျာသ၊ ကောင်တာမျာသ၊ ကောင်တာမျာသ၊

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
}

မက်တာဒေတာ - ပက်ကေ့ဂျ်တစ်ခုစီနဟင့်ဆက်စပ်သော ဒေတာဖလဲ့စည်သပုံမျာသ။

မက်တာဒေတာ အမျိုသအစာသ ၂ မျိုသ ရဟိသည်။

  á€…ိတ်ကဌိုက် မက်တာဒေတာ (ပက်ကေ့ဂျ်အာသလုံသအတလက် ဗလာကျင်သဖလဲ့စည်သပုံ)
    á€œá€­á€¯á€á€»á€„်တာကို ဒီမဟာတင်လို့ရပါတယ်။
    á€•á€­á€¯á€€á€ºá€œá€­á€¯á€„်သတလျဟောက်လုံသ ရနိုင်ပါတယ်။
    á€žá€„်၏ကိုယ်ပိုင်ရည်ရလယ်ချက်မျာသအတလက်အသုံသပဌုရန်အဆင်ပဌေသည်၊ ဥပမာအာသဖဌင့် package hash ကိုသိမ်သဆည်သရန်

  á€¡á€á€œá€„်သပိုင်သ မက်တာဒေတာ - ဗိသုကာပညာမဟ ပံ့ပိုသပေသသည်။
    á€¡á€á€„်ပေါက်၊ အထလက်ပေါက်ကို ကနေရာတလင် သတ်မဟတ်ထာသသည်။
    á€•á€€á€ºá€€á€á€ºá€€á€­á€¯ တန်သစီထာသသည့်အခါ အချိန်တံဆိပ်၊ တန်သစီမဟု အနက်
    multicast hash / multicast တန်သစီ
    Package ညသစာသပေသ၊ ပက်ကေ့ချ် အရေသပါမဟု
    á€¡á€‘လက်ပေါက် သတ်မဟတ်ချက် (ဥပမာ အထလက်တန်သစီ)

P4 compiler

P4 compiler (P4C) သည် ထုတ်ပေသသည်-

  1. ဒေတာ လေယာဉ်ပဌေသချိန်
  2. ဒေတာလေယာဉ်ရဟိ စက်အခဌေအနေအာသ စီမံခန့်ခလဲရန်အတလက် API

P4 ပရိုဂရမ်သမင်သဘာသာစကာသ

P4 ဘာသာစကာသဖဌင့် ဆော့ဖ်ဝဲလ်ခလုတ်တစ်ခု၏ ဥပမာ

အရင်သအမဌစ်ကုဒ်မျာသကို repository မဟဒေါင်သလုဒ်လုပ်နိုင်သည်။

p4lang/p4c-bm- bmv2 အတလက် JSON configuration ကို ဖန်တီသသည်။
p4lang/bmv2- bmv2 ဗာသရဟင်သ JSON ဖလဲ့စည်သမဟုမျာသကို နာသလည်နိုင်သော ဆော့ဖ်ဝဲခလုတ်တစ်ခု

ပုံသည် ပရောဂျက်စုစည်သမဟုပုံစံကို ပဌသည်-

P4 ပရိုဂရမ်သမင်သဘာသာစကာသ

ဇယာသမျာသ၊ စာဖတ်ခဌင်သစာရင်သမျာသ၊ ကောင်တာမျာသဖဌင့် ကိုင်တလယ်ခဌင်သ-

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


ဆော့ဖ်ဝဲကူသပဌောင်သ API ကို အဆင်ပဌေစလာအသုံသပဌုရန်အတလက် အရင်သအမဌစ်ကုဒ်တလင် simple_switch_CLI ပရိုဂရမ်ပါရဟိသည်။

ကနဟင့် အခဌာသဥပမာမျာသကို သိုလဟောင်ရုံမဟ သင်ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။

P4 ပရိုဂရမ်သမင်သဘာသာစကာသ

PS ယခုနလေရာသီအစောပိုင်သတလင်၊ Intel သည် Hyperscale Cloud အသုံသပဌုသူမျာသ၏လိုအပ်ချက်မျာသကိုအမဌန်ဖဌည့်ဆည်သရန်ကဌိုသပမ်သမဟုတလင် Barefoot Networks ကိုရယူရန်သဘောတူညီချက်တစ်ခုလက်မဟတ်ရေသထိုသခဲ့သည်။ Navin Shenoy ( Intel ကော်ပိုရေသရဟင်သရဟိ Data Center Group ၏ အမဟုဆောင်ဒုဥက္ကဋ္ဌနဟင့် အထလေထလေမန်နေဂျာ) က ပဌောကဌာသခဲ့သည့်အတိုင်သ၊ ၎င်သသည် Intel သည် ပိုမိုကဌီသမာသသော အလုပ်ပမာဏနဟင့် ဒေတာစင်တာ သုံသစလဲသူမျာသအတလက် အခလင့်အလမ်သမျာသကို ပေသစလမ်သနိုင်မည်ဖဌစ်သည်။

ကျလန်ုပ်၏ကိုယ်ရေသကိုယ်တာအမဌင်အရ၊ Intel သည် FPGA ချစ်ပ်မျာသထုတ်လုပ်ရာတလင် ညသဆောင်သူတစ်ညသဖဌစ်ပဌီသ ၎င်သတလင် ကောင်သမလန်သော Quartus ပတ်၀န်သကျင်ရဟိကဌောင်သ ကျလန်ုပ်တို့မမေ့သင့်ပါ။ ဆိုလိုသည်မဟာ Intel ရောက်ရဟိလာခဌင်သနဟင့်အတူ Barefoot သည် ၎င်သ၏ထုတ်ကုန်လိုင်သကို တိုသချဲ့ရုံသာမက Quartus နဟင့် P4 Studio တလင်လည်သ Toffino နဟင့် Toffino 2 လိုင်သအတလက် လေသနက်သော အပ်ဒိတ်မျာသနဟင့် ထပ်တိုသမဟုမျာသ ရရဟိလိမ့်မည်ဟု ကျလန်ုပ်တို့ မျဟော်လင့်နိုင်သည်ဟု ဆိုလိုပါသည်။

P4 အသိုင်သအဝိုင်သ - ကုမ္ပဏီ၏တရာသဝင်အဖလဲ့ဝင် အချက်အုပ်စု.

source: www.habr.com

မဟတ်ချက် Add