/* * * =================================== * HARP | Host ATM Research Platform * =================================== * * * This Host ATM Research Platform ("HARP") file (the "Software") is * made available by Network Computing Services, Inc. ("NetworkCS") * "AS IS". NetworkCS does not provide maintenance, improvements or * support of any kind. * * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED, * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE. * In no event shall NetworkCS be responsible for any damages, including * but not limited to consequential damages, arising from or relating to * any use of the Software or related support. * * Copyright 1994-1998 Network Computing Services, Inc. * * Copies of this Software may be made, however, the above copyright * notice must be reproduced on all copies. * * @(#) $FreeBSD: src/sys/netatm/uni/sscop_misc.h,v 1.2 1999/08/28 00:48:59 peter Exp $ * @(#) $DragonFly: src/sys/netproto/atm/uni/sscop_misc.h,v 1.2 2003/06/17 04:28:49 dillon Exp $ * */ /* * ATM Forum UNI Support * --------------------- * * SSCOP miscellaneous definitions * */ #ifndef _UNI_SSCOP_MISC_H #define _UNI_SSCOP_MISC_H /* * SSCOP command definitions */ #define SSCOP_CMD_MIN SSCOP_INIT /* Minimum SSCOP CMD value */ #define SSCOP_CMD_MAX SSCOP_RETRIEVECMP_IND /* Maximum SSCOP CMD value */ #define SSCOP_CMD_SIZE 36 /* Size of command lookup table */ /* * Management Errors */ #define MAA_ERROR_MIN 'A' #define MAA_ERROR_MAX 'X' #define MAA_ERROR_INVAL (MAA_ERROR_MAX + 1) #define MAA_ERROR_COUNT (MAA_ERROR_MAX - MAA_ERROR_MIN + 2) /* * SSCOP Sequence Numbers * * SSCOP sequence numbers are 24 bit integers using modulo arithmetic. * The macros below must be used to modify and compare such numbers. * Comparison of sequence numbers is always relative to some base number (b). */ typedef u_int sscop_seq; #define SEQ_MOD 0xffffff #define SEQ_VAL(v) ((v) & SEQ_MOD) #define SEQ_SET(s,v) ((s) = SEQ_VAL(v)) #define SEQ_ADD(s,v) (SEQ_VAL((s) + (v))) #define SEQ_SUB(s,v) (SEQ_VAL((s) - (v))) #define SEQ_INCR(s,v) ((s) = SEQ_VAL((s) + (v))) #define SEQ_DECR(s,v) ((s) = SEQ_VAL((s) - (v))) #define SEQ_EQ(x,y) (SEQ_VAL(x) == SEQ_VAL(y)) #define SEQ_NEQ(x,y) (SEQ_VAL(x) != SEQ_VAL(y)) #define SEQ_LT(x,y,b) (SEQ_VAL((x) - (b)) < SEQ_VAL((y) - (b))) #define SEQ_LEQ(x,y,b) (SEQ_VAL((x) - (b)) <= SEQ_VAL((y) - (b))) #define SEQ_GT(x,y,b) (SEQ_VAL((x) - (b)) > SEQ_VAL((y) - (b))) #define SEQ_GEQ(x,y,b) (SEQ_VAL((x) - (b)) >= SEQ_VAL((y) - (b))) /* * SSCOP Timers * * All of the SSCOP timer fields are maintained in terms of clock ticks. * The timers tick 2 times per second. */ #define SSCOP_HZ 2 /* SSCOP ticks per second */ #define SSCOP_T_NUM 4 /* Number of timers per connection */ #define SSCOP_T_POLL 0 /* Timer_POLL / Timer_KEEP-ALIVE */ #define SSCOP_T_NORESP 1 /* Timer_NO-RESPONSE */ #define SSCOP_T_CC 2 /* Timer_CC */ #define SSCOP_T_IDLE 3 /* Timer_IDLE */ #endif /* _UNI_SSCOP_MISC_H */