The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/ngatm/netnatm/msg/uni_hdr.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 1996-2003
    3  *      Fraunhofer Institute for Open Communication Systems (FhG Fokus).
    4  *      All rights reserved.
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  * 1. Redistributions of source code must retain the above copyright
   10  *    notice, this list of conditions and the following disclaimer.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  *
   15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25  * SUCH DAMAGE.
   26  *
   27  * Author: Hartmut Brandt <harti@freebsd.org>
   28  *
   29  * $Begemot: libunimsg/netnatm/msg/uni_hdr.h,v 1.6 2004/07/08 08:22:05 brandt Exp $
   30  */
   31 #ifndef _NETNATM_MSG_UNI_HDR_H_
   32 #define _NETNATM_MSG_UNI_HDR_H_
   33 
   34 #include <sys/types.h>
   35 #ifdef _KERNEL
   36 #include <sys/stdint.h>
   37 #else
   38 #include <stdint.h>
   39 #endif
   40 
   41 #include <netnatm/msg/uni_config.h>
   42 
   43 enum {
   44         UNI_PROTO       = 0x09,         /* protocol discriminator */
   45         PNNI_PROTO      = 0xf0,         /* PNNI protocol discriminator */
   46 };
   47 
   48 /*
   49  * Message types
   50  */
   51 enum uni_msgtype {
   52         UNI_UNKNOWN             = 0x100,/* unknown message */
   53 
   54         UNI_ALERTING            = 0x01, /* alerting */
   55         UNI_CALL_PROC           = 0x02, /* call proceeding */
   56         UNI_SETUP               = 0x05, /* setup */
   57         UNI_CONNECT             = 0x07, /* connect */
   58         UNI_CONNECT_ACK         = 0x0f, /* connect ack */
   59 
   60         UNI_RESTART             = 0x46, /* restart */
   61         UNI_RELEASE             = 0x4d, /* release */
   62         UNI_RESTART_ACK         = 0x4e, /* restart acknowledgement */
   63         UNI_RELEASE_COMPL       = 0x5a, /* release complete */
   64 
   65         UNI_NOTIFY              = 0x6e, /* notify user */
   66         UNI_STATUS_ENQ          = 0x75, /* status enquiry */
   67         UNI_STATUS              = 0x7d, /* status */
   68 
   69         UNI_ADD_PARTY           = 0x80, /* add party */
   70         UNI_ADD_PARTY_ACK       = 0x81, /* add party acknowledgement */
   71         UNI_ADD_PARTY_REJ       = 0x82, /* add party reject */
   72         UNI_DROP_PARTY          = 0x83, /* drop party */
   73         UNI_DROP_PARTY_ACK      = 0x84, /* drop party acknowledgement */
   74         UNI_PARTY_ALERTING      = 0x85, /* party alerting */
   75 
   76         UNI_LEAF_SETUP_FAIL     = 0x90, /* leaf setup failed */
   77         UNI_LEAF_SETUP_REQ      = 0x91, /* leaf setup request */
   78 
   79         UNI_COBISETUP           = 0x15, /* Q.2932 COBI-setup */
   80         UNI_FACILITY            = 0x62, /* Q.2932 facility */
   81 
   82         UNI_MODIFY_REQ          = 0x88, /* Q.2963 Modify request */
   83         UNI_MODIFY_ACK          = 0x89, /* Q.2963 Modify acknowledgement */
   84         UNI_MODIFY_REJ          = 0x8a, /* Q.2963 Modify reject */
   85         UNI_CONN_AVAIL          = 0x8b, /* Q.2963 Connection available */
   86 };
   87 
   88 /*
   89  * Information element types
   90  */
   91 enum uni_ietype {
   92         UNI_IE_CAUSE            = 0x08, /* cause */
   93         UNI_IE_CALLSTATE        = 0x14, /* call state */
   94         UNI_IE_FACILITY         = 0x1C, /* Q.2932 facility IE */
   95         UNI_IE_NOTIFY           = 0x27, /* UNI4.0 notify */
   96         UNI_IE_EETD             = 0x42, /* UNI4.0 end-to-end transit delay */
   97         UNI_IE_CONNED           = 0x4c, /* UNI4.0/Q.2951 connected address */
   98         UNI_IE_CONNEDSUB        = 0x4d, /* UNI4.0/Q.2951 connected subaddress */
   99         UNI_IE_EPREF            = 0x54, /* endpoint reference */
  100         UNI_IE_EPSTATE          = 0x55, /* enpoint state */
  101         UNI_IE_AAL              = 0x58, /* ATM adaptation layer parameters */
  102         UNI_IE_TRAFFIC          = 0x59, /* ATM traffic descriptor */
  103         UNI_IE_CONNID           = 0x5a, /* connection identifier */
  104         UNI_IE_QOS              = 0x5c, /* quality of service parameter */
  105         UNI_IE_BHLI             = 0x5d, /* broadband higher layer information */
  106         UNI_IE_BEARER           = 0x5e, /* broadband bearer capability */
  107         UNI_IE_BLLI             = 0x5f, /* broadband lower layer information */
  108         UNI_IE_LSHIFT           = 0x60, /* broadband locking shift */
  109         UNI_IE_NLSHIFT          = 0x61, /* broadband non-locking shift */
  110         UNI_IE_SCOMPL           = 0x62, /* broadband sending complete */
  111         UNI_IE_REPEAT           = 0x63, /* broadband repeat indicator */
  112         UNI_IE_CALLING          = 0x6c, /* calling party number */
  113         UNI_IE_CALLINGSUB       = 0x6d, /* calling party subaddress */
  114         UNI_IE_CALLED           = 0x70, /* called party number */
  115         UNI_IE_CALLEDSUB        = 0x71, /* called party subaddress */
  116         UNI_IE_TNS              = 0x78, /* transit network selection */
  117         UNI_IE_RESTART          = 0x79, /* restart indicator */
  118         UNI_IE_UU               = 0x7e, /* UNI4.0/Q.2957 user-to-user info */
  119         UNI_IE_GIT              = 0x7f, /* UNI4.0 generic identifier transport*/
  120         UNI_IE_MINTRAFFIC       = 0x81, /* Q.2962 minimum traffic desc */
  121         UNI_IE_ATRAFFIC         = 0x82, /* Q.2962 alternate traffic desc */
  122         UNI_IE_ABRSETUP         = 0x84, /* UNI4.0 ABR setup parameters */
  123         UNI_IE_REPORT           = 0x89, /* Q.2963 broadband report type */
  124         UNI_IE_CALLED_SOFT      = 0xe0, /* PNNI Calling party soft PVPC */
  125         UNI_IE_CRANKBACK        = 0xe1, /* PNNI Crankback */
  126         UNI_IE_DTL              = 0xe2, /* PNNI designated transit list */
  127         UNI_IE_CALLING_SOFT     = 0xe3, /* PNNI Called party soft PVPC */
  128         UNI_IE_ABRADD           = 0xe4, /* UNI4.0 ABR additional parameters */
  129         UNI_IE_LIJ_CALLID       = 0xe8, /* UNI4.0 LIF call identifier */
  130         UNI_IE_LIJ_PARAM        = 0xe9, /* UNI4.0 LIF parameters */
  131         UNI_IE_LIJ_SEQNO        = 0xea, /* UNI4.0 LIF sequence number */
  132         UNI_IE_CSCOPE           = 0xeb, /* UNI4.0 connection scope selection */
  133         UNI_IE_EXQOS            = 0xec, /* UNI4.0 extended QoS parameters */
  134         UNI_IE_MDCR             = 0xf0, /* UNI4.0+ Minimum desired call rate */
  135         UNI_IE_UNREC            = 0xfe,
  136 };
  137 
  138 enum uni_coding {
  139         UNI_CODING_ITU = 0x0,
  140         UNI_CODING_NET = 0x3,
  141 };
  142 
  143 enum uni_msgact {
  144         UNI_MSGACT_CLEAR        = 0x0,
  145         UNI_MSGACT_IGNORE       = 0x1,
  146         UNI_MSGACT_REPORT       = 0x2,
  147 
  148         UNI_MSGACT_DEFAULT      = 0x4
  149 };
  150 
  151 enum uni_ieact {
  152         UNI_IEACT_CLEAR         = 0x00, /* clear call */
  153         UNI_IEACT_IGNORE        = 0x01, /* ignore IE and proceed */
  154         UNI_IEACT_REPORT        = 0x02, /* ignore IE, report and proceed */
  155         UNI_IEACT_MSG_IGNORE    = 0x05, /* ignore message */
  156         UNI_IEACT_MSG_REPORT    = 0x06, /* ignore message and report */
  157 
  158         UNI_IEACT_DEFAULT       = 0x08
  159 };
  160 
  161 struct uni_cref {
  162         u_int   flag;
  163         u_int   cref;
  164 };
  165 
  166 /*
  167  * Message header.
  168  */
  169 struct uni_msghdr {
  170         struct uni_cref cref;
  171         enum uni_msgact act;            /* action indicator */
  172         u_int           pass:1;         /* PNNI pass along request */
  173 };
  174 
  175 enum {
  176         CREF_GLOBAL     = 0,
  177         CREF_DUMMY      = 0x7fffff,
  178 };
  179 
  180 /*
  181  * General information element header.
  182  */
  183 struct uni_iehdr {
  184         enum uni_coding coding;         /* coding standard */
  185         enum uni_ieact  act;            /* action indicator */
  186         u_int           pass : 1;       /* PNNI pass along request */
  187         u_int           present;        /* which optional elements are present */
  188 #define UNI_IE_EMPTY    0x80000000
  189 #define UNI_IE_PRESENT  0x40000000
  190 #define UNI_IE_ERROR    0x20000000
  191 #define UNI_IE_XXX      0x10000000
  192 #define UNI_IE_MASK     0xf0000000
  193 };
  194 
  195 #define IE_ISPRESENT(IE) \
  196         (((IE).h.present & (UNI_IE_PRESENT|UNI_IE_EMPTY)) == UNI_IE_PRESENT)
  197 #define IE_SETPRESENT(IE) \
  198         ((IE).h.present = ((IE).h.present & ~UNI_IE_MASK) | \
  199                 UNI_IE_PRESENT)
  200 
  201 #define IE_ADDPRESENT(IE) \
  202         ((IE).h.present = ((IE).h.present & ~UNI_IE_EMPTY) | \
  203                 UNI_IE_PRESENT)
  204 
  205 #define IE_ISEMPTY(IE) \
  206         (((IE).h.present & UNI_IE_MASK) == (UNI_IE_PRESENT | UNI_IE_EMPTY))
  207 #define IE_SETEMPTY(IE) \
  208         ((IE).h.present = ((IE).h.present & ~UNI_IE_MASK) | \
  209                 UNI_IE_EMPTY | UNI_IE_PRESENT)
  210 
  211 #define IE_ISERROR(IE) \
  212         (((IE).h.present & UNI_IE_MASK) == (UNI_IE_PRESENT | UNI_IE_ERROR))
  213 #define IE_SETERROR(IE) \
  214         ((IE).h.present = ((IE).h.present & ~UNI_IE_MASK) | \
  215                 UNI_IE_ERROR | UNI_IE_PRESENT)
  216 
  217 #define IE_ISGOOD(IE) \
  218         (((IE).h.present & UNI_IE_MASK) == (UNI_IE_PRESENT))
  219 
  220 #endif

Cache object: 3a0834217a4274776a71e8e3a1928ea2


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.