自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 DPAA dqrr eqcr的逻辑分析

DPAA中收包队列是dqrr,发包队列是eqcr。

2023-07-07 10:58:27 381

原创 DPDK dpaa发包流程

4,对于分片包,因为一个分片包会分出两个mbuf(一个存放mac头+ip头大小的包,另一个存放分片包的数据),当时ls1043时,realloc_mbuf=1,所以会走rellocate_mbuf(会把两个mbuf合成一个mbuf).5,当mbuf都转换为fd格式之后,通过qman_enqueue_multi进行入队操作,把数据包放到eqcr队列。1,图中nb_bufs是需要发送的包的个数,frames_to_send是一次能发的包的最大个数。3,extbuf应该也是种特殊包处理,暂未研究。

2023-07-05 17:46:11 255

原创 nflog学习

nflog 是一种类似client/server的架构,需要进行nflog通信时,需要先启server。然后客户端才能发送数据给server。

2023-03-16 14:40:24 741

原创 l2fwd收发队列的分析。

ring队列的创建是通过mempool_ops_alloc_once创建的,mempool_ops_alloc_once调用rte_mempool_ops_alloc,rte_mempool_ops_alloc根据ops_index,查找对应alloc接口,本文主要讲ring队列调用的是common_ring_alloc接口。rte_pktmbuf_free_seg用于把内存还给队列,会调用rte_mbuf_raw_free,rte_mbuf_raw_free调用rte_mempool_put,

2023-01-16 16:24:29 298

原创 linux网络收包流程

本文主要关注转发相关流程。并以igb驱动举例。⾸先当数据帧从⽹线到达⽹卡上的时候,第⼀站是⽹卡的接收队列。⽹卡在分配给⾃⼰的RingBuffer 中寻找可⽤的内存位置,找到后 DMA 引擎会把数据 DMA 到⽹卡之前关联的内存⾥,这个时候 CPU 都是⽆感的。当 DMA 操作完成以后,⽹卡会向 CPU 发起⼀个硬中断,通知 CPU 有数据到达。网卡驱动会注册一个终端服务函数,以igb驱动为例,通过request_irq,注册了一个终端服务程序igb_msix_ring。

2022-12-20 17:16:10 125

原创 iptable 内核流程

记录一下iptables指令在内核的流程,分为配置和匹配

2022-12-01 11:34:27 213

原创 json字符串和普通字符串,性能对比

实现方案是解析出来的数据放到一个队列,发送线程定时1s从队列中读出数据,通过json来拼装一个字符串,最后通过sokect把数据发出去。但是当数据量大时,出现了发送线程慢的问题,就是说写队列(有分内存)比读队列快(释放内存),所以导致了内存堆积,最后内存号完了。json拼装字符串的工作,看着很简单,但是深入json源码,发现代码逻辑还是比较复杂的。所以决定测一下性能,感觉json最后生成的字符串比较简单,所以采用了字符串直接拼接来做对比。解决这个问题,就是对列大小做了限制,超过了一定数量就不入队了,

2022-11-11 18:36:38 900

原创 linux编译自定义模块,添加自定义宏的方法

有KBUILD_CFLAGS这一句编译之后加载驱动输出 “hello world”,屏蔽掉KBUILD_CFLAGS这一句编译之后,加载驱动输出“hello world 1111”通过KBUILD_CFLAGS 来添加你需要的宏。

2022-10-11 17:32:07 988

原创 selinx 基于角色的控制

selinx role

2022-09-06 16:11:37 263

原创 [netfilter]--arp的主要流程

本文主要简单介绍arp的收包流程,以及钩子点的使用.arp的收包主要有两个流程,1,arp_rcv,主要收包到本地,涉及到的钩子点NF_ARP_IN,NF_ARP_OUT,2,通过桥接转发,__br_forward最后遍历hook函数,如果是arp包,找到br_nf_forward_arp,2.1,br_nf_forward_arp,遍历NFPROTO_ARP,NF_ARP_FORWARD找到对应hook注册 NFPROTO_ARP,NF_ARP_IN钩子arp_hook的堆栈情..

2022-03-16 16:40:30 504

原创 [netfilter]-ip_rcv包转发流程

1,ip_rcv收到包之后,调用NF_HOOK,NF_HOOK首先调用nf_hook遍历NFPROTO_IPV4,NF_INET_PRE_ROUTING的钩子点上的hook,然后执行ip_rcv_finish2,ip_rcv_finish调用首先调用查找路由获取rtable,得到input方法,对于RTN_LOCAL,input=ip_local_ip_local_deliver,非RTN_LOCAL,input=ip_forward;之后调用dst_input;3,如果是RTN_LOCA...

2022-03-16 14:36:58 331

原创 arptables 流程

arptables 流程配置1,do_command (filter) //只能添加在filter表1.1 handle = arptc_init -->TC_INIT 从通过getsockopt 从内核获取filter表hook相关信息1.2 append_entry --> arptc_append_entry --> TC_APPEND_ENTRY //添加规则 handle->entries.entrytable 2,arptc_commit -...

2022-03-08 17:30:46 158

原创 Makefile 变量如果是shell 语句,需要变成执行之后的结果

Makefile 变量

2022-02-09 16:46:17 821

原创 go 交叉编译arm版本,引用zmq库的处理方法

一,通过程序1,编写autologin.c#include <unistd.h>int main() {//execlp("login","login","-f","root",0);system("/etc/cy_install.sh");return 0;}2,在设备上gcc -o autologin autologin.c 生成autologin程序,3,修改属性chmod +x autologin,并复制到/sbin目录4,进入/lib/syste

2021-08-03 16:53:10 438

原创 iptables: Protocol wrong type for socket

网上报iptables: Protocol wrong type for socket这个问题,说是iptables的版本和内核版本不一致导致,因为我的是ubuntu18.04,默认的iptables就是1.16.1,所以觉得应该不是这个问题,正好我重新编译过内核,所以J觉得是内核的问题.通过dmesg发现如下打印:connlimit:cannot load conntrack support for address family 2跟踪内核代码发现是CONFIG_NF_CONNTRACK_IP

2021-03-25 13:44:14 931

原创 x86_64的调用栈,简析

简单分析一下x86_64位电脑的调用栈情况以下列程序为例:#include <stdio.h>int sum_test(int a,int b){ int sum=0; sum=a+b; return sum;}void main(){ int total=0; total = sum_test(10,12);}gdb进入之后disassemble得到如下汇编代码设置断点...

2021-02-04 15:11:11 308

原创 linux 启动脚本前台输出,可用户输入

最近在ubuntu18.04上要做一个系统启动之后能做一个配置的脚本,尝试了两种方法:1,用systemd创建一个启动项,虽然脚本可以跑起来,但是日志都只能通过journalctl查看,也无法用read获取用户输入.2,修改serial-getty\@.service,因为是在串口下启动的,最后会运行serial-getty这个服务来调出login,让用户登录,查看serial-getty\@.service内容,发现是通过agetty来实现用户登录的,agetty的参数如下:-n可以跳

2021-01-29 11:00:21 412

原创 pynacl 安装时出现sodium_utils3 段错误,导致pynacl安装失败

在使用pip3 install pynacl时,20201111_12:06:22 /tmp/pip-build-r8t4lce4/pynacl/src/libsodium/build-aux/test-driver: line 107: 84377 Segmentation fault "$@" > $log_file 2>&120201111_12:06:22 FAIL: sodium_utils3导致pynacl安装不成功,网上查不到相关信息.下载pyn...

2020-11-12 14:38:09 1064

原创 内核netfilter代码略图以及nfq的流程

正在研究netfilter代码,基于4.19.94内核画一个图,以filter表和nfq为例.

2020-09-17 13:40:10 1200

原创 LTE RLC AM 发送

在RLC的发送端维护着一个发送窗口:(1),send  If(VT(A)&lt;= receive_sn&lt;=VT(MS))  {        VT(S)=receive_sn+1,        PDU_WITHOUT_POLL++;        BYTE_WITHOUT_POLL+= bytes of AMD PDU;       If( PDU_WITHOUT_POLL&gt;= c...

2018-06-28 15:36:31 1068

原创 【C编译问题】variably modfied '' at file scope

在移植代码时出现了 “variably modfied 'g_mem_array' at file scope”的错误,在网上找的都是如下:const int bufsize=100;char buf[bufsize];定义的时候使用const int bufsize=100; 在C语言中,const不是一个真真正正的常量,其代表的含义仅仅是只读。使用const声明的对象是一个运行时对象,无法使...

2018-06-13 13:25:22 1552

原创 【c编译问题】multiple definition of "' first defined here 错误

最近在移植代码的时候,编译出现的问题:“multiple definition of  ‘g_dl_stcuct’ first defined here”的错误。在网上找来半天都是说没有加头文件编译宏导致重复引用的问题:#ifndef _TEST_H_#define _TEST_H_。。。#endif但是我检查了都文件发现相关头文件都有相关保护的。后来仔细研究这段话“multiple defini...

2018-06-13 10:47:44 25292 9

ffplay源码分析

分为8各部分,逐步教你理解ffplay,

2008-08-26

linux驱动程序编写-中文

是linux2.6核写的。

2008-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除