blob: 43ac97a9a9256d9430230e132d99f8d71c3747e6 [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001/************************************************************************
2*¹¦ÄܽéÉÜ£º×ÔÑÐʵÏÖµÄioctl½Ó¿Ú²ÎÊý¶¨Òå
3*¸ºÔðÈË£º
4*±¸·ÝÈË£º
5*ÐÞ¸ÄÈÕ£º
6*ÐÞ¸ÄÄÚÈÝ£º
7*°æ±¾ºÅ£º
8************************************************************************/
9
10#ifndef __NIOCTL_H_
11#define __NIOCTL_H_
12
13
14#define NIOCTL_MAGIC 'x'
15#define NIOCTL_MAX_NR 32 //IOCTL¿ÉÓÃÃüÁîµÄ×î´ó¸öÊý
16#define NIOCTL_MAX_MSGLEN 128 //×Ö·û´®ÀàÐͲÎÊýÖµµÄ×î´ó³¤¶È
17#define NIOCTL_MAX_NAMELEN 20 //²ÎÊýÃû³ÆµÄ×î´ó³¤¶È
18#define NETIOCTL_MAJOR 222 //ioctlÉ豸½Úµã
19
20/*
21 ͨÓÃioctlµÄ²ÎÊýÀàÐÍ£¬µ±´ÓÄں˷µ»ØÓ¦ÓÃʱ£¬ÔÚbufÖзµ»Ø²Ù×÷½á¹û¡£
22*/
23
24typedef struct
25{
26 unsigned int size; //×Ö·û´®ÀàÐͲÎÊýµÄ³¤¶È£¬¶ÔÓÚÕûÐͲÎÊý£¬¸ÃÖµ½¨Ò鸳ֵΪ0
27 char name[NIOCTL_MAX_NAMELEN]; //²ÎÊýÃû³Æ£¬ÀýÈçfastnat¡¢fastbr¡¢leak
28 unsigned char buf[NIOCTL_MAX_MSGLEN]; //×Ö·û´®ÀàÐͲÎÊýÖµ£¬ÀýÈçon/off
29 void *data; //×Ô¶¨Òå½á¹¹Ìå
30 int value; //ÕûÐͲÎÊýÖµ£¬ÀýÈç0/1/2/3
31
32}__attribute__((packed)) ioctl_data;
33
34#define NIOCTL_READ _IO(NIOCTL_MAGIC,0)
35
36/*»ñÈ¡¶þ²ãÁÚ¾ÓÁбíÖÐmacµØÖ·ºÍ³ö¿Údevname*/
37
38#define NIOCGPCINFO _IOWR(NIOCTL_MAGIC,1,ioctl_data)
39
40/*»ñÈ¡ÍøÂçÉ豸tx¡¢rx¡¢dropµÈͳ¼Æ£¬ÍøÂçÉ豸״̬ÐÅÏ¢*/
41
42#define NIOCGSTATS _IOWR(NIOCTL_MAGIC,2,ioctl_data)
43
44/*ÉèÖÃÄں˲ÎÊýͨÓÃÃüÁÀýÈçfastnat/fastbr/leak/brmoniterµÈ¿ª¹Ø»ò¼¶±ð*/
45
46#define NIOCSKPARAM _IOWR(NIOCTL_MAGIC,3,ioctl_data)
47
48
49/*»ñÈ¡fastnat ×î´óÁ´½ÓÊý*/
50
51#define NIOCGFASTMAXLINKS _IOR(NIOCTL_MAGIC,7,ioctl_data)//È·¶¨ºóÐøÊÇ·ñ»¹ÒªÊ¹ÓÃ
52
53
54
55/*»ñÈ¡×Ô´ò¿ªÍ³¼Æ¿ª¹ØÖ®ºó£¬skb µÄµ±Ç°¸öÊý¡¢Ë²¼ä·åÖµµÈͳ¼ÆÐÅÏ¢¡¢skb¿½±´´ÎÊý¡¢skbÍ·À©Õ¹´ÎÊý
56skbÔÚÈíÖжÏÊÍ·Å´ÎÊý*/
57
58#define NIOCGSKBNUM _IOWR(NIOCTL_MAGIC,13,ioctl_data)
59
60/*ÉèÖÃÄÚºËskb dumpÆ¥ÅäÐÅÏ¢£¬ÀýÈçÆ¥ÅäÌØ¶¨macµØÖ·¡¢IPµØÖ·*/
61
62#define NIOCGSKBDUMP _IOR(NIOCTL_MAGIC,14,ioctl_data)
63
64/*ÉèÖÃÄÚºËtcpdump ¿ª¹Ø*/
65
66#define NIOCSTCPDUMP _IOR(NIOCTL_MAGIC,15,ioctl_data)
67
68/**/
69
70#define NIOCPDP _IOR(NIOCTL_MAGIC,17,ioctl_data)
71
72/**/
73
74#define NIOCGKPARAM _IOR(NIOCTL_MAGIC,19,ioctl_data)
75
76
77/*slab ÐÅÏ¢»ñÈ¡*/
78#define NIOCGSLAB _IOR(NIOCTL_MAGIC,21,ioctl_data)
79
80/*add by jiangjing,»ñÈ¡init_netÖÐËùÓÐÍøÂçÉ豸µÄÃû³ÆºÍ״̬ÐÅÏ¢*/
81#define NIOCGDEVLIST _IOR(NIOCTL_MAGIC, 22, ioctl_data)
82
83/*add by zhangpeimin£¬»ñÈ¡SKB FASTµ±Ç°Í³¼ÆÐÅÏ¢*/
84#define NIOCGSKBFAST _IOR(NIOCTL_MAGIC, 24, ioctl_data)
85
86#define NIOCGMAXMSG _IOR(NIOCTL_MAGIC, 25, ioctl_data)
87
88#define NIOCGPTYPE _IOR(NIOCTL_MAGIC, 26, ioctl_data)
89
90#define NIOCGPSINFO _IOR(NIOCTL_MAGIC, 27, ioctl_data)
91
92#define NIOCGHASH _IOR(NIOCTL_MAGIC, 28, ioctl_data)
93
94/*»ñÈ¡µ±Ç°TCP¶ª°üͳ¼ÆÐÅÏ¢*/
95#define NIOCGPKTLOST _IOR(NIOCTL_MAGIC, 29, ioctl_data)
96
97/*»ñÈ¡±¾µØTCPÌ×½Ó×Öͳ¼ÆÐÅÏ¢*/
98#define NIOCGTCPSOCKSTATS _IOR(NIOCTL_MAGIC, 30, ioctl_data)
99
100#endif //end _ZXIC_IOCTL_H_
101