wanpipe_api_legacy.h

Go to the documentation of this file.
00001 /******************************************************************************/
00035 #ifndef __WANPIPE_API_LEGACY__
00036 #define __WANPIPE_API_LEGACY__
00037 
00038 #pragma pack(1)
00039 
00040 
00041 /****************************************************************/
00046 #define WAN_API_MAX_DATA    4096
00047 typedef struct{
00048     unsigned char   pktType;
00049     unsigned short  length;
00050     unsigned char   result;
00051     union {
00052         struct {
00053             unsigned char   arg1;
00054             unsigned short  time_stamp;
00055         } chdlc;
00056         struct {
00057                 unsigned char   attr;
00058                 unsigned short  time_stamp;
00059         } fr;
00060         struct {
00061             unsigned char   qdm;
00062             unsigned char   cause;
00063             unsigned char   diagn;
00064             unsigned short  lcn;
00065         } x25;
00066         struct {
00067             unsigned char  station;
00068             unsigned char  PF_bit;
00069             unsigned short poll_interval;
00070             unsigned char  general_mailbox_byte;
00071         }sdlc;
00072         struct {
00073             unsigned char  exception;
00074         }xdlc;
00075     } wan_protocol;
00076 #define wan_apihdr_chdlc_error_flag wan_protocol.chdlc.arg1
00077 #define wan_apihdr_chdlc_attr       wan_protocol.chdlc.arg1
00078 #define wan_apihdr_chdlc_time_stamp wan_protocol.chdlc.time_stamp
00079 #define wan_apihdr_fr_attr      wan_protocol.fr.attr
00080 #define wan_apihdr_fr_time_stamp    wan_protocol.fr.time_stamp
00081 #define wan_apihdr_x25_qdm      wan_protocol.x25.qdm
00082 #define wan_apihdr_x25_cause        wan_protocol.x25.cause
00083 #define wan_apihdr_x25_diagn        wan_protocol.x25.diagn
00084 #define wan_apihdr_x25_lcn      wan_protocol.x25.lcn
00085 
00086 #define wan_apihdr_sdlc_station     wan_protocol.sdlc.station
00087 #define wan_apihdr_sdlc_pf      wan_protocol.sdlc.PF_bit
00088 #define wan_apihdr_sdlc_poll_interval   wan_protocol.sdlc.poll_interval
00089 #define wan_apihdr_sdlc_general_mb_byte wan_protocol.sdlc.general_mailbox_byte
00090 
00091 #define wan_apihdr_xdlc_exception   wan_protocol.xdlc.exception
00092 } wan_api_hdr_t;
00093 
00094 typedef struct{
00095     wan_api_hdr_t   api_hdr;
00096     unsigned char   data[WAN_API_MAX_DATA];
00097 #define wan_api_pktType         api_hdr.pktType
00098 #define wan_api_length          api_hdr.length
00099 #define wan_api_result          api_hdr.result
00100 #define wan_api_chdlc_error_flag    api_hdr.wan_apihdr_chdlc_error_flag
00101 #define wan_api_chdlc_time_stamp    api_hdr.wan_apihdr_chdlc_time_stamp
00102 #define wan_api_chdlc_attr      api_hdr.wan_apihdr_chdlc_attr
00103 #define wan_api_chdlc_misc_Tx_bits  api_hdr.wan_apihdr_chdlc_misc_Tx_bits
00104 #define wan_api_fr_attr         api_hdr.wan_apihdr_fr_attr
00105 #define wan_api_fr_time_stamp       api_hdr.wan_apihdr_fr_time_stamp
00106 #define wan_api_x25_qdm         api_hdr.wan_apihdr_x25_qdm
00107 #define wan_api_x25_cause       api_hdr.wan_apihdr_x25_cause
00108 #define wan_api_x25_diagn       api_hdr.wan_apihdr_x25_diagn
00109 #define wan_api_x25_lcn         api_hdr.wan_apihdr_x25_lcn
00110 #define wan_api_sdlc_station        api_hdr.wan_apihdr_sdlc_station
00111 #define wan_api_sdlc_pf         api_hdr.wan_apihdr_sdlc_pf
00112 #define wan_api_sdlc_poll_interval  api_hdr.wan_apihdr_sdlc_poll_interval
00113 #define wan_api_sdlc_general_mb_byte    api_hdr.wan_apihdr_sdlc_general_mb_byte
00114 #define wan_api_xdlc_exception      api_hdr.wan_apihdr_xdlc_exception
00115 } wan_api_t;
00116 
00117 
00118 
00119 #define WAN_MAILBOX_SIZE    16
00120 #define WAN_MAX_POS_DATA_SIZE   1030
00121 #define WAN_MAX_DATA_SIZE   4096
00122 #define MAX_LGTH_UDP_MGNT_PKT WAN_MAX_DATA_SIZE
00123 
00130 typedef struct wan_cmd_api_
00131 {
00132     unsigned int    cmd;
00133     unsigned short  len;
00134     unsigned char   bar;
00135     u_int32_t       offset;
00136     unsigned char   data[WAN_MAX_DATA_SIZE];
00137 } wan_cmd_api_t;
00138 
00139 
00140 
00150 typedef struct wan_cmd {
00151     union {
00152         struct {
00153             unsigned char  opp_flag;        
00154             unsigned char  command;         
00155             unsigned short data_len;        
00156             unsigned char  return_code;     
00157             union {
00158                 struct {
00159                     unsigned char   PF_bit;     /* the HDLC P/F bit */
00160                 } hdlc;
00161                 struct {
00162                     unsigned short  dlci;       /* DLCI number */
00163                     unsigned char   attr;       /* FECN, BECN, DE and C/R bits */
00164                     unsigned short  rxlost1;    /* frames discarded at int. level */
00165                     u_int32_t   rxlost2;    /* frames discarded at app. level */
00166                 } fr;
00167                 struct {
00168                     unsigned char   pf;         /* P/F bit */
00169                     unsigned short  lcn;        /* logical channel */
00170                     unsigned char   qdm;        /* Q/D/M bits */
00171                     unsigned char   cause;      /* cause field */
00172                     unsigned char   diagn;      /* diagnostics */
00173                     unsigned char   pktType;    /* packet type */
00174                 } x25;
00175                 struct {
00176                     unsigned char   misc_Tx_Rx_bits; /* miscellaneous transmit and receive bits */
00177                     unsigned char   Rx_error_bits; /* an indication of a block received with an error */
00178                     unsigned short  Rx_time_stamp; /* a millisecond receive time stamp */
00179                     unsigned char   port;       /* comm port */
00180                 } bscstrm;
00181                 struct {
00182                     unsigned char   misc_tx_rx_bits;
00183                     unsigned short  heading_length;
00184                     unsigned short  notify;
00185                     unsigned char   station;
00186                     unsigned char   poll_address;
00187                     unsigned char   select_address;
00188                     unsigned char   device_address;
00189                     unsigned char   notify_extended;
00190                 } bsc;
00191                 struct {
00192                     unsigned char   sdlc_address;
00193                     unsigned char   PF_bit;
00194                     unsigned short  poll_interval;
00195                     unsigned char   general_mailbox_byte;
00196                 } sdlc;
00197                 struct {
00198                     unsigned char   force;
00199                 } fe;
00200             } wan_protocol;
00201         } wan_p_cmd;
00202         struct {
00203             unsigned char opp_flag;
00204             unsigned char pos_state;
00205             unsigned char async_state;
00206         } wan_pos_cmd;
00207         unsigned char mbox[WAN_MAILBOX_SIZE];
00208     } wan_cmd_u;
00209 #define wan_cmd_opp_flag        wan_cmd_u.wan_p_cmd.opp_flag
00210 #define wan_cmd_command         wan_cmd_u.wan_p_cmd.command
00211 #define wan_cmd_data_len        wan_cmd_u.wan_p_cmd.data_len
00212 #define wan_cmd_return_code     wan_cmd_u.wan_p_cmd.return_code
00213 #define wan_cmd_hdlc_PF_bit     wan_cmd_u.wan_p_cmd.wan_protocol.hdlc.PF_bit
00214 #define wan_cmd_fe_force        wan_cmd_u.wan_p_cmd.wan_protocol.fe.force
00215 #define wan_cmd_fr_dlci         wan_cmd_u.wan_p_cmd.wan_protocol.fr.dlci
00216 #define wan_cmd_fr_attr         wan_cmd_u.wan_p_cmd.wan_protocol.fr.attr
00217 #define wan_cmd_fr_rxlost1      wan_cmd_u.wan_p_cmd.wan_protocol.fr.rxlost1
00218 #define wan_cmd_fr_rxlost2      wan_cmd_u.wan_p_cmd.wan_protocol.fr.rxlost2
00219 #define wan_cmd_x25_pf          wan_cmd_u.wan_p_cmd.wan_protocol.x25.pf
00220 #define wan_cmd_x25_lcn         wan_cmd_u.wan_p_cmd.wan_protocol.x25.lcn
00221 #define wan_cmd_x25_qdm         wan_cmd_u.wan_p_cmd.wan_protocol.x25.qdm
00222 #define wan_cmd_x25_cause       wan_cmd_u.wan_p_cmd.wan_protocol.x25.cause
00223 #define wan_cmd_x25_diagn       wan_cmd_u.wan_p_cmd.wan_protocol.x25.diagn
00224 #define wan_cmd_x25_pktType     wan_cmd_u.wan_p_cmd.wan_protocol.x25.pktType
00225 #define wan_cmd_bscstrm_misc_bits   wan_cmd_u.wan_p_cmd.wan_protocol.bscstrm.misc_Tx_Rx_bits
00226 #define wan_cmd_bscstrm_Rx_err_bits wan_cmd_u.wan_p_cmd.wan_protocol.bscstrm.Rx_error_bits
00227 #define wan_cmd_bscstrm_Rx_time_stamp   wan_cmd_u.wan_p_cmd.wan_protocol.bscstrm.Rx_time_stamp
00228 #define wan_cmd_bscstrm_port        wan_cmd_u.wan_p_cmd.wan_protocol.bscstrm.port
00229 #define wan_cmd_bsc_misc_bits       wan_cmd_u.wan_p_cmd.wan_protocol.bsc.misc_tx_rx_bits
00230 #define wan_cmd_bsc_heading_len     wan_cmd_u.wan_p_cmd.wan_protocol.bsc.heading_length
00231 #define wan_cmd_bsc_notify      wan_cmd_u.wan_p_cmd.wan_protocol.bsc.notify
00232 #define wan_cmd_bsc_station     wan_cmd_u.wan_p_cmd.wan_protocol.bsc.station
00233 #define wan_cmd_bsc_poll_addr       wan_cmd_u.wan_p_cmd.wan_protocol.bsc.poll_address
00234 #define wan_cmd_bsc_select_addr     wan_cmd_u.wan_p_cmd.wan_protocol.bsc.select_address
00235 #define wan_cmd_bsc_device_addr     wan_cmd_u.wan_p_cmd.wan_protocol.bsc.device_address
00236 #define wan_cmd_bsc_notify_ext      wan_cmd_u.wan_p_cmd.wan_protocol.bsc.notify_extended
00237 #define wan_cmd_sdlc_address        wan_cmd_u.wan_p_cmd.wan_protocol.sdlc.sdlc_address
00238 #define wan_cmd_sdlc_pf         wan_cmd_u.wan_p_cmd.wan_protocol.sdlc.PF_bit
00239 #define wan_cmd_sdlc_poll_interval  wan_cmd_u.wan_p_cmd.wan_protocol.sdlc.poll_interval
00240 #define wan_cmd_sdlc_general_mb_byte    wan_cmd_u.wan_p_cmd.wan_protocol.sdlc.general_mailbox_byte
00241 
00242 #define wan_cmd_pos_opp_flag        wan_cmd_u.wan_pos_cmd.opp_flag
00243 #define wan_cmd_pos_pos_state       wan_cmd_u.wan_pos_cmd.pos_state
00244 #define wan_cmd_pos_async_state     wan_cmd_u.wan_pos_cmd.async_state
00245 } wan_cmd_t;
00246 
00247 
00248 typedef struct {
00249     wan_cmd_t   wan_cmd;
00250     union {
00251         struct {
00252             unsigned char  command;
00253             unsigned short data_len;
00254             unsigned char  return_code;
00255             unsigned char  port_num;
00256             unsigned char  attr;
00257             unsigned char  reserved[10];
00258             unsigned char  data[WAN_MAX_POS_DATA_SIZE];
00259         } pos_data;
00260         unsigned char data[WAN_MAX_DATA_SIZE];
00261     } wan_u_data;
00262 #define wan_opp_flag            wan_cmd.wan_cmd_opp_flag
00263 #define wan_command         wan_cmd.wan_cmd_command
00264 #define wan_data_len            wan_cmd.wan_cmd_data_len
00265 #define wan_return_code         wan_cmd.wan_cmd_return_code
00266 #define wan_hdlc_PF_bit         wan_cmd.wan_cmd_hdlc_PF_bit
00267 #define wan_fr_dlci         wan_cmd.wan_cmd_fr_dlci
00268 #define wan_fr_attr         wan_cmd.wan_cmd_fr_attr
00269 #define wan_fr_rxlost1          wan_cmd.wan_cmd_fr_rxlost1
00270 #define wan_fr_rxlost2          wan_cmd.wan_cmd_fr_rxlost2
00271 #define wan_x25_pf          wan_cmd.wan_cmd_x25_pf
00272 #define wan_x25_lcn         wan_cmd.wan_cmd_x25_lcn
00273 #define wan_x25_qdm         wan_cmd.wan_cmd_x25_qdm
00274 #define wan_x25_cause           wan_cmd.wan_cmd_x25_cause
00275 #define wan_x25_diagn           wan_cmd.wan_cmd_x25_diagn
00276 #define wan_x25_pktType         wan_cmd.wan_cmd_x25_pktType
00277 #define wan_bscstrm_misc_bits       wan_cmd.wan_cmd_bscstrm_misc_bits
00278 #define wan_bscstrm_Rx_err_bits     wan_cmd.wan_cmd_bscstrm_Rx_error_bits
00279 #define wan_bscstrm_Rx_time_stamp   wan_cmd.wan_cmd_bscstrm_Rx_time_stamp
00280 #define wan_bscstrm_port        wan_cmd.wan_cmd_bscstrm_port
00281 #define wan_bsc_misc_bits       wan_cmd.wan_cmd_bsc_misc_bits
00282 #define wan_bsc_heading_len     wan_cmd.wan_cmd_bsc_heading_length
00283 #define wan_bsc_notify          wan_cmd.wan_cmd_bsc_notify
00284 #define wan_bsc_station         wan_cmd.wan_cmd_bsc_station
00285 #define wan_bsc_poll_addr       wan_cmd.wan_cmd_bsc_poll_address
00286 #define wan_bsc_select_addr     wan_cmd.wan_cmd_bsc_select_address
00287 #define wan_bsc_device_addr     wan_cmd.wan_cmd_bsc_device_address
00288 #define wan_bsc_notify_ext      wan_cmd.wan_cmd_bsc_notify_extended
00289 #define wan_sdlc_address        wan_cmd.wan_cmd_sdlc_address
00290 #define wan_sdlc_pf         wan_cmd.wan_cmd_sdlc_pf
00291 #define wan_sdlc_poll_interval      wan_cmd.wan_cmd_sdlc_poll_interval
00292 #define wan_sdlc_general_mb_byte    wan_cmd.wan_cmd_sdlc_general_mb_byte
00293 #define wan_data            wan_u_data.data
00294 
00295 #define wan_pos_opp_flag        wan_cmd.wan_cmd_pos_opp_flag
00296 #define wan_pos_pos_state       wan_cmd.wan_cmd_pos_pos_state
00297 #define wan_pos_async_state     wan_cmd.wan_cmd_pos_async_state
00298 #define wan_pos_command         wan_u_data.pos_data.command
00299 #define wan_pos_data_len        wan_u_data.pos_data.data_len
00300 #define wan_pos_return_code     wan_u_data.pos_data.return_code
00301 #define wan_pos_port_num        wan_u_data.pos_data.port_num
00302 #define wan_pos_attr            wan_u_data.pos_data.attr
00303 #define wan_pos_data            wan_u_data.pos_data.data
00304 } wan_mbox_t;
00305 
00306 #define WAN_MBOX_INIT(mbox) memset(mbox, 0, sizeof(wan_cmd_t));
00307 
00308 
00309 #pragma pack()
00310 
00311 #endif /* __WANPIPE_API_LEGACY__ */

Generated on Tue Jan 6 18:08:59 2009 for libsangoma by  doxygen 1.4.7