|

楼主 |
发表于 2006-12-12 18:07:33
|
显示全部楼层
蓝色字体的:
- typedef struct NGifnet_S {
- struct NGifnet_S *if_next; /* link */
- #define NG_IFT_OTHER 0
- #define NG_IFT_ETHER 1 /* ethernet */
- #define NG_IFT_LOOP 2 /* loopback */
- #define NG_IFT_PPP 3 /* ppp */
- #define NG_IFT_SLIP 4 /* slip */
- #define NG_IFT_AUTOSTART 0x8000 /* used only at init time */
- int if_flags; /* flags */
- [color=blue]#define NG_IFF_UP 0x0001 /* interface is up */
- #define NG_IFF_BROADCAST 0x0002 /* broadcast address valid */
- #define NG_IFF_DEBUG 0x0004 /* turn on debugging */
- #define NG_IFF_LOOPBACK 0x0008 /* is a loopback net */
- #define NG_IFF_POINTOPOINT 0x0010 /* interface is point-to-point link */
- #define NG_IFF_EXTNAT 0x0020 /* external NAT interface */
- #define NG_IFF_RUNNING 0x0040 /* resources allocated */
- #define NG_IFF_NOARP 0x0080 /* no address resolution protocol */
- #define NG_IFF_PROMISC 0x0100 /* receive all packets */
- #define NG_IFF_ALLMULTI 0x0200 /* receive all multicast packets */
- #define NG_IFF_OACTIVE 0x0400 /* transmission in progress */
- #define NG_IFF_SIMPLEX 0x0800 /* can't hear own transmissions */
- #define NG_IFF_MULTICAST 0x8000 /* supports multicast */][/color]
- /* flags set internally only: */
- #define NG_IFF_CANTCHANGE \
- (NG_IFF_BROADCAST|NG_IFF_LOOPBACK|NG_IFF_POINTOPOINT|NG_IFF_RUNNING|\
- NG_IFF_PROMISC|NG_IFF_ALLMULTI|NG_IFF_OACTIVE|NG_IFF_SIMPLEX|NG_IFF_MULTICAST)
- /* address */
- NGuint if_addr;
- NGuint if_dstaddr;
- NGuint if_net;
- NGuint if_netmask;
- NGuint if_subnet;
- NGuint if_subnetmask;
- NGuint if_netbroadcast;
- NGuint if_broadaddr;
- struct NGinmulti_S *if_multiaddrs;
- char *if_drvname;
- int if_mtu;
- u_long if_bps;
- NGqueue if_outq;
- /* driver functions */
- int (*if_open_f)( struct NGifnet_S *ifnetp);
- int (*if_close_f)( struct NGifnet_S *ifnetp);
- int (*if_output_f)( struct NGifnet_S *ifnetp, NGbuf *bufp, NGuint dst_addr);
- void (*if_start_f)( struct NGifnet_S *ifnetp);
- int (*if_cntl_f)( struct NGifnet_S *ifnetp, int cmd, int option, void *arg);
- void (*if_setmulti_f)( struct NGifnet_S *ifnetp);
- /* statistics */
- u_long if_ibytes;
- u_long if_ierrors;
- u_long if_imcasts;
- u_long if_ipackets;
- u_long if_iqdrops;
- u_long if_noproto;
- u_long if_obytes;
- u_long if_oerrors;
- u_long if_omcasts;
- u_long if_opackets;
- u_long if_oqdrops;
- NGnode if_buflist;
- int if_dev1;
- int if_dev2;
- void *if_devptr1;
- void *if_devptr2;
- } NGifnet
复制代码 |
|