8 轻飘风扬

尚未进行身份认证

我要认证

有较强的团队合作精神,学习能力较强,善于学习新技术,为人乐观积极做事有耐心,能够在较强的压力下工作,有较强的适应能力,真诚温和,做事踏实,有较强的动手能力

等级
TA的排名 1k+

DPDK -20.5遇到的一些问题总结

源码下载及编译 dpdk 最新代码下载,可以再码云平台创建clone一个dpdk的项目,从码云平台上下载代码速度比较块,能达到2Mbps,直接从github上下载不是一个数量级。git clone https://gitee.com/jinshaohui/dpdk.git编译可以直接参照dpdk上的文档,目前是使用meson & ninja来进行源码编译,旧的编译方式也适用。首先需要安装工具meson,环境是是centos 7.5版本,需要更新成阿里源才能安装成功。[root@loca

2020-07-24 10:19:08

DPDK网卡设备加载流程

bus总线网卡设备扫描函数在目录dpdk/lib/librte_eal/common/eal_common_bus.cbus scan提供的主接口,内部会调用所有bus->scan。接口的目的是扫描所有bus下注册的设备。bus设备注册dpdk/lib/librte_eal/include/rte_bus.h是由宏RTE_REGISTER_BUS,在程序启动时完成的注册,目前查询宏使用的地方如下。/** * Helper for Bus registration. * The cons

2020-07-12 15:31:23

DPDK 内存管理---malloc_heap和malloc_elem

博文是基于dpdk20.5代码阅读所写,如理解有错误或不当之处,烦请指正,不甚感激。也可以私信我一起探讨。两种数据结构体介绍Malloc 库内部使用了两种数据结构类型(可以参考dpdk官方文档3.4.4章节介绍):struct malloc_heap:用于在每个 CPU Socket 上跟踪和管理可用内存空间。struct malloc_elem:Malloc 库内部用于追踪分配和释放空间的基本要素。基本内存分布结构说明malloc_elem介绍elem是heap管理内存的基本单元,内

2020-07-11 16:05:26

QOS相关基础知识总结

QOS基本概念三种令牌桶模式的区别和应用场景由前文描述可以看出,三种令牌桶模式之间既有区别也有演进关系,具体见下表。基于上述三种令牌桶模式之间的区别,其功能和使用场景也有所不同,具体见下表。参数设置有讲究在令牌桶算法中,CIR的值越大,即令牌产生的速率越大,报文可以获取的令牌就越多,流向网络的流量也就越大。因此,CIR的值是控制流入网络中流量多少的关键。CBS也是一个重要参数。CBS的值越大,C桶中可以积累令牌的数目也越多,允许通过的报文尺寸就越大。由于设备进行的是逐包转发,CBS的值不应

2020-07-09 12:23:28

通用路由封装协议——GRE

1、GRE简介 通用路由封装协议GRE(Generic Routing Encapsulation)可以对某些网络层协议(如IPX、ATM、IPv6、AppleTalk等)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IPv4)中传输。GRE提供了将一种协议的报文封装在另一种协议报文中的机制,是一种三层隧道封装技术,使报文可以通过GRE隧道透明的传输,解决异种网络的传输问题。 在大多数常规情况下,系统拥有一个有效载荷(或负载)包,需要将它封装并发送至某个目的地。首先将有效载荷封

2020-06-13 15:46:56

IPsec协议总结

1、IPsec 基本介绍1.1 ipsec基本数据1.2 ipsec 封装模式传输模式传输模式在AH、ESP处理前后IP头部保持不变,主要用于End-to-End的应用场景。隧道模式隧道模式则在AH、ESP处理之后再封装了一个外网IP头,主要用于Site-to-Site的应用场景2 隧道模式下基本的封装和姐封装流程2.1 封装流程在原IP报文中找到TCP报文部分,在其后添加相应的ESP trailer信息。ESP trailer 包含三部分:Padding,Pad leng

2020-06-13 09:30:53

BGP消息处理学习

1、BGP 介绍1.1 相关术语1.2 BGP协议特点当前使用的版本是BGP-4。BGP作为事实上的Internet外部路由协议标准,被广泛应用于ISP(Internet Service Provider)之间。BGP协议具有如下特点:BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议(IGP)不同,其着眼点不在于发现和计算路由,而在于在AS之间选择最佳路由和控制路由的传播。BGP使用TCP作为其传输层协议,提高了协议的可靠性。BGP进行域间的路由选择,对协议的稳定性要求非

2020-06-11 18:11:34

arp基础学习

Arp基本学习如果要在TCP/IP协议栈中选择一个"最不安全的协议",那么我会毫不犹豫把票投给ARP协议。我们经常听到的这些术语,包括"网络扫描"、“内网渗透”、“中间人拦截”、“局域网流控”、“流量欺骗”,基本都跟ARP脱不了干系。大量的安全工具,例如大名鼎鼎的Cain、功能完备的Ettercap、操作傻瓜式的P2P终结者,底层都要基于ARP实现。听上去这么"逆天"的协议,其实技术原理又简单的难以置信,例如ARP整个完整交互过程仅需要两个包,一问一答即可搞定!但是ARP协议也有它令初学者迷惑的地方,例

2020-06-10 09:42:35

路由基础学习--交换机及路由器基本转发

1、网络三要素及交换机工作原理1.1 HUB及Switch内部构造对比集线器采用广播的形式传输数据,即向所有端口传送数据。集线器是一种共享设备,本身不能识别目的地址,当同一网内的a主机向b主机发送数据时,数据包在以hub为架构的网络上以广播方式传输,由每一台终端通过验证数据包头的地址信息来确定是否接收,同一时刻网络上只能传输一组数据帧的通讯。此方式共享带宽。交换机上的所有端口均有独享的信道带宽,以保证每个端口上数据的快速有效传输。交换机为用户提供的是独占的、点对点的连接,数据包只被发送到目的端口,

2020-05-17 15:44:44

vpp源码阅读---node节点调度总结

调度类型总结调度方式总结个人理解:从代码上来看只有Input类型的node节点注册的时候state设置成中断方式,才会出现中断和轮训的切换,默认全是轮询方式。PRE_INPUT类型node只能按照轮询当时来调度。设置成state为中断也是一样的。中断方式和轮询方式之间切换。模式切换依据累计报文数量,在vlib_main_or_worker_loop启动中设置。PRE_INPUT和INPUT类型调度Pre_input类型只能在main线程上被调度,一般为Process类型提供输入。in

2020-05-17 10:44:19

DPDK-vpp 一次mbuf地址被踩的定位思路

上个月解决了一个mbuf地址异常导致程序coredump的问题,问题定位前后花了将近一个月的时间,期间也是一点定位思路都没有,写这篇文章希望有同样问题的提供一种解决思路。问题背景在业务转发流程中vpp 发包模块mtu 9000字节,多mbuf单链表串联场景下,其中一个mbuf的next地址是非法地址,从而导致程序coredump异常。异常调用栈分析 分析过程发现发包mubuf数组中tx_pkts[-1]的next是非法地址导致程序异常。通过vlib_buf的next_buffer反推下一个mbu

2020-05-13 10:39:34

VPP源码阅读----vppinfra 结构说明

vppinfra 相关结构学习相关视频地址可以在B站上搜索的,但是ppt暂时没有找到,自己的阅读截图说明了。vetvec结构是最基础的类型,图片的右下角的大字比较醒目,也是初学者很容易犯的错误:Allocation only increases,Vector origin pointer may changer,store indexes(not pointers)!vector 原始指针可能会改变,存储索引而不是指针。这种说法成立的前提是vector操作中不调用vec_del函数,否则也不能

2020-05-08 21:52:54

dpdk查寻是否支持此网卡

[jinsh@localhost dpdk-19.11]$ lspci -nn | grep Ethernet07:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)08:00.0 Ethernet controller [0200]: I...

2020-05-05 22:09:49

Vpp源码解读--workhandoff处理

1、node节点handoff功能1.1、申请node节点对应vlib_frame_queue_main_t结构我们可以阅读以下函数ip4_sv_reass_init_function完成IP报文假重组功能中handoff使用u32 vlib_frame_queue_main_init (u32 node_index, u32 frame_queue_nelts)下面是对应结构体描述:...

2020-05-01 23:37:49

VPP源码阅读---IP报文重组和分片

1、dpdk ip报文重组相关数据接口及API1.1相关数据结构1.2 相关API/*NO.1 创建rte_ip_frag_tbl结构,用来暂存分片的表。其中max_cycles表示分片报文超时时间TTL *frag_cycle = (rte_get_tsc_hz()) + MS_PER_S –1) / MS_PER_S * 10; *是10ms的cycle的一个例子。 */str...

