Chinaunix
标题:
关于qos,关于Qdisc,
[打印本页]
作者:
drivemyself
时间:
2016-04-20 16:48
标题:
关于qos,关于Qdisc,
小弟正在做一个小驱动,一个网卡的驱动,想使用内核中的qdisc,请问各位大侠,谁使用过qdisc。即,声明一个新的qdisc,不使用用户空间下的tc命令。另有问题:struct Qdisc 中enqueue 与struct Qdisc_ops中的enqueue有什么区别? dev_queue_xmit的时候是调用的谁?感谢感谢!
作者:
Godbach
时间:
2016-04-21 11:36
回复
1#
drivemyself
命令行 tc 可以用来配置 Qdisc。如果你不用 tc,那就就需要其他的配置方式。
dev_queue_xmit 通常是在 IP 层处理完报文之后调用的。
作者:
drivemyself
时间:
2016-04-21 13:39
回复
2#
Godbach
你好,如果我不是用tc 的话 写在驱动里 该怎样新建qdisc,qdisc里面的enqueue 和 qdisc_ops 里面的enqueue有什么区别?
作者:
Godbach
时间:
2016-04-21 13:46
回复
3#
drivemyself
具体我个人没有写过类似代码。不过你可以参考 kernel 总现成的创建 qdisc 的代码。
作者:
nswcfd
时间:
2016-04-22 10:47
qdisc->enque
作者:
nswcfd
时间:
2016-04-22 10:48
实际它的值也是从qdisc-ops上拷贝过来的。
作者:
nswcfd
时间:
2016-04-22 10:51
网卡驱动利用qdisc…… 这个有点颠覆三观的感觉…… 不过也不是不可能…… 只是qdisc的实现跟dev耦合的很紧密,楼主大概只需要enque/deque,得自己剥离
作者:
drivemyself
时间:
2016-04-23 19:17
回复
7#
nswcfd
大侠请留步。。。 我不能够为网卡驱动指定一个我自己的qdisc吗?不过我确实只是想使用enqueue,和 dequeue,另外,你说qdisc->enqueu是从qdisc->ops 拷过来 是怎么个意思?
作者:
nswcfd
时间:
2016-04-25 16:15
拷贝那句话的意思是,
http://lxr.free-electrons.com/source/net/sched/sch_generic.c#L606
qdisc是跟net_device关联的,当然device又跟某个driver关联。
比如说,网络设备eth0,底层驱动是intel e1000e,需要配置的qdisc是pfifo。
tc命令是配置到eth0上的,报文经过pfifo的enque/deque逻辑之后,才进入e1000e驱动的tx逻辑(*)。
看楼主的意思,是想在driver里面(也就是上文*的位置)再做一次enque/deque? <--- 也许完全理解错楼主的意思了。
作者:
xuefeihumei
时间:
2016-05-29 17:42
回复
9#
nswcfd
大侠虽然理解错了我的意思,但是从大侠给出的提示中,我已经找到解决办法,另外你说的那些也都是非常对的,感谢中!
作者:
nswcfd
时间:
2016-05-30 10:26
不客气,恭喜楼主解决了问题,方便的话可以分享一下思路。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2