http://marcin-wiacek.fkn.pl/english/zips/mygnokii.tar.gz
[gnokii.git] / Docs / developers / other / sniffs / irda / tools / include / irlap.h
diff --git a/Docs/developers/other/sniffs/irda/tools/include/irlap.h b/Docs/developers/other/sniffs/irda/tools/include/irlap.h
new file mode 100644 (file)
index 0000000..bd4a11d
--- /dev/null
@@ -0,0 +1,242 @@
+/*********************************************************************
+ *
+ * Filename:      irlap.h
+ * Version:
+ * Description:   in this file you can only find define´s for parts
+ *                of the irlap-layer. If you want read the typedef´s
+ *                for struct´s look into irda.h
+ * Status:        Experimental.
+ * Author:        Thomas Schneider <nok-trace-men@dev-thomynet.de>
+ * Created at:    
+ * Modified at:   
+ * Modified by:   Thomas Schneider <nok-trace-men@dev-thomynet.de>
+ *
+ *     Copyright (c) 1999 Thomas Schneider, All Rights Reserved.
+ *
+ *     This program is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of
+ *     the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software 
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * IN NO EVENT SHALL THOMAS SCHNEIDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THOMAS SCHNEIDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 
+ * DAMAGE.
+ *
+ * THOMAS SCHNEIDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+ * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER
+ * IS ON AN "AS IS" BASIS, AND THOMAS SCHNEIDER HAS NO OBLIGATION TO 
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR 
+ * MODIFICATIONS.
+ *
+ *         This material is provided "AS-IS" and at no charge.
+ *
+ ********************************************************************/
+/*
+ * in this file you can only find define´s for parts
+ * of the irlap-layer. If you want read the typedef´s
+ * for struct´s look into irda.h
+ */
+
+#ifndef __IRLAP_H
+#define __IRLAP_H
+
+#include <glib.h>
+
+
+#define IRDA_XBOF 0xFF
+#define IRDA_BOF  0xC0
+#define IRDA_EOF  0xC1
+
+/*
+ * IrLAP-OFFSETS
+ * -------------
+ */
+#define IRLAP_A_OFF 0x00
+#define IRLAP_C_OFF 0x01
+#define IRLAP_I_OFF 0x02
+
+/*
+ * IrLAP-DEFINES
+ * -------------
+ */
+#define IRLAP_XBOF 0xFF
+#define IRLAP_BOF  0xC0
+#define IRLAP_EOF  0xC1
+#define IRLAP_CE   0x7D
+#define IRLAP_ESC  IRLAP_CE
+
+#define IRLAP_ESC_MASK (~0xDF)
+
+#define IRLAP_A_LENGTH   1
+#define IRLAP_C_LENGTH   1
+#define IRLAP_FCS_LENGTH 2
+#define IRLAP_EOF_LENGTH 1
+
+#define IRLAP_C_MASK            0x03
+#define IRLAP_U_FRAME           0x03
+#define IRLAP_S_FRAME           0x01
+#define IRLAP_PF_BIT_MASK     (~0xEF)
+#define IRLAP_PF_BIT_CLR_MASK (~0x10)
+#define IRLAP_Nr_CLR_MASK       0x1F
+
+/*
+ * IRLAP U cmd/response
+ * --------------------
+ * - all defines use a cleared P/F-Bit
+ *   (irlap_frame -> c & IRLAP_PF_BIT_CLR_MASK)
+ * - page 26 in IrLAP-spec
+ * - if no _CMD or _RSP name is _CMD_RSP (e.g. 0x83)
+ */
+#define IRLAP_SNRM_RNRM 0x83
+#define IRLAP_DISC_RD   0x43
+#define IRLAP_UI_UI     0x03
+#define IRLAP_XID_CMD   0x2F
+#define IRLAP_TEST_TEST 0xE3
+#define IRLAP_UA_RSP    0x63
+#define IRLAP_FRMR_RSP  0x87
+#define IRLAP_DM_RSP    0x0F
+#define IRLAP_XID_RSP   0xAF
+
+/*
+ * IRLAP S cmd/response
+ * --------------------
+ * - all defines use a cleared P/F-Bit and cleared Nr
+ *   (irlap_frame -> c & IRLAP_PF_BIT_CLR_MASK & IRLAP_Nr_CLR_MASK)
+ * - page 32 in IrLAP-spec
+ * - for both (cmd and response) the same mask is defined
+ */
+#define IRLAP_RR   0x01
+#define IRLAP_RNR  0x05
+#define IRLAP_REJ  0x09
+#define IRLAP_SREJ 0x0D
+
+
+/*
+ * irlap-connection-states
+ * -----------------------
+ * - negotation defines are also conn-states
+ */
+#define IRLAP_DISC     0x00            /* disconnected          */
+#define IRLAP_NDM      0x01            /* normaldisconnect mode */
+#define IRLAP_NRM      0x02            /* normal response mode  */
+
+/*
+ * negotation-defines
+ * ------------------
+ */
+/* negotation-states */
+#define NEG_SNRM_OK     0x01
+#define NEG_WAIT_FOR_UA 0x02
+#define NEG_UA_OK       0x03
+#define NEG_COMPLETE    0x04
+
+#define B576000   576000
+#define B1152000 1152000
+
+#define IRLAP_SNRM_SRC_ADR       0x00 /* src in SNRM               */
+#define IRLAP_SNRM_DEST_ADR      0x04 /* dest in SNRM              */
+#define IRLAP_SNRM_CONN_ADR      0x08 /* connection-adr in SNRM    */
+#define IRLAP_UA_SRC_ADR         0x00 /* src in UA                 */
+#define IRLAP_UA_DEST_ADR        0x04 /* dest in UA                */
+#define IRLAP_NEG_SNRM_PARAM_OFF 0x09 /* src(U32) dest(U32) adr(8) */
+#define IRLAP_NEG_UA_PARAM_OFF   0x08 /* src(U32) dest(U32)        */
+#define IRLAP_NEG_BPS_PI         0x01 /* IrLAP page 39             */
+#define IRLAP_PI_LENGTH 1      /* no more longer used */
+#define IRLAP_PL_LENGTH 1      /* no more longer used */
+
+/*
+ * defines for decode xid-cmd
+ * --------------------------
+ */
+#define XID_C_FI_OFFSET    0x00        /* offset for format identifier (U8)  */
+#define XID_C_SRC_ADR_OFF  0x01        /* offset for source address    (U32) */
+#define XID_C_DEST_ADR_OFF 0x05        /* offset for dest address      (U32) */
+#define XID_C_DISC_F_OFF   0x09        /* offset for discovery flags   (U8)  */
+#define XID_C_SLOT_NR_OFF  0x0A        /* offset for slot number       (U8)  */
+#define XID_C_VERSION_OFF  0x0B        /* offset for version           (U8)  */
+#define XID_C_DISC_I_OFF   0x0C /* offset for discovery information   */
+#define XID_C_FLAG_TRUE    0x01        /* flags in cmd only if FI == 0x01    */
+#define XID_C_F_SLOT_MASK  0x03 /* mask for slot numbers in di-flag   */
+#define XID_C_F_NEW_ADR_M  0x04 /* mask for new device-address-gen.   */
+#define XID_C_LAST_SLOT    0xFF /* nr.  for last slot in xid-cmd      */
+#define XID_C_DISC_I_M_L   0x20 /* max length of discovery info       */
+#define XID_C_DI_S_H_OFF   0x0C /* 1. service hint offset in disc-inf */
+#define XID_C_DI_S_H_EX_M  0x07 /* serv.hint extent. mask in disc_inf */
+
+/*
+ * defines for decode xid-rsp
+ * --------------------------
+ */
+#define XID_R_FI_OFFSET    0x00        /* offset for format identifier (U8)  */
+#define XID_R_SRC_ADR_OFF  0x01        /* offset for source address    (U32) */
+#define XID_R_DEST_ADR_OFF 0x05        /* offset for dest address      (U32) */
+#define XID_R_DISC_F_OFF   0x09        /* offset for discovery flags   (U8)  */
+#define XID_R_SLOT_NR_OFF  0x0A        /* offset for slot number       (U8)  */
+#define XID_R_VERSION_OFF  0x0B        /* offset for version           (U8)  */
+#define XID_R_DISC_I_OFF   0x0C /* offset for discovery information   */
+#define XID_R_FLAG_TRUE    0x01        /* flags in rsp only if FI == 0x01    */
+#define XID_R_F_SLOT_MASK  0x03 /* mask for slot numbers in di-flag   */
+#define XID_R_F_NEW_ADR_M  0x04 /* mask for new device-address-gen.   */
+#define XID_R_LAST_SLOT    0xFF /* nr.  for last slot in xid-cmd/rsp  */
+#define XID_R_DISC_I_M_L   0x20 /* max length of discovery info       */
+#define XID_R_DI_S_H_OFF   0x0C /* 1. service hint offset in disc-inf */
+#define XID_R_DI_S_H_EX_M  0x07 /* serv.hint extent. mask in disc_inf */
+#define XID_R_SNIFF_FRAME  0xFFFFFFFF /* dest address for sniffing    */
+
+/* 
+ * defines for snrm-cmd
+ * --------------------
+ */
+#define SNRM_CMD_RESET_LEN   0x00 /* no i-field is present              */
+#define SNRM_EST_CONNECT_ADR 0xFF /* conn.adr. in case con.establish    */
+#define SNRM_C_SRC_ADR_OFF   0x00 /* offset for source address    (U32) */
+#define SNRM_C_DEST_ADR_OFF  0x04 /* offset for dest address      (U32) */
+#define SNRM_C_N_C_ADR_OFF   0x08 /* new conn. adr. offset        (U8)  */
+#define SNRM_C_NEG_OFF       0x09 /* negotation-fields offset           */
+#define SNRM_BPS_PI          0x01 /* bps-pi                             */
+#define SNRM_MAX_TAT_PI      0x82 /* max. turn around time pi           */
+#define SNRM_DATA_SIZE_PI    0x83 /* data size pi                       */
+#define SNRM_WIN_SIZE_PI     0x84 /* window size pi                     */
+#define SNRM_ADD_BOF_PI      0x85 /* addition BOFs pi                   */
+#define SNRM_MIN_TAT_PI      0x86 /* min. turn around time pi           */
+#define SNRM_LD_TT_PI        0x08 /* link disc./threshold time pi       */
+
+/*
+ * defines for ua-rsp-frame
+ * ------------------------
+ */
+#define UA_CONNECT_MIN_LENGTH 0x0E /* 14 are min length to use the frame
+                                   * for response to snrm used to
+                                   * establish a connection - look at
+                                   * page 39 - negotation: type 0 params
+                                   * must be negotiated at both stations
+                                   * bps and link disc/threshold time -
+                                   * in this case also src and dest are
+                                   * used ( 4 + 4 + 3 + 3), page 31      */
+#define UA_WITH_SRC_DST_LEN   0x08 /* ua len with src and dest            */
+#define UA_SRC_ADR_OFF        0x00 /* offset for source address    (U32) */
+#define UA_DEST_ADR_OFF       0x04 /* offset for dest address      (U32) */
+#define UA_NEG_OFF            0x08 /* negotation-fields offset           */
+#define UA_BPS_PI             0x01 /* bps-pi                             */
+#define UA_MAX_TAT_PI         0x82 /* max. turn around time pi           */
+#define UA_DATA_SIZE_PI       0x83 /* data size pi                       */
+#define UA_WIN_SIZE_PI        0x84 /* window size pi                     */
+#define UA_ADD_BOF_PI         0x85 /* addition BOFs pi                   */
+#define UA_MIN_TAT_PI         0x86 /* min. turn around time pi           */
+#define UA_LD_TT_PI           0x08 /* link disc./threshold time pi       */
+
+
+#endif /* __IRLAP_H */
+