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.