---
name: "ng_frame_relay"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/ng_frame_relay"
---

# ng\_frame\_relay(4)

frame relay netgraph node

## NAME

**ng\_frame\_relay** – frame relay netgraph node

## SYNOPSIS

**#include \<netgraph/ng\_frame\_relay.h\>**

## DESCRIPTION

The **frame\_relay** node type performs encapsulation, de-encapsulation, and multiplexing of packets using the frame relay protocol. It supports up to 1024 DLCI's. The LMI protocol is handled by a separate node type (see [ng\_lmi(4)](/ng_lmi/4.md)).

The downstream hook should be connected to the synchronous line, i.e., the switch. Then hooks dlci0, dlci1, through dlci1023 are available to connect to each of the DLCI channels.

## HOOKS

This node type supports the following hooks:

- *downstream*

  The connection to the synchronous line.

- *dlciX*

  Here X is a decimal number from 0 to 1023. This hook corresponds to the DLCI X frame relay virtual channel.

## CONTROL MESSAGES

This node type supports only the generic control messages.

## SHUTDOWN

This node shuts down upon receipt of a NGM\_SHUTDOWN control message, or when all hooks have been disconnected.

## SEE ALSO

[netgraph(4)](/netgraph/4.md), [ng\_lmi(4)](/ng_lmi/4.md), [ngctl(8)](/ngctl/8.md)

## HISTORY

The **ng\_frame\_relay** node type was implemented in FreeBSD 4.0.

## AUTHORS

Julian Elischer ⟨*julian@FreeBSD.org*⟩

## BUGS

Technically, frames on DLCI X should not be transmitted to the switch until the LMI protocol entity on both ends has configured DLCI X as active. The **ng\_frame\_relay** node type ignores this restriction, and will always pass data received on a DLCI hook to downstream. Instead, it should query the LMI node first.
