免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 15147 | 回复: 17
打印 上一主题 下一主题

关于网卡驱动统计流量的数据结构struct net_device_stats [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-20 19:28 |只看该作者 |倒序浏览
用于统计网络设备的数据结构如下所示。
rx应该是代表该网卡接受的包的相关统计,这个应该没问题。
需要明确的一个问题是:对于tx,一般情况下代表是该网卡发送包的统计。那么如果在一个多端口的网络设备中,由端口A发出,也就是发到和端口A直接相连的设备上的流量应该统计在tx里。对于由端口A转发到同一网络设备的另外一个端口的流量,是否记在tx中呢。

   struct net_device_stats
    {
        unsigned long rx_packets; /* total packets received   */
        unsigned long tx_packets; /* total packets transmitted    */
        unsigned long rx_bytes; /* total bytes received     */
        unsigned long tx_bytes; /* total bytes transmitted  */
        unsigned long rx_errors; /* bad packets received     */
        unsigned long tx_errors; /* packet transmit problems */
        unsigned long rx_dropped; /* no space in linux buffers    */
        unsigned long tx_dropped;/* no space available in linux  */
        unsigned long multicast; /* multicast packets received   */
        unsigned long   collisions;

        /* detailed rx_errors: */
        unsigned long rx_length_errors;
        unsigned long rx_over_errors; /* receiver ring buff overflow  */
        unsigned long rx_crc_errors;/* recved pkt with crc error */
        unsigned long rx_frame_errors;/* recv'd frame alignment error */
        unsigned long rx_fifo_errors; /* recv'r fifo overrun      */
        unsigned long rx_missed_errors;/* receiver missed packet  */

    /* detailed tx_errors */
    unsigned long   tx_aborted_errors;
    unsigned long   tx_carrier_errors;
    unsigned long   tx_fifo_errors;
    unsigned long   tx_heartbeat_errors;
    unsigned long   tx_window_errors;

    /* for cslip etc */
    unsigned long   rx_compressed;
    unsigned long   tx_compressed;
};

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2008-11-20 19:42 |只看该作者
简单测试的情况来看tx应该指的是该网卡发送到线上的流量

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2008-11-21 11:28 |只看该作者
通常我们在计算机上看到的网卡有发送和接受的包。对于一台多网卡主机中,其中一个网卡发送的数据包是否包括这两个方面呢:
1. 由网卡所在的宿主机构造并发送的包
2. 由其他网卡转发到该网卡,并由该网卡发送的包。

对于第2个,我还不太确定

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2008-11-21 12:54 |只看该作者
再次测试了一下:
由其他网卡转发到该网卡,并由该网卡发送的包也算在了tx内。都统计为该网卡发送的数据

论坛徽章:
0
5 [报告]
发表于 2011-10-31 15:09 |只看该作者
本帖最后由 iceyes342 于 2011-10-31 15:11 编辑

net_device_stats是一个网络设备(或者说是一个网络接口)只有一个这样的数据结构吗?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
6 [报告]
发表于 2011-10-31 15:38 |只看该作者
回复 6# iceyes342

这个函数指针应该指向具体网卡驱动中的对应实现。

因此,网卡驱动中,对哪些成员更新了,哪些就是有效的

论坛徽章:
0
7 [报告]
发表于 2011-10-31 15:44 |只看该作者
回复 6# Godbach


    那如果驱动中没有对net_device_stats里的某个属性就行更新,那么,内核会处理吗?比如rx_dropped这样的属性,还是说这个属性就不更新了……

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
8 [报告]
发表于 2011-10-31 16:26 |只看该作者
回复 7# iceyes342
我的理解,既然没更新,那它的值就一直不变吧

论坛徽章:
0
9 [报告]
发表于 2011-10-31 16:53 |只看该作者
回复 8# Godbach


    恩。谢谢。因为我看一个驱动没有修改rx_dropped的值,但是ifconfig的时候确实可以看到这个网卡的dropped对应的值在变化,不知道是怎么回事……

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
10 [报告]
发表于 2011-11-01 10:16 |只看该作者
回复 9# iceyes342

那就不对了。 ifconfig 基本上也是读取驱动中统计的结果
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP