freebsd-skq/sys/netatm/uni/sscop_misc.h
phk c3dd1fa899 Add new files for HARP3
Host ATM Research Platform (HARP), Network Computing Services, Inc.
This software was developed with the support of the Defense Advanced
Research Projects Agency (DARPA).
1998-09-15 08:23:17 +00:00

98 lines
3.0 KiB
C

/*
*
* ===================================
* 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.
*
* @(#) $Id: sscop_misc.h,v 1.4 1998/08/26 23:29:19 mks 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 */