2020-04-25 17:14:31

Inferior 1 (process 663) exited with code 0177

网站查询到可以通过https://www.it1352.com/785461.html再gdb里面设置下面参数捕捉系统退出原因catch syscall exit exit_group调查过程:1、使用gdb调试,问题发生时,程序已退出,没有捕获到信号,无法抓到堆栈信息,串口只输出日志:[Inferior 1 (process 663) exited with code 0177]2...

2020-04-11 15:56:21

Linux虚拟化学习----day1

基本概念参考文章SAN典型网络模型----个人还不是很懂,记录下来

2020-03-29 21:39:39

VPP源码阅读-------copy、clone、recycle机制对比分析

2020-03-17 09:34:55

NUMA架构下的CPU拓扑结构

作者:weijitao来源:CSDN原文:https://blog.csdn.net/weijitao/article/details/52884422目前多核已经越来越普遍的使用,Linux对NUMA架构的支持也越来越完善。对于内存管理、多处理的负载均衡调度等进行了大量的优化工作。NUMA相关的几个概念有Node、Socket、Core 以及 Thread。Socket是一个物理上的...

2020-03-15 20:21:18

DPDK源码解读-------ring结构体

RTE RING结构体内存挂接挂接在全局rte_ring_tailq尾队列链表上ring_list = RTE_TAILQ_CAST(rte_ring_tailq.head, rte_ring_list);下面是相关的结构体声明及定义/*尾队列表头TAILQ_HEAD 宏定义*/#define TAILQ_HEAD(name, type) \ struct name { \...

2020-03-14 13:26:33

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。