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/sig/unidef.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/sig/unidef.h,v 1.9 2004/07/08 08:22:24 brandt Exp $
   30  *
   31  * UNI public definitions.
   32  */
   33 #ifndef _ATM_SIG_UNIDEF_H_
   34 #define _ATM_SIG_UNIDEF_H_
   35 
   36 #ifdef _KERNEL
   37 #include <sys/stdint.h>
   38 #else
   39 #include <stdint.h>
   40 #endif
   41 
   42 /*
   43  * Debug facilities
   44  */
   45 #define UNI_DEBUG_FACILITIES            \
   46         UNI_DEBUG_DEFINE(TIMEOUT)       \
   47         UNI_DEBUG_DEFINE(RESTART)       \
   48         UNI_DEBUG_DEFINE(SAAL)          \
   49         UNI_DEBUG_DEFINE(PARSE)         \
   50         UNI_DEBUG_DEFINE(CALL)          \
   51         UNI_DEBUG_DEFINE(WARN)          \
   52         UNI_DEBUG_DEFINE(COORD)         \
   53         UNI_DEBUG_DEFINE(API)           \
   54         UNI_DEBUG_DEFINE(MSG)           \
   55         UNI_DEBUG_DEFINE(ERR)           \
   56         UNI_DEBUG_DEFINE(VERIFY)        \
   57 
   58 enum uni_verb {
   59 #define UNI_DEBUG_DEFINE(D) UNI_FAC_##D,
   60         UNI_DEBUG_FACILITIES
   61 #undef UNI_DEBUG_DEFINE
   62 
   63         UNI_MAXFACILITY,
   64 };
   65 
   66 /*
   67  * Default timer values and repeat counts
   68  */
   69 #define UNI_T301_DEFAULT        180000
   70 #define UNI_T303_DEFAULT        4000
   71 #define UNI_T303_CNT_DEFAULT    2
   72 #define UNI_T308_DEFAULT        30000
   73 #define UNI_T308_CNT_DEFAULT    2
   74 #define UNI_T309_DEFAULT        10000
   75 #define UNI_T310U_DEFAULT       30000
   76 #define UNI_T310N_DEFAULT       10000
   77 #define UNI_T313_DEFAULT        4000
   78 #define UNI_T316_DEFAULT        120000
   79 #define UNI_T316_CNT_DEFAULT    2
   80 #define UNI_T317_DEFAULT        90000
   81 #define UNI_T322_DEFAULT        4000
   82 #define UNI_T322_CNT_DEFAULT    2
   83 #define UNI_T397_DEFAULT        UNI_T301_DEFAULT
   84 #define UNI_T398_DEFAULT        4000
   85 #define UNI_T399U_DEFAULT       (UNI_T303_DEFAULT + UNI_T310U_DEFAULT)
   86 #define UNI_T399N_DEFAULT       (UNI_T303_DEFAULT + UNI_T310N_DEFAULT)
   87 
   88 /*
   89  * Protocol support
   90  */
   91 enum uni_proto {
   92         UNIPROTO_UNI40U,        /* UNI4.0 user side */
   93         UNIPROTO_UNI40N,        /* UNI4.0 network side */
   94         UNIPROTO_PNNI10,        /* PNNI1.0 */
   95 };
   96 enum uni_popt {
   97         UNIPROTO_GFP    = 0x0001,       /* enable GFP */
   98         UNIPROTO_SB_TB  = 0x0002,       /* Coincident Sb-Tb/Tb */
   99 
  100         UNIPROTO_ALLMASK = 0x0003,
  101 };
  102 
  103 /*
  104  * Other options
  105  */
  106 enum uni_option {
  107         UNIOPT_GIT_HARD         = 0x0001,       /* harder check of GIT IE */
  108         UNIOPT_BEARER_HARD      = 0x0002,       /* harder check of BEARER IE */
  109         UNIOPT_CAUSE_HARD       = 0x0004,       /* harder check of CAUSE IE */
  110 
  111         UNIOPT_ALLMASK          = 0x0007,
  112 };
  113 
  114 /*
  115  * UNI configuration
  116  */
  117 struct uni_config {
  118         uint32_t        proto;          /* which protocol */
  119         uint32_t        popt;           /* protocol option */
  120         uint32_t        option;         /* other options */
  121         uint32_t        timer301;       /* T301 */
  122         uint32_t        timer303;       /* T303 */
  123         uint32_t        init303;        /* T303 retransmission count */
  124         uint32_t        timer308;       /* T308 */
  125         uint32_t        init308;        /* T308 retransmission count */
  126         uint32_t        timer309;       /* T309 */
  127         uint32_t        timer310;       /* T310 */
  128         uint32_t        timer313;       /* T313 */
  129         uint32_t        timer316;       /* T316 */
  130         uint32_t        init316;        /* T316 retransmission count */
  131         uint32_t        timer317;       /* T317 */
  132         uint32_t        timer322;       /* T322 */
  133         uint32_t        init322;        /* T322 retransmission count */
  134         uint32_t        timer397;       /* T397 */
  135         uint32_t        timer398;       /* T398 */
  136         uint32_t        timer399;       /* T399 */
  137 };
  138 enum uni_config_mask {
  139         UNICFG_PROTO    = 0x00000001,
  140         UNICFG_TIMER301 = 0x00000002,
  141         UNICFG_TIMER303 = 0x00000004,
  142         UNICFG_INIT303  = 0x00000008,
  143         UNICFG_TIMER308 = 0x00000010,
  144         UNICFG_INIT308  = 0x00000020,
  145         UNICFG_TIMER309 = 0x00000040,
  146         UNICFG_TIMER310 = 0x00000080,
  147         UNICFG_TIMER313 = 0x00000100,
  148         UNICFG_TIMER316 = 0x00000200,
  149         UNICFG_INIT316  = 0x00000400,
  150         UNICFG_TIMER317 = 0x00000800,
  151         UNICFG_TIMER322 = 0x00001000,
  152         UNICFG_INIT322  = 0x00002000,
  153         UNICFG_TIMER397 = 0x00004000,
  154         UNICFG_TIMER398 = 0x00008000,
  155         UNICFG_TIMER399 = 0x00010000,
  156 
  157         UNICFG_ALLMASK  = 0x0001ffff,
  158 };
  159 
  160 /*
  161  * API signals
  162  */
  163 enum uni_sig {
  164         UNIAPI_ERROR                    = 0,    /* UNI -> API */
  165 
  166         UNIAPI_CALL_CREATED             = 1,    /* UNI -> API */
  167         UNIAPI_CALL_DESTROYED           = 2,    /* UNI -> API */
  168         UNIAPI_PARTY_CREATED            = 3,    /* UNI -> API */
  169         UNIAPI_PARTY_DESTROYED          = 4,    /* UNI -> API */
  170 
  171         UNIAPI_LINK_ESTABLISH_request   = 5,    /* API -> UNI */
  172         UNIAPI_LINK_ESTABLISH_confirm   = 6,    /* UNI -> API */
  173         UNIAPI_LINK_RELEASE_request     = 7,    /* API -> UNI */
  174         UNIAPI_LINK_RELEASE_confirm     = 8,    /* UNI -> API */
  175 
  176         UNIAPI_RESET_request            = 9,    /* API -> UNI */
  177         UNIAPI_RESET_confirm            = 10,   /* UNI -> API */
  178         UNIAPI_RESET_indication         = 11,   /* UNI -> API */
  179         UNIAPI_RESET_ERROR_indication   = 12,   /* UNI -> API */
  180         UNIAPI_RESET_response           = 13,   /* API -> UNI */
  181         UNIAPI_RESET_ERROR_response     = 14,   /* API -> UNI */
  182         UNIAPI_RESET_STATUS_indication  = 15,   /* UNI -> API */
  183 
  184         UNIAPI_SETUP_request            = 16,   /* API -> UNI */
  185         UNIAPI_SETUP_indication         = 17,   /* UNI -> API */
  186         UNIAPI_SETUP_response           = 18,   /* API -> UNI */
  187         UNIAPI_SETUP_confirm            = 19,   /* UNI -> API */
  188         UNIAPI_SETUP_COMPLETE_indication= 20,   /* U-UNI -> API */
  189         UNIAPI_SETUP_COMPLETE_request   = 46,   /* API -> N-UNI */
  190         UNIAPI_ALERTING_request         = 21,   /* API -> UNI */
  191         UNIAPI_ALERTING_indication      = 22,   /* UNI -> API */
  192         UNIAPI_PROCEEDING_request       = 23,   /* API -> UNI */
  193         UNIAPI_PROCEEDING_indication    = 24,   /* UNI -> API */
  194         UNIAPI_RELEASE_request          = 25,   /* API -> UNI */
  195         UNIAPI_RELEASE_indication       = 26,   /* UNI -> API */
  196         UNIAPI_RELEASE_response         = 27,   /* API -> UNI */
  197         UNIAPI_RELEASE_confirm          = 28,   /* UNI -> API */
  198         UNIAPI_NOTIFY_request           = 29,   /* API -> UNI */
  199         UNIAPI_NOTIFY_indication        = 30,   /* UNI -> API */
  200         UNIAPI_STATUS_indication        = 31,   /* UNI -> API */
  201         UNIAPI_STATUS_ENQUIRY_request   = 32,   /* API -> UNI */
  202 
  203         UNIAPI_ADD_PARTY_request        = 33,   /* API -> UNI */
  204         UNIAPI_ADD_PARTY_indication     = 34,   /* UNI -> API */
  205         UNIAPI_PARTY_ALERTING_request   = 35,   /* API -> UNI */
  206         UNIAPI_PARTY_ALERTING_indication= 36,   /* UNI -> API */
  207         UNIAPI_ADD_PARTY_ACK_request    = 37,   /* API -> UNI */
  208         UNIAPI_ADD_PARTY_ACK_indication = 38,   /* UNI -> API */
  209         UNIAPI_ADD_PARTY_REJ_request    = 39,   /* API -> UNI */
  210         UNIAPI_ADD_PARTY_REJ_indication = 40,   /* UNI -> API */
  211         UNIAPI_DROP_PARTY_request       = 41,   /* API -> UNI */
  212         UNIAPI_DROP_PARTY_indication    = 42,   /* UNI -> API */
  213         UNIAPI_DROP_PARTY_ACK_request   = 43,   /* API -> UNI */
  214         UNIAPI_DROP_PARTY_ACK_indication= 44,   /* UNI -> API */
  215 
  216         UNIAPI_ABORT_CALL_request       = 45,   /* API -> UNI */
  217 
  218         UNIAPI_MAXSIG = 47
  219 };
  220 
  221 struct uniapi_error {
  222         uint32_t        reason;
  223         uint32_t        state;
  224 };
  225 /* keep this in sync with atmapi.h:enum atmerr */
  226 
  227 #define UNIAPI_DEF_ERRORS(MACRO)                                        \
  228         MACRO(OK, 0, "no error")                                        \
  229         MACRO(ERROR_BAD_SIGNAL, 1, "unknown signal")                    \
  230         MACRO(ERROR_BADCU,      2, "signal in bad co-ordinator state")  \
  231         MACRO(ERROR_BAD_CALLSTATE, 3, "signal in bad call state")       \
  232         MACRO(ERROR_BAD_EPSTATE, 4, "signal in bad endpoint state")     \
  233         MACRO(ERROR_BAD_ARG,    5, "bad argument")                      \
  234         MACRO(ERROR_BAD_CALL,   6, "unknown call reference")            \
  235         MACRO(ERROR_BAD_PARTY,  7, "unknown party")                     \
  236         MACRO(ERROR_BAD_CTYPE,  8, "bad type of call for signal")       \
  237         MACRO(ERROR_BAD_IE,     9, "bad information element")           \
  238         MACRO(ERROR_EPREF_INUSE, 10, "endpoint reference already in use") \
  239         MACRO(ERROR_MISSING_IE, 11, "missing information element")      \
  240         MACRO(ERROR_ENCODING,   12, "error during message encoding")    \
  241         MACRO(ERROR_NOMEM,      13, "out of memory")                    \
  242         MACRO(ERROR_BUSY,       14, "status enquiry busy")
  243 
  244 enum {
  245 #define DEF(NAME, VAL, STR) UNIAPI_##NAME = VAL,
  246 UNIAPI_DEF_ERRORS(DEF)
  247 #undef DEF
  248 };
  249 
  250 struct uniapi_call_created {
  251         struct uni_cref         cref;
  252 };
  253 struct uniapi_call_destroyed {
  254         struct uni_cref         cref;
  255 };
  256 struct uniapi_party_created {
  257         struct uni_cref         cref;
  258         struct uni_ie_epref     epref;
  259 };
  260 struct uniapi_party_destroyed {
  261         struct uni_cref         cref;
  262         struct uni_ie_epref     epref;
  263 };
  264 struct uniapi_abort_call_request {
  265         struct uni_cref         cref;
  266 };
  267 
  268 struct uniapi_reset_request {
  269         struct uni_ie_restart   restart;
  270         struct uni_ie_connid    connid;
  271 };
  272 
  273 struct uniapi_reset_confirm {
  274         struct uni_ie_restart   restart;
  275         struct uni_ie_connid    connid;
  276 };
  277 
  278 struct uniapi_reset_indication {
  279         struct uni_ie_restart   restart;
  280         struct uni_ie_connid    connid;
  281 
  282 };
  283 struct uniapi_reset_error_indication {
  284         uint32_t                source;         /* 0 - start, 1 - response */
  285         uint32_t                reason;
  286 };
  287 
  288 #define UNIAPI_DEF_RESET_ERRORS(MACRO)                          \
  289         MACRO(UNIAPI_RESET_ERROR_NO_CONFIRM,            0,      \
  290             "no confirmation")                                  \
  291         MACRO(UNIAPI_RESET_ERROR_NO_RESPONSE,           1,      \
  292             "no response")                                      \
  293         MACRO(UNIAPI_RESET_ERROR_PEER_INCOMP_STATE,     2,      \
  294             "incompatible state")
  295 enum {
  296 #define DEF(NAME, VALUE, STR) NAME = VALUE,
  297 UNIAPI_DEF_RESET_ERRORS(DEF)
  298 #undef DEF
  299 };
  300 
  301 struct uniapi_reset_response {
  302         struct uni_ie_restart   restart;
  303         struct uni_ie_connid    connid;
  304 };
  305 
  306 struct uniapi_reset_error_response {
  307         struct uni_ie_cause     cause;
  308 };
  309 
  310 struct uniapi_reset_status_indication {
  311         struct uni_cref         cref;           /* STATUS message CREF */
  312         struct uni_ie_callstate callstate;
  313         struct uni_ie_cause     cause;
  314 };
  315 
  316 struct uniapi_setup_request {
  317         struct uni_setup        setup;
  318 };
  319 struct uniapi_setup_indication {
  320         struct uni_setup        setup;
  321 };
  322 struct uniapi_setup_response {
  323         struct uni_connect      connect;
  324 };
  325 struct uniapi_setup_confirm {
  326         struct uni_connect      connect;
  327 };
  328 struct uniapi_setup_complete_indication {
  329         struct uni_connect_ack  connect_ack;
  330 };
  331 struct uniapi_setup_complete_request {
  332         struct uni_connect_ack  connect_ack;
  333 };
  334 
  335 struct uniapi_alerting_request {
  336         struct uni_alerting     alerting;
  337 };
  338 
  339 struct uniapi_alerting_indication {
  340         struct uni_alerting     alerting;
  341 };
  342 
  343 struct uniapi_proceeding_request {
  344         struct uni_call_proc    call_proc;
  345 };
  346 
  347 struct uniapi_proceeding_indication {
  348         struct uni_call_proc    call_proc;
  349 };
  350 
  351 
  352 struct uniapi_release_request {
  353         struct uni_release      release;
  354 };
  355 struct uniapi_release_indication {
  356         struct uni_release      release;
  357 };
  358 struct uniapi_release_response {
  359         struct uni_release_compl release_compl;
  360 };
  361 /*
  362  * A release confirm can come from a RELEASE COMPLETE or a RELEASE.
  363  * Because the IEs in a RELEASE COMPLETE are a subset of a RELEASE,
  364  * use the RELEASE here.
  365  */
  366 struct uniapi_release_confirm {
  367         struct uni_release      release;
  368 };
  369 
  370 struct uniapi_notify_request {
  371         struct uni_notify       notify;
  372 };
  373 struct uniapi_notify_indication {
  374         struct uni_notify       notify;
  375 };
  376 
  377 struct uniapi_status_indication {
  378         struct uni_cref         cref;
  379         enum uni_callstate      my_state;
  380         enum uni_cause          my_cause;
  381         struct uni_ie_callstate his_state;
  382         struct uni_ie_cause     his_cause;
  383         struct uni_ie_epref     epref;
  384         struct uni_ie_epstate   epstate;
  385 };
  386 struct uniapi_status_enquiry_request {
  387         struct uni_cref         cref;
  388         struct uni_ie_epref     epref;
  389 };
  390 
  391 struct uniapi_add_party_request {
  392         struct uni_add_party    add;
  393 };
  394 struct uniapi_add_party_indication {
  395         struct uni_add_party    add;
  396 };
  397 
  398 struct uniapi_party_alerting_request {
  399         struct uni_party_alerting alert;
  400 };
  401 struct uniapi_party_alerting_indication {
  402         struct uni_party_alerting alert;
  403 };
  404 
  405 struct uniapi_add_party_ack_request {
  406         struct uni_add_party_ack ack;
  407 };
  408 struct uniapi_add_party_ack_indication {
  409         struct uni_add_party_ack ack;
  410 };
  411 struct uniapi_add_party_rej_request {
  412         struct uni_add_party_rej rej;
  413 };
  414 struct uniapi_add_party_rej_indication {
  415         struct uni_add_party_rej rej;
  416 };
  417 
  418 struct uniapi_drop_party_request {
  419         struct uni_drop_party   drop;
  420 };
  421 struct uniapi_drop_party_indication {
  422         struct uni_drop_party   drop;
  423         struct uni_ie_cause     my_cause;
  424 };
  425 
  426 struct uniapi_drop_party_ack_request {
  427         struct uni_drop_party_ack ack;
  428 };
  429 struct uniapi_drop_party_ack_indication {
  430         struct uni_drop_party   drop;
  431         struct uni_ie_crankback crankback;
  432 };
  433 
  434 union uniapi_all {
  435         struct uniapi_error                     error;
  436         struct uniapi_call_created              call_created;
  437         struct uniapi_call_destroyed            call_destroyed;
  438         struct uniapi_party_created             party_created;
  439         struct uniapi_party_destroyed           party_destroyed;
  440         struct uniapi_abort_call_request        abort_call_request;
  441         struct uniapi_reset_request             reset_request;
  442         struct uniapi_reset_confirm             reset_confirm;
  443         struct uniapi_reset_indication          reset_indication;
  444         struct uniapi_reset_error_indication    reset_error_indication;
  445         struct uniapi_reset_response            reset_response;
  446         struct uniapi_reset_error_response      reset_error_response;
  447         struct uniapi_reset_status_indication   reset_status_indication;
  448         struct uniapi_setup_request             setup_request;
  449         struct uniapi_setup_indication          setup_indication;
  450         struct uniapi_setup_response            setup_response;
  451         struct uniapi_setup_confirm             setup_confirm;
  452         struct uniapi_setup_complete_indication setup_complete_indication;
  453         struct uniapi_setup_complete_request    setup_complete_request;
  454         struct uniapi_alerting_request          alerting_request;
  455         struct uniapi_alerting_indication       alerting_indication;
  456         struct uniapi_proceeding_request        proceeding_request;
  457         struct uniapi_proceeding_indication     proceeding_indication;
  458         struct uniapi_release_request           release_request;
  459         struct uniapi_release_indication        release_indication;
  460         struct uniapi_release_response          release_response;
  461         struct uniapi_release_confirm           release_confirm;
  462         struct uniapi_notify_request            notify_request;
  463         struct uniapi_notify_indication         notify_indication;
  464         struct uniapi_status_indication         status_indication;
  465         struct uniapi_status_enquiry_request    status_enquiry_request;
  466         struct uniapi_add_party_request         add_party_request;
  467         struct uniapi_add_party_indication      add_party_indication;
  468         struct uniapi_party_alerting_request    party_alerting_request;
  469         struct uniapi_party_alerting_indication party_alerting_indication;
  470         struct uniapi_add_party_ack_request     add_party_ack_request;
  471         struct uniapi_add_party_ack_indication  add_party_ack_indication;
  472         struct uniapi_add_party_rej_request     add_party_rej_request;
  473         struct uniapi_add_party_rej_indication  add_party_rej_indication;
  474         struct uniapi_drop_party_request        drop_party_request;
  475         struct uniapi_drop_party_indication     drop_party_indication;
  476         struct uniapi_drop_party_ack_request    drop_party_ack_request;
  477         struct uniapi_drop_party_ack_indication drop_party_ack_indication;
  478 };
  479 
  480 #endif

Cache object: fd92ff24b0e28ddda7c01b18d07b6b1b


[ 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.