net_device——type字段

struct net_device {
	...
	unsigned short type;
	...
}

这个字段标识了设备所述的类型:Ethernet等。

定义在 include/uapi/linux/if_arp.h中:

 28 /* ARP protocol HARDWARE identifiers. */
 29 #define ARPHRD_NETROM   0               /* from KA9Q: NET/ROM pseudo    */
 30 #define ARPHRD_ETHER    1               /* Ethernet 10Mbps              */
 31 #define ARPHRD_EETHER   2               /* Experimental Ethernet        */
 32 #define ARPHRD_AX25     3               /* AX.25 Level 2                */
 33 #define ARPHRD_PRONET   4               /* PROnet token ring            */
 34 #define ARPHRD_CHAOS    5               /* Chaosnet                     */
 35 #define ARPHRD_IEEE802  6               /* IEEE 802.2 Ethernet/TR/TB    */
 36 #define ARPHRD_ARCNET   7               /* ARCnet                       */
 37 #define ARPHRD_APPLETLK 8               /* APPLEtalk                    */
 38 #define ARPHRD_DLCI     15              /* Frame Relay DLCI             */
 39 #define ARPHRD_ATM      19              /* ATM                          */
 40 #define ARPHRD_METRICOM 23              /* Metricom STRIP (new IANA id) */
 41 #define ARPHRD_IEEE1394 24              /* IEEE 1394 IPv4 - RFC 2734    */
 42 #define ARPHRD_EUI64    27              /* EUI-64                       */
 43 #define ARPHRD_INFINIBAND 32            /* InfiniBand                   */
 44 
 45 /* Dummy types for non ARP hardware */
 46 #define ARPHRD_SLIP     256
 47 #define ARPHRD_CSLIP    257
 48 #define ARPHRD_SLIP6    258
 49 #define ARPHRD_CSLIP6   259
 50 #define ARPHRD_RSRVD    260             /* Notional KISS type           */
 51 #define ARPHRD_ADAPT    264
 52 #define ARPHRD_ROSE     270
 53 #define ARPHRD_X25      271             /* CCITT X.25                   */
 54 #define ARPHRD_HWX25    272             /* Boards with X.25 in firmware */
 55 #define ARPHRD_CAN      280             /* Controller Area Network      */
 56 #define ARPHRD_PPP      512
 57 #define ARPHRD_CISCO    513             /* Cisco HDLC                   */
 58 #define ARPHRD_HDLC     ARPHRD_CISCO
 59 #define ARPHRD_LAPB     516             /* LAPB                         */
 60 #define ARPHRD_DDCMP    517             /* Digital's DDCMP protocol     */
 61 #define ARPHRD_RAWHDLC  518             /* Raw HDLC                     */
 62 
 63 #define ARPHRD_TUNNEL   768             /* IPIP tunnel                  */
 64 #define ARPHRD_TUNNEL6  769             /* IP6IP6 tunnel                */
 65 #define ARPHRD_FRAD     770             /* Frame Relay Access Device    */
 66 #define ARPHRD_SKIP     771             /* SKIP vif                     */
 67 #define ARPHRD_LOOPBACK 772             /* Loopback device              */
 68 #define ARPHRD_LOCALTLK 773             /* Localtalk device             */
 69 #define ARPHRD_FDDI     774             /* Fiber Distributed Data Interface */
 70 #define ARPHRD_BIF      775             /* AP1000 BIF                   */
 71 #define ARPHRD_SIT      776             /* sit0 device - IPv6-in-IPv4   */
 72 #define ARPHRD_IPDDP    777             /* IP over DDP tunneller        */
 73 #define ARPHRD_IPGRE    778             /* GRE over IP                  */
 74 #define ARPHRD_PIMREG   779             /* PIMSM register interface     */
 75 #define ARPHRD_HIPPI    780             /* High Performance Parallel Interface */
 76 #define ARPHRD_ASH      781             /* Nexus 64Mbps Ash             */
 77 #define ARPHRD_ECONET   782             /* Acorn Econet                 */
 78 #define ARPHRD_IRDA     783             /* Linux-IrDA                   */
 79 /* ARP works differently on different FC media .. so  */
 80 #define ARPHRD_FCPP     784             /* Point to point fibrechannel  */
 81 #define ARPHRD_FCAL     785             /* Fibrechannel arbitrated loop */
 82 #define ARPHRD_FCPL     786             /* Fibrechannel public loop     */
 83 #define ARPHRD_FCFABRIC 787             /* Fibrechannel fabric          */
 84         /* 787->799 reserved for fibrechannel media types */
 85 #define ARPHRD_IEEE802_TR 800           /* Magic type ident for TR      */
 86 #define ARPHRD_IEEE80211 801            /* IEEE 802.11                  */
 87 #define ARPHRD_IEEE80211_PRISM 802      /* IEEE 802.11 + Prism2 header  */
 88 #define ARPHRD_IEEE80211_RADIOTAP 803   /* IEEE 802.11 + radiotap header */
 89 #define ARPHRD_IEEE802154         804
 90 #define ARPHRD_IEEE802154_MONITOR 805   /* IEEE 802.15.4 network monitor */
 91 
 92 #define ARPHRD_PHONET   820             /* PhoNet media type            */
 93 #define ARPHRD_PHONET_PIPE 821          /* PhoNet pipe header           */
 94 #define ARPHRD_CAIF     822             /* CAIF media type              */
 95 #define ARPHRD_IP6GRE   823             /* GRE over IPv6                */
 96 #define ARPHRD_NETLINK  824             /* Netlink header               */
 97 
 98 #define ARPHRD_VOID       0xFFFF        /* Void type, nothing is known */
 99 #define ARPHRD_NONE       0xFFFE        /* zero header length */


我本来希望通过这个字段来识别我的网卡,如lo、eth0、eth1、virbr0等。

没想到 lo 是 772;eth0 和 eth1 是 1 也没毛病;至于 virbr0 也是 1 就是我不清楚的了;更意外的是还有一个:virbr0-nic 也是 1。

只能想其他办法来区分网卡了。

我希望找到真实的,可以收发数据的网卡转发,因为我不确定,网卡有多少个,网卡名字叫什么,所以我才要排除 lo 和 虚拟网卡等设备,避免发送失败。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值