
tc_code_analysis&qdisc
文章平均质量分 79
csalp
这个作者很懒,什么都没留下…
展开
-
[转载]Netlink 套接字
<br />Netlink 用于在内核模块与在用户地址空间中的进程之间传递消息的。它包含了用于用户进程的基于标准套接字的接口和用于内核模块的一个内部核心 API。<br />Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态转载 2011-05-30 20:10:00 · 701 阅读 · 0 评论 -
系统调用(追踪sys_socket)
<br />系统调用(追踪sys_socket)<br />在include/linux/syscalls.h中定义了sys_socket函数的函数原型(prototype)<br />asmlinkage long sys_socket(int, int, int);<br />系统调用函数必须满足:<br />asmlinkage long sys_##function-name(##args){ ,return ret}<br /> <br />在include/linux/unistd.h中,将sy原创 2011-05-30 19:36:00 · 5167 阅读 · 0 评论 -
TC执行过程解析
查看iproute2源码文件中的tc文件夹:先看makefileTCOBJ= tc.o tc_qdisc.o tc_class.o tc_filter.o tc_util.o / m_police.o m_estimator.o m_action.o m_ematch.o / emp_ematch.yacc.o emp_ematch.lex.oinclude ../ConfigTCMODULES :=TCMODULES += q_fifo.oTCMODULES += q_sfq.oT原创 2011-05-30 18:45:00 · 4548 阅读 · 1 评论 -
[转载]Linux Kconfig及Makefile学习
<br />内核源码树的目录下都有两个文档 Kconfig (2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这个.config,就知道了用户的选择。<br /><br />上面的内容说明了,Kconfig就是对应着内核的配置菜原创 2011-05-29 01:03:00 · 599 阅读 · 0 评论 -
如何阅读别人的代码
代码阅读的必要性阅读别人的代码作为开发人员是一件经常要做的事情。一个是学习新的编程语言的时候通过阅读别人的代码是一个最好的学习方法,另外是积累编程经验。如果你有机会阅读一些操作系统的代码会帮助你理解一些基本的原理。还有就是在你作为一个质量保证人员或一个小领导的时候如果你要做白盒测试的时候没有阅读代码的能力是不能完成相应的任务。最后一个就是如果你中途接手一个项目的时候或给一个项目做售后服务的时候是要有阅读代码的能力的。收集所有可能收集的材料阅读代码要做的第一件事情是收集所有和项目相关的资料。比如你要做一个项目转载 2011-05-26 17:12:00 · 858 阅读 · 0 评论 -
LINUX TC:HTB相关源码
<br /> <br />3、 什么时候调用qdisc_create函数<br />在函数tc_modify_qdisc中,会调用qdisc_create函数,而tc_modify_qdisc这个函数在pktsched_init(void)中,被注册到系统中<br />CODE<br /><br />static int __init pktsched_init(void)<br />{<br /> int err;<br /> <br /> err = re原创 2011-05-23 19:46:00 · 4567 阅读 · 0 评论 -
LINUX TC:HTB相关源码
(所有的这一切,写到不好,权当自己写着玩玩,聊以自慰-----csalp&cssalp)2、 Qdisc在linux中,向某个设备添加以qidsc的命令如下:tc qdisc add dev DEV [parent qdisc_id root] [handle qdisc_id] qdisc [qdisc parameters]例如:tc qdisc add dev eth0 root handle 1: htb 这里向eth0添加了一个htb,为root,并且id=1注意这里的i原创 2011-05-23 17:47:00 · 4036 阅读 · 0 评论 -
LINUX TC:HTB相关源码
HTB(hierarchy token buffer)是linux tc(traffic control)模块中的排队队列的一种。它的配置比CBQ要简单.同时实现功能也很强大。下面,就来看看,HTB在linux中的源码。先从module_init函数看起(遵从fudan_abc的建议)static int __init htb_module_init(void){ return register_qdisc(&htb_qdisc_ops);}上面的code会调用register_qdisc函数,原创 2011-05-23 14:57:00 · 5686 阅读 · 0 评论