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

📄 wanrouter.h

📁 linux得一些常用命令,以及linux环境下的c编程
💻 H
📖 第 1 页 / 共 2 页
字号:
/* 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/* ASY Mode Options */#define WANOPT_ONE 		1#define WANOPT_TWO		2#define WANOPT_ONE_AND_HALF	3#define WANOPT_NONE	0#define WANOPT_ODD      1#define WANOPT_EVEN	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#define WANOPT_TTY_SYNC  0#define WANOPT_TTY_ASYNC 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,	WAN_FT1_READY		/* FT1 Configurator Ready */};enum {	WAN_LOCAL_IP,	WAN_POINTOPOINT_IP,	WAN_NETMASK_IP,	WAN_BROADCAST_IP};/* '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 */	unsigned char if_down;		/* brind down interface when disconnected */	unsigned char gateway;		/* Is this interface a gateway */	unsigned char true_if_encoding;	/* Set the dev->type to true board protocol */	unsigned char asy_data_trans;     /* async API options */        unsigned char rts_hs_for_receive; /* async Protocol options */        unsigned char xon_xoff_hs_for_receive;	unsigned char xon_xoff_hs_for_transmit;	unsigned char dcd_hs_for_transmit;	unsigned char cts_hs_for_transmit;	unsigned char async_mode;	unsigned tx_bits_per_char;	unsigned rx_bits_per_char;	unsigned stop_bits;  	unsigned char parity; 	unsigned break_timer;        unsigned inter_char_timer;	unsigned rx_complete_length;	unsigned xon_char;	unsigned xoff_char;	unsigned char receive_only;	/*  no transmit buffering (Y/N) */} 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/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 */#if defined(LINUX_2_1) || defined(LINUX_2_4)	struct net_device_stats stats; 	/* interface statistics */#else	struct enet_statistics stats;	/* interface statistics */#endif	unsigned reserved[16];		/* reserved for future use */	unsigned long critical;		/* critical section flag */	spinlock_t lock;                /* Support for SMP Locking */					/****** 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, netdevice_t *dev,		wanif_conf_t *conf);	int (*del_if) (struct wan_device *wandev, netdevice_t *dev);					/****** maintained by the router ****/	struct wan_device* next;	/* -> next device */	netdevice_t* dev;		/* list of network interfaces */	unsigned ndev;			/* number of interfaces */#ifdef LINUX_2_4	struct proc_dir_entry *dent;	/* proc filesystem entry */#else	struct proc_dir_entry dent;	/* proc filesystem entry */#endif} 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, netdevice_t *dev);int wanrouter_encapsulate(struct sk_buff *skb, netdevice_t *dev,unsigned short type);/* 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);extern void lock_adapter_irq(spinlock_t *lock, unsigned long *smp_flags);extern void unlock_adapter_irq(spinlock_t *lock, unsigned long *smp_flags);/* 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 + -