필 드 |
내 용 |
char name[IFNAMSIZ] |
네트워크 디바이스의 인터페이스 이름 |
unsigned long rmem_end |
공유된 받기를 위한 메모리의 끝 주소 |
unsigned long rmem_start |
공유된 받기를 위한 메모리의 시작 주소 |
unsigned long mem_end |
공유된 메모리의 끝 주소 |
unsigned long mem_start |
공유된 메모리의 시작 주소\ |
unsigned long base_addr |
디바이스의 I/O를 위한 주소 |
unsigned int irq |
디바이스에 할당된 IRQ(인터럽트) 번호 |
unsigned char if_port |
인터페이스를 위한 포트 타입(BNC, AUI, TP, etc.) |
unsigned char dma |
DMA 채널 번호(DMA master로 동작하는 PCI 카드는 해당 없음) |
unsigned long state |
디바이스의 현재 상태 |
struct net_device *next |
네트워크 디바이스들의 연결 리스트 |
int (*init)(struct net_device *dev) |
네트워크 디바이스의 초기화 함수에 대한 포인터(한번만 호출됨 - register_netdevice() 함수에서 호출함) |
struct net_device *next_sched |
네트워크 디바이스 구조체들의 다음 스케줄링 연결 포인터 |
int ifindex |
인터페이스의 index |
int iflink |
인터페이스의 링크 |
struct net_device_stats * (*get_stats)(struct net_device *dev) |
디바이스의 statistics(통계정보)알려주는 함수에 대한 포인터. |
struct iw_statistics * (*get_wireless_stats)(struct net_device *dev) |
디바이스의 wireless statistics 알려주는 함수에 대한 포인터 |
unsigned long trans_start |
마지막으로 Tx를 한 시점으로 jiffies값을 가진다. |
unsigned long last_rx |
마지막으로 Rx를 한 시점을 나타낸다. |
unsigned short flags |
인터페이스의 flag이다. |
unsigned short gflags |
|
unsigned short mtu |
최대 전송 단위를 byte 단위로 나타냄 |
unsigned short type |
인터페이스 하드웨어 타입 |
unsigned short hard_header_len |
하드웨어 헤더의 길이 |
void *priv |
디바이스 드라이버의 private data에 대한포인터( file object의 priv와 같은 역할을 할 수 있다.) |
struct net_device *master |
이 디바이스가 속해있는 그룹의 master 디바이스에 대한 포인터 |
unsigned char broadcast[MAX_ADDR_LEN] |
하드웨어 broadcast 주소 |
unsigned char pad |
dev_addr이 8bytes의 단위로 정렬되도록 만든다. |
unsigned char dev_addr[MAX_ADDR_LEN] |
하드웨어 주소 |
unsigned char addr_len |
하드웨어 주소의 길이 |
struct dev_mc_list *mc_list |
Multicast MAC 주소에 대한 포인터 |
int mc_count |
현재 가지고 있는 multicast의 수를 유지한다. |
int promiscuity |
Promiscous mode를 표시(네트워크 상의 모든 패킷을 다 받는다.) |
int allmulti |
모든 multicast되는 패킷을 다 받는다. |
int watchdog_timeo |
Watch dog timer의 timeout 설정 |
struct timer_list |
Watchdog_timer의 리스트 연결 |
void *atalk_ptr |
Apple Talk link (이하의 4개 필드는 protocol에 의존한다. |
void *ip_ptr |
IPv4에 특수한 데이터의 포인터 |
void *dn_ptr |
DECnet에 특수한 데이터의 포인터 |
void *ipv6_ptr |
IPv6에 특수한 데이터의 포인터 |
void *ec_ptr |
Econet에 특수한 데이터의 포인터 |
struct Qdisc *qdisc |
네트워크 디바이스 구조체와 관련된 Qdisc 구조체는 패킷의 보내기와 받기를 위한 패킷의 큐를 말하는 것으로 해당 디바이스 드라이버와 연결 되어있다. 패킷을 보내거나 받기를 원하면 이곳에 패킷을 두고, 스캐줄링을 요청하면 해당 디바이스 드라이버나 상위의 프로토콜이 처리해 줄 것이다. |
struct Qdisc *qdisc_sleeping |
현재 sleeping상태에 있는 Qdisc구조체 |
struct Qdisc *qdisc_list |
Qdisk의 리스트에 대한 포인터 |
struct Qdisc *qdisc_ingress |
Qdisk의 진입점에 대한 포인터s |
unsigned long tx_queue_len |
Tx를 위한 패킷의 queue에 최대로 허용된 frame들의 수 |
spinlock_t xmit_lock |
hard_start_xmit()함수에서 사용할 lock |
int xmit_lock_owner |
hard_start_xmit()함수를 호출하고 있는 CPU의 ID |
spinlock_t queue_lock |
디바이스의 queue lock |
atomic_t refcnt |
디바이스에 대한reference count |
int deadbeaf |
디바이스가 현재 등록되지는 않았으나, 사용자가 있음을 말해주는 flag이다. |
int features |
네트워크 디바이스의 특성(feature)을 표시한다. |
void (*uninit)(struct net_device *dev) |
네트워크로부터 detache된 후에 불려지는 함수로 init()함수와 반대되는 일을 한다. (unregister_netdevice()에서 호출함) |
void (*destructor)(struct net_device *dev) |
마지막 사용자의 reference가 사라지고난 후에 호출된다. |
int (*open)(struct net_device *dev) |
디바이스의 open() 함수 |
int (*stop)(struct net_device *dev) |
디바이스의 stop() 함수 |
int (*hard_start_xmit)(struct sk_buff *skb, struct net_device *dev) |
디바이스에 데이터의 전송을 위해서 커널이 호출하는 함수 |
int (*hard_header)(struct sk_buff *skb, struct net_device *dev, unsigned short type, void *daddr, void *saddr, unsigned len) |
하드웨어 주소를 만들기 위해서 커널이 호출하는 함수(기본적으로 지원되는 함수이외에 하드웨어 헤더를 만들고자 할 때 사용됨) |
int (*rebuild_header)(struct sk_buff *skb) |
하드웨어 헤더를 생성하는 함수 |
void (*set_multicast_list)(struct net_device *dev) |
멀티 캐스팅이 지원되는 경우에 멀티 캐스트 리스트를 생성하기 위해서 호출됨 |
int (*set_mac_address)(struct net_device *dev, void *addr) |
하드웨어의 MAC 주소를 변경하고자 할 때 호출됨. 참고로 Ethernet의 경우는 고정된 하드웨어 주소를 사용하는 경우가 많음 |
int (*do_ioctl)(struct net_device *dev, struct ifreq *ifr, int cmd) |
디바이스 드라이버에 대한 ioctl() 메쏘드 함수 |
int (*set_config)(struct net_device *dev, struct ifmap *map) |
하드웨어 설정을 바꾸기 위해서 호출됨 |
int (*hard_header_cache)(struct neighbour *neigh |
하드웨어에서 유지하는 이웃에 있는 하드웨어 주소를 관리하는 함수에 대한 포인터 |
void (*header_cache_update)(struct hh_cache *bh, struct net_device *dev, unsigned char *haddr) |
하드웨어에서 유지하는 이웃에 있는 하드웨어 주소를 업데이트 해주는 함수에 대한 포인터 |
int (*change_mtu)(struct net_device *dev, int new_mtu) |
경로(Path)에서 지원하는 MTU(Maximum Transfer Unit)를 변경하는 함수 |
void (*tx_timeout)(struct net_device *dev) |
Tx timeout이 될 경우에 호출되는 함수에 대한 포인터 |
int (*hard_header_parse)(struct sk_buff *skb, unsigned char *haddr) |
하드웨어 주소를 분석(parse)하기 위해서 사용되는 함수에 대한 포인터 |
int (*neigh_setup)(struct net_device *dev, struct neigh_parms *) |
이웃(neighbour)에 대한 정보를 구성하기 위해서 호출되는 함수에 대한 포인터 |
int (*accept_fastpath)(struct net_device *, struct dst_entry *) |
하드웨어에서 지원하는 목적지 엔트리(destination entry)를 찾기 위해서 호출되는 함수에 대한 포인터 |
struct module *owner |
모듈의 사용자를 표시함 |
struct net_bridge_port *br_port |
네트워크 bridge의 port를 나타냄 |
rwlock_t fastpath_lock |
Fast path에서 사용되는 lock |
struct dst_entry *fastpath[NETDEV_FASTROUTE_HMASK + 1] |
Fast path에서 사용되는 목적지 엔트리의 배열에 대한 포인터 |
struct divert_blk *divert |
Ethernet frame을 다른 곳으로 보내기 위해서 사용되는 divert_blk 구조체에 대한 포인터로서 TCP 및 UDP에 대한 목적지(destination)와 시작지(source)에 대한 port 번호와 프로토콜 번호를 가지는 필드로 구성되어 있다. |