这里写的是研究vpp的一些心路历程,我在这里并不打算写下关于vpp教程的东西,只是希望留下一些回忆。
本科毕业一年之际也就是20年五月份第一次接触vpp,也是公司需要,当时的我对许多网络知识并不了解,因为大学对网络方面的教育太薄弱,当时很难对网络知识有深刻的理解,脑海里剩下的就剩tcp三次握手和DNS相关的知识,也就会在服务器上配置IP、网关、路由等,刚开始研究的OVS都不知道是什么,更不要提对SDN,NFV有什么概念,所以研究VPP对我是个很大的挑战。除去中间干别的事情的几个月,现在算起来研究vpp也有近半年时间了。到现在为止也算是对vpp的一些基础功能有了了解,所以在此写下博客用来记录学到的知识。
刚接触vpp肯定是从部署安装开始,vpp官方写的Makefile文件还是很智能的,在联网的环境下三步走就可以安装成功了。当时的问题是如何把vpp官方的git仓库变成自己的git仓库并且可以让别人提交,因为这个缘故,我首次仔细研究git的各种操作和配置文件的含义,然后理解了git和svn的区别,发现git确实比svn好用多了。
安装完成后肯定要去研究vpp是什么,能做什么。vpp不像dpdk,dpdk还有一本专门的书《深入浅出DPDK》,以及网上能搜到很多中文资料。vpp中文相关的资料搜多了发现就那么多人写的博客,当时对于他们写的博客理解不深,主要还是对vpp了解的时间太短,现在回头再看他们的文章感觉都不一样了。但是归根到底vpp最重要的资料就是官方的教程,不过都是英文对我还是有很大挑战的,逼迫我对着google翻译一个一个的看。
现在看来研究vpp还是要以官方文档和源码为主,vpp的代码结构和风格还是挺不错的,很多时候读懂一个地方就会发现很多地方代码的写法都是类似的,自然而然就懂了,比如如何调用vpp提供的二进制api,或者如何添加vpp的二进制api,以及添加一个自己功能的插件,这些地方的代码都是类似的。
现在春节假期我利用空闲时间把学到的vpp知识写在博客上,供自己以及研究vpp的同行参考。博客的内容主要包括vpp的部署安装,如何调用vpp的二进制api,如何添加vpp的二进制api,如何添加插件,以及后续对vpp不同模块的源码分析。研究vpp的过程中总会遇到各种各样的问题,希望能详细的记录下来避免以后再走弯路。
有朝一日我也能成为一个领域的高手。
勿在浮沙筑高台, 不为繁华易匠心。
/**************************** 分割线 ****************************\
因为工作内容调整,vpp搁置了很长时间,现在重新回来把vpp捡起来,自己阅读理解vpp源码,把相关机制分析清楚,希望不要再咕咕咕了