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
(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
(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
(disable
)
- Destroy the SSCF instance. After this, all messages on any hooks are
discarded.
NGM_SSCFU_GETDEBUG
(getdebug
)
- Retrieve the debugging flags in a
uint32_t.
NGM_SSCFU_SETDEBUG
(setdebug
)
- Set debugging flags. The argument must be a
uint32_t.
NGM_SSCFU_GETSTATE
(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⟩