⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wanrouter.h

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Configuration options defines. *//* general options */#define	WANOPT_OFF	0#define	WANOPT_ON	1#define	WANOPT_NO	0#define	WANOPT_YES	1/* intercace options */#define	WANOPT_RS232	0#define	WANOPT_V35	1/* data encoding options */#define	WANOPT_NRZ	0#define	WANOPT_NRZI	1#define	WANOPT_FM0	2#define	WANOPT_FM1	3/* link type options */#define	WANOPT_POINTTOPOINT	0	/* RTS always active */#define	WANOPT_MULTIDROP	1	/* RTS is active when transmitting *//* clocking options */#define	WANOPT_EXTERNAL	0#define	WANOPT_INTERNAL	1/* station options */#define	WANOPT_DTE		0#define	WANOPT_DCE		1#define	WANOPT_CPE		0#define	WANOPT_NODE		1#define	WANOPT_SECONDARY	0#define	WANOPT_PRIMARY		1/* connection options */#define	WANOPT_PERMANENT	0	/* DTR always active */#define	WANOPT_SWITCHED		1	/* use DTR to setup link (dial-up) */#define	WANOPT_ONDEMAND		2	/* activate DTR only before sending *//* frame relay in-channel signalling */#define	WANOPT_FR_ANSI		1	/* ANSI T1.617 Annex D */#define	WANOPT_FR_Q933		2	/* ITU Q.933A */#define	WANOPT_FR_LMI		3	/* LMI *//* PPP IP Mode Options */#define	WANOPT_PPP_STATIC	0#define	WANOPT_PPP_HOST		1#define	WANOPT_PPP_PEER		2/* CHDLC Protocol Options *//* DF Commmented out for now.#define WANOPT_CHDLC_NO_DCD		IGNORE_DCD_FOR_LINK_STAT#define WANOPT_CHDLC_NO_CTS		IGNORE_CTS_FOR_LINK_STAT#define WANOPT_CHDLC_NO_KEEPALIVE	IGNORE_KPALV_FOR_LINK_STAT*//* Port options */#define WANOPT_PRI 0#define WANOPT_SEC 1/* read mode */#define	WANOPT_INTR	0#define WANOPT_POLL	1/*---------------------------------------------------------------------------- * WAN Link Status Info (for ROUTER_STAT IOCTL). */typedef struct wandev_stat{	unsigned state;		/* link state */	unsigned ndev;		/* number of configured interfaces */	/* link/interface configuration */	unsigned connection;	/* permanent/switched/on-demand */	unsigned media_type;	/* Frame relay/PPP/X.25/SDLC, etc. */	unsigned mtu;		/* max. transmit unit for this device */	/* physical level statistics */	unsigned modem_status;	/* modem status */	unsigned rx_frames;	/* received frames count */	unsigned rx_overruns;	/* receiver overrun error count */	unsigned rx_crc_err;	/* receive CRC error count */	unsigned rx_aborts;	/* received aborted frames count */	unsigned rx_bad_length;	/* unexpetedly long/short frames count */	unsigned rx_dropped;	/* frames discarded at device level */	unsigned tx_frames;	/* transmitted frames count */	unsigned tx_underruns;	/* aborted transmissions (underruns) count */	unsigned tx_timeouts;	/* transmission timeouts */	unsigned tx_rejects;	/* other transmit errors */	/* media level statistics */	unsigned rx_bad_format;	/* frames with invalid format */	unsigned rx_bad_addr;	/* frames with invalid media address */	unsigned tx_retries;	/* frames re-transmitted */	unsigned reserved[16];	/* reserved for future use */} wandev_stat_t;/* 'state' defines */enum wan_states{	WAN_UNCONFIGURED,	/* link/channel is not configured */	WAN_DISCONNECTED,	/* link/channel is disconnected */	WAN_CONNECTING,		/* connection is in progress */	WAN_CONNECTED,		/* link/channel is operational */	WAN_LIMIT,		/* for verification only */	WAN_DUALPORT,		/* for Dual Port cards */	WAN_DISCONNECTING	/* link/channel is disconnecting */};/* 'modem_status' masks */#define	WAN_MODEM_CTS	0x0001	/* CTS line active */#define	WAN_MODEM_DCD	0x0002	/* DCD line active */#define	WAN_MODEM_DTR	0x0010	/* DTR line active */#define	WAN_MODEM_RTS	0x0020	/* RTS line active *//*---------------------------------------------------------------------------- * WAN interface (logical channel) configuration (for ROUTER_IFNEW IOCTL). */typedef struct wanif_conf{	unsigned magic;			/* magic number */	unsigned config_id;		/* configuration identifier */	char name[WAN_IFNAME_SZ+1];	/* interface name, ASCIIZ */	char addr[WAN_ADDRESS_SZ+1];	/* media address, ASCIIZ */	char usedby[USED_BY_FIELD];	/* used by API or WANPIPE */	unsigned idle_timeout;		/* sec, before disconnecting */	unsigned hold_timeout;		/* sec, before re-connecting */	unsigned cir;			/* Committed Information Rate fwd,bwd*/	unsigned bc;			/* Committed Burst Size fwd, bwd */	unsigned be;			/* Excess Burst Size fwd, bwd */ 	unsigned char enable_IPX;	/* Enable or Disable IPX */	unsigned char inarp;		/* Send Inverse ARP requests Y/N */	unsigned inarp_interval;	/* sec, between InARP requests */	unsigned long network_number;	/* Network Number for IPX */	char mc;			/* Multicast on or off */	char local_addr[WAN_ADDRESS_SZ+1];/* local media address, ASCIIZ */	unsigned char port;		/* board port */	unsigned char protocol;		/* prococol used in this channel (TCPOX25 or X25) */	char pap;			/* PAP enabled or disabled */	char chap;			/* CHAP enabled or disabled */	unsigned char userid[511];	/* List of User Id */	unsigned char passwd[511];	/* List of passwords */	unsigned char sysname[31];	/* Name of the system */	unsigned char ignore_dcd;	/* Protocol options: */	unsigned char ignore_cts;	/*  Ignore these to determine */	unsigned char ignore_keepalive;	/*  link status (Yes or No) */	unsigned char hdlc_streaming;	/*  Hdlc streaming mode (Y/N) */	unsigned keepalive_tx_tmr;	/* transmit keepalive timer */	unsigned keepalive_rx_tmr;	/* receive  keepalive timer */	unsigned keepalive_err_margin;	/* keepalive_error_tolerance */	unsigned slarp_timer;		/* SLARP request timer */	unsigned char ttl;		/* Time To Live for UDP security */	char interface;			/* RS-232/V.35, etc. */	char clocking;			/* external/internal */	unsigned bps;			/* data transfer rate */	unsigned mtu;			/* maximum transmit unit size */} wanif_conf_t;#ifdef	__KERNEL__/****** Kernel Interface ****************************************************/#include <linux/fs.h>		/* support for device drivers */#include <linux/proc_fs.h>	/* proc filesystem pragmatics */#include <linux/inet.h>		/* in_aton(), in_ntoa() prototypes */#include <linux/netdevice.h>	/* support for network drivers *//*---------------------------------------------------------------------------- * WAN device data space. */typedef struct wan_device{	unsigned magic;			/* magic number */	char* name;			/* -> WAN device name (ASCIIZ) */	void* private;			/* -> driver private data */	unsigned config_id;		/* Configuration ID */					/****** hardware configuration ******/	unsigned ioport;		/* adapter I/O port base #1 */	char S514_cpu_no[1];		/* PCI CPU Number */	unsigned char S514_slot_no;	/* PCI Slot Number */	unsigned long maddr;		/* dual-port memory address */	unsigned msize;			/* dual-port memory size */	int irq;			/* interrupt request level */	int dma;			/* DMA request level */	unsigned bps;			/* data transfer rate */	unsigned mtu;			/* max physical transmit unit size */	unsigned udp_port;              /* UDP port for management */        unsigned char ttl;		/* Time To Live for UDP security */	unsigned enable_tx_int; 	/* Transmit Interrupt enabled or not */	char interface;			/* RS-232/V.35, etc. */	char clocking;			/* external/internal */	char line_coding;		/* NRZ/NRZI/FM0/FM1, etc. */	char station;			/* DTE/DCE, primary/secondary, etc. */	char connection;		/* permanent/switched/on-demand */	char signalling;		/* Signalling RS232 or V35 */	char read_mode;			/* read mode: Polling or interrupt */	char new_if_cnt;                /* Number of interfaces per wanpipe */ 	char del_if_cnt;		/* Number of times del_if() gets called */	unsigned char piggyback;        /* Piggibacking a port */	unsigned hw_opt[4];		/* other hardware options */					/****** status and statistics *******/	char state;			/* device state */	char api_status;		/* device api status */	struct net_device_stats stats; 	/* interface statistics */	unsigned reserved[16];		/* reserved for future use */	unsigned long critical;		/* critical section flag */					/****** device management methods ***/	int (*setup) (struct wan_device *wandev, wandev_conf_t *conf);	int (*shutdown) (struct wan_device *wandev);	int (*update) (struct wan_device *wandev);	int (*ioctl) (struct wan_device *wandev, unsigned cmd,		unsigned long arg);	int (*new_if) (struct wan_device *wandev, struct net_device *dev,		wanif_conf_t *conf);	int (*del_if) (struct wan_device *wandev, struct net_device *dev);					/****** maintained by the router ****/	struct wan_device* next;	/* -> next device */	struct net_device* dev;		/* list of network interfaces */	unsigned ndev;			/* number of interfaces */	struct proc_dir_entry *dent;	/* proc filesystem entry */} wan_device_t;/* Public functions available for device drivers */extern int register_wan_device(wan_device_t *wandev);extern int unregister_wan_device(char *name);unsigned short wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev);int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev);/* Proc interface functions. These must not be called by the drivers! */extern int wanrouter_proc_init(void);extern void wanrouter_proc_cleanup(void);extern int wanrouter_proc_add(wan_device_t *wandev);extern int wanrouter_proc_delete(wan_device_t *wandev);extern int wanrouter_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg);/* Public Data */extern wan_device_t *router_devlist;	/* list of registered devices */#endif	/* __KERNEL__ */#endif	/* _ROUTER_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -