前些时候琢磨如何解决网络架构问题的时候,交流了Barefoot Tofino这个可编程交换芯片产品,其他的功能且不说,但是INT这个功能很惊艳,随后就花几天时间认真学习了一下这个平台,以及平台上的开发语言。依稀记得首次Data Plan的开发还是在Bell Labs Research时代的NP,可惜后来由于转型没有投产。对控制面、数据面还是有些粗略的概念。云计算进入智能网卡时代之后(2013年之后),也就是盈利压力大于收入压力之后,云计算服务商都开始琢磨更高性价比的硬件。注意,不仅仅是CPU卸载、缓解CPU垄断成本,还包括替换GPU和缓解GPU垄断成本。
从某种意义上看,云计算服务商是传统IT产业链的颠覆者。起因很简单:云计算服务商作为CPU、GPU、交换芯片、FPGA、ASIC、各种硬件等上游产品的大客户,而又没有办法议价,云计算服务商是不能眼睁睁地看着利润被上游侵蚀的。越大的云计算服务商,这方面的动力越强。所有活下来的云计算服务商都会走到这一步。我们可以注意到,通信行业的海内外运营商也在喊要自主研发基站等CT产品,但是距离这一步还远得很,一是能力差距太大,二是CT领域标准化领域已经被上游企业占领。
P4是通用可以定制的网络设备的一个重要组成部分,虽然也有其他的语言,但是P4在Intel的推动下,似乎有成为事实标准的能力,还记得之前的调研说NP可以用类C语言开发,那么用P4开发ASIC上的数据面,目前看似乎用C开发还有一些距离,性能优于便利性,可能要演进一段时间才能有更高级的语言。
本来还想贴几段代码,算了,大家自己找资料吧:-)
相关信息:
P416 Portable Switch Architecture (PSA) 1.1:https://p4.org/p4-spec/docs/PSA-v1.1.0.html
P4Runtime Specification 1.3:https://p4.org/p4runtime/spec/v1.3.0/P4Runtime-Spec.html
P416 Language Specification 1.2.1:https://p4.org/p4-spec/docs/P4-16-v1.2.1.htm
P4 Language and Related Specifications:https://p4.org/specs/
RFC2698双速率三色双桶总结:https://blog.csdn.net/changchangaaa/article/details/108165170
RFC2698(INFORMATIONAL):https://www.rfc-editor.org/rfc/rfc2698.html
https://newsroom.intel.com/editorials/intel-acquire-barefoot-networks/#gs.ofil18