Provided by: freebsd-manpages_9.2+1-1_all bug

NAME

     ng_sscfu — netgraph SSCF at the UNI node type

SYNOPSIS

     #include <netnatm/saal/sscopdef.h>
     #include <netnatm/saal/sscfudef.h>
     #include <netgraph/atm/ng_sscfu.h>

DESCRIPTION

     The sscfu netgraph node type implements ITU-T recommendation Q.2130.  This recommendation
     specifies the Service Specific Coordination Function at the UNI.  This is a thin sub-layer
     between the SSCOP (see ng_sscop(4)) and the UNI signalling.  This node does not really
     implement a protocol but provides a mapping between the signals at the upper layer of the
     SSCOP and the signals the UNI expects at its lower layer.  It also provides default values
     for the parameters of the SSCOP.

     After creation of the node, the SSCF instance must be created by sending an “enable” message
     to the node.  If the node is enabled, default SSCOP parameters can be retrieved and set in
     the corresponding SSCOP instance.

     The node is shut down either by a NGM_SHUTDOWN message, or when all hooks are disconnected.

HOOKS

     Each sscfu node has two hooks with fixed names:

     lower  This hook is the interface to the SSCOP.  The interface expected here is exactly that
            which is exported by the ng_sscop(4) node type.

     upper  This is the interface to the UNI.  It uses the following message format:

            struct sscfu_arg {
                    uint32_t sig;
                    u_char   data[];
            };

            The sig field is one of the following signals:

            enum saal_sig {
                SAAL_ESTABLISH_request,     /* U -> SAAL: (UU) */
                SAAL_ESTABLISH_indication,  /* SAAL -> U: (UU) */
                SAAL_ESTABLISH_confirm,     /* SAAL -> U: (UU) */
                SAAL_RELEASE_request,       /* U -> SAAL: (UU) */
                SAAL_RELEASE_confirm,       /* SAAL -> U: */
                SAAL_RELEASE_indication,    /* SAAL -> U: (UU) */
                SAAL_DATA_request,          /* U -> SAAL: (DATA) */
                SAAL_DATA_indication,       /* SAAL -> U: (DATA) */
                SAAL_UDATA_request,         /* U -> SAAL: (UDATA) */
                SAAL_UDATA_indication,      /* SAAL -> U: (UDATA) */
            };

            The arrows in the comment show the direction of the signal, whether it is a signal
            that comes out of the node (‘->’), or is sent by the node user to the node (‘<-’).
            The type of the data expected for the signal is specified in parentheses.  This data
            starts at the data field of the message structure.

     If the lower hook is disconnected and the node is enabled, the protocol state is reset.

CONTROL MESSAGES

     The sscfu node understands the generic messages plus the following:

     NGM_SSCFU_GETDEFPARAM
             This message returns a sscop_param structure, which contains the default parameters
             for the SSCOP at the UNI.  This structure should be used for a NGM_SSCOP_SETPARAM
             message to the SSCOP node below the SSCF.

     NGM_SSCFU_ENABLE
             This message creates the actual SSCF instance and initializes it.  Until this is
             done, parameters may neither be retrieved nor set, and all messages received on any
             hook are discarded.

     NGM_SSCFU_DISABLE
             Destroy the SSCF instance.  After this, all messages on any hooks are discarded.

     NGM_SSCFU_GETDEBUG
             Retrieve the debugging flags in a uint32_t.

     NGM_SSCFU_SETDEBUG
             Set debugging flags.  The argument must be a uint32_t.

     NGM_SSCFU_GETSTATE
             Retrieve the current state of the SSCFU instance in a uint32_t.  If the node has not
             been enabled, 0 is returned.

SEE ALSO

     netgraph(4), ng_atm(4), ng_sscop(4), ngctl(8)

AUTHORS

     Harti Brandt <harti@FreeBSD.org>