172 lines
5.0 KiB
C
172 lines
5.0 KiB
C
/***********************************************************
|
|
* wanpipe_fr_iface.h Wanpipe Multi Protocol Interface
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
#ifndef _WANPIPE_FR_IFACE_H_
|
|
#define _WANPIPE_FR_IFACE_H_
|
|
|
|
#ifdef WANLIP_DRIVER
|
|
|
|
#if 0
|
|
typedef struct wp_fr_reg
|
|
{
|
|
int (*prot_set_state)(void* link_dev, int state, unsigned char *, int reason);
|
|
int (*chan_set_state)(void* chan_dev, int state, unsigned char *, int reason);
|
|
int (*tx_down) (void *, void *);
|
|
int (*rx_up) (void *, void *, int);
|
|
int mtu;
|
|
}wp_fr_reg_t;
|
|
#endif
|
|
|
|
#define wplist_insert_dev(dev, list) do{\
|
|
dev->next = list;\
|
|
list = dev;\
|
|
}while(0)
|
|
|
|
#define wplist_remove_dev(dev,cur,prev,list)\
|
|
do{\
|
|
if ((cur=list) == dev){\
|
|
list=cur->next;\
|
|
break;\
|
|
}else{\
|
|
while (cur!=NULL && cur->next!=NULL){\
|
|
prev=cur;\
|
|
cur=cur->next;\
|
|
if (cur==dev){\
|
|
prev->next=cur->next;\
|
|
break;\
|
|
}\
|
|
}\
|
|
}\
|
|
}while(0)
|
|
|
|
|
|
|
|
extern void *wp_register_fr_prot(void *link_ptr,
|
|
char *devname,
|
|
void *cfg,
|
|
wplip_prot_reg_t *fr_reg);
|
|
|
|
extern int wp_unregister_fr_prot(void *prot_ptr);
|
|
|
|
extern void *wp_register_fr_chan(void *if_ptr,
|
|
void *prot_ptr,
|
|
char *devname,
|
|
void *cfg,
|
|
unsigned char type);
|
|
|
|
extern int wp_unregister_fr_chan(void *chan_ptr);
|
|
|
|
extern int wp_fr_open_chan (void *chan_ptr);
|
|
extern int wp_fr_close_chan(void *chan_ptr);
|
|
extern int wp_fr_ioctl (void *chan_ptr, int cmd, void *arg);
|
|
|
|
extern int wp_fr_rx (void * prot_ptr, void *rx_pkt);
|
|
extern int wp_fr_timer (void *prot_ptr, unsigned int *period, unsigned int carrier_reliable);
|
|
extern int wp_fr_tx (void * chan_ptr, void *skb, int type);
|
|
extern int wp_fr_pipemon(void *chan, int cmd, int dlci, unsigned char* data, unsigned int *len);
|
|
extern int wp_fr_snmp(void* chan_ptr, void* data);
|
|
|
|
#endif
|
|
|
|
|
|
/* 'command' field defines */
|
|
#define FR_WRITE 0x01
|
|
#define FR_READ 0x02
|
|
#define FR_ISSUE_IS_FRAME 0x03
|
|
#define FR_SET_CONFIG 0x10
|
|
#define FR_READ_CONFIG 0x11
|
|
#define FR_COMM_DISABLE 0x12
|
|
#define FR_COMM_ENABLE 0x13
|
|
#define FR_READ_STATUS 0x14
|
|
#define FR_READ_STATISTICS 0x15
|
|
#define FR_FLUSH_STATISTICS 0x16
|
|
#define FR_LIST_ACTIVE_DLCI 0x17
|
|
#define FR_FLUSH_DATA_BUFFERS 0x18
|
|
#define FR_READ_ADD_DLC_STATS 0x19
|
|
#define FR_ADD_DLCI 0x20
|
|
#define FR_DELETE_DLCI 0x21
|
|
#define FR_ACTIVATE_DLCI 0x22
|
|
#define FR_DEACTIVATE_DLCI 0x22
|
|
#define FR_READ_MODEM_STATUS 0x30
|
|
#define FR_SET_MODEM_STATUS 0x31
|
|
#define FR_READ_ERROR_STATS 0x32
|
|
#define FR_FLUSH_ERROR_STATS 0x33
|
|
#define FR_READ_DLCI_IB_MAPPING 0x34
|
|
#define FR_READ_CODE_VERSION 0x40
|
|
#define FR_SET_INTR_MODE 0x50
|
|
#define FR_READ_INTR_MODE 0x51
|
|
#define FR_SET_TRACE_CONFIG 0x60
|
|
#define FR_FT1_STATUS_CTRL 0x80
|
|
#define FR_SET_FT1_MODE 0x81
|
|
#define FR_LIST_CONFIGURED_DLCIS 0x82
|
|
|
|
|
|
#pragma pack(1)
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* Global Statistics Block.
|
|
* This structure is returned by the FR_READ_STATISTICS command when
|
|
* dcli == 0.
|
|
*/
|
|
typedef struct fr_link_stat
|
|
{
|
|
unsigned short rx_too_long ; /* 00h: */
|
|
unsigned short rx_dropped ; /* 02h: */
|
|
unsigned short rx_dropped2 ; /* 04h: */
|
|
unsigned short rx_bad_dlci ; /* 06h: */
|
|
unsigned short rx_bad_format ; /* 08h: */
|
|
unsigned short retransmitted ; /* 0Ah: */
|
|
unsigned short cpe_tx_FSE ; /* 0Ch: */
|
|
unsigned short cpe_tx_LIV ; /* 0Eh: */
|
|
unsigned short cpe_rx_FSR ; /* 10h: */
|
|
unsigned short cpe_rx_LIV ; /* 12h: */
|
|
unsigned short node_rx_FSE ; /* 14h: */
|
|
unsigned short node_rx_LIV ; /* 16h: */
|
|
unsigned short node_tx_FSR ; /* 18h: */
|
|
unsigned short node_tx_LIV ; /* 1Ah: */
|
|
unsigned short rx_ISF_err ; /* 1Ch: */
|
|
unsigned short rx_unsolicited ; /* 1Eh: */
|
|
unsigned short rx_SSN_err ; /* 20h: */
|
|
unsigned short rx_RSN_err ; /* 22h: */
|
|
unsigned short T391_timeouts ; /* 24h: */
|
|
unsigned short T392_timeouts ; /* 26h: */
|
|
unsigned short N392_reached ; /* 28h: */
|
|
unsigned short cpe_SSN_RSN ; /* 2Ah: */
|
|
unsigned short current_SSN ; /* 2Ch: */
|
|
unsigned short current_RSN ; /* 2Eh: */
|
|
unsigned short curreny_T391 ; /* 30h: */
|
|
unsigned short current_T392 ; /* 32h: */
|
|
unsigned short current_N392 ; /* 34h: */
|
|
unsigned short current_N393 ; /* 36h: */
|
|
} fr_link_stat_t;
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* DLCI statistics.
|
|
* This structure is returned by the FR_READ_STATISTICS command when
|
|
* dlci != 0.
|
|
*/
|
|
typedef struct fr_dlci_stat
|
|
{
|
|
unsigned int tx_frames ; /* 00h: */
|
|
unsigned int tx_bytes ; /* 04h: */
|
|
unsigned int rx_frames ; /* 08h: */
|
|
unsigned int rx_bytes ; /* 0Ch: */
|
|
unsigned int rx_dropped ; /* 10h: */
|
|
unsigned int rx_inactive ; /* 14h: */
|
|
unsigned int rx_exceed_CIR ; /* 18h: */
|
|
unsigned int rx_DE_set ; /* 1Ch: */
|
|
unsigned int tx_throughput ; /* 20h: */
|
|
unsigned int tx_calc_timer ; /* 24h: */
|
|
unsigned int rx_throughput ; /* 28h: */
|
|
unsigned int rx_calc_timer ; /* 2Ch: */
|
|
} fr_dlci_stat_t;
|
|
|
|
#pragma pack()
|
|
|
|
#endif
|