---
name: "ng_sscfu"
section: "4"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/ng_sscfu"
---

# ng\_sscfu(4)

netgraph SSCF at the UNI node type

## 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)](/ng_sscop/4.md)) 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)](/ng_sscop/4.md) 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)](/netgraph/4.md), [ng\_atm(4)](/ng_atm/4.md), [ng\_sscop(4)](/ng_sscop/4.md), [ngctl(8)](/ngctl/8.md)

## AUTHORS

Harti Brandt ⟨harti@FreeBSD.org⟩
