NG_FRAME_RELAY(4)
π¦ NG_FRAME_RELAY(4) β kernel interfaces manual, bestie edition π¦
okay so picture this: it's a Kernel Interfaces Manual page, the title is NG_FRAME_RELAY, and it's section 4 of the manual (that's the kernel-interfaces girlies π
). today we're talking about the frame relay netgraph node type. stay with me, it's gonna slay.
β¨ NAME β¨
ng_frame_relay β the frame relay netgraph node type. that's it, that's the name. iconic.
πΈ SYNOPSIS πΈ
#include <netgraph/ng_frame_relay.h>
yes bestie, that's the whole thing. one include and you're in. π«Ά
π DESCRIPTION π
okay so the frame_relay node type is literally out here doing encapsulation, de-encapsulation, and multiplexing of packets using the frame relay protocol. like it's doing the most and it's eating. π₯
it supports up to 1024 DLCI's. yes, 1024. that's a lot of virtual channels and honestly? she can handle it. no cap.
the LMI protocol is not her job though β that's handled by a separate node type, so go look at ng_lmi(4) if that's what you need. teamwork makes the dream work, iykyk. π§
here's the vibe check on wiring it up: the downstream hook should be connected to the synchronous line β i.e., the switch. π then hooks dlci0, dlci1, and all the way through dlci1023 become available so you can connect to each of the DLCI channels. literally one hook per channel, all lined up like a friendship bracelet. π
π HOOKS π
this node type supports the following hooks, periodt:
downstreamβ the connection to the synchronous line. that's the switch, bestie. π«dlciXβ here X is a decimal number from0to1023. this hook corresponds to the DLCI X frame relay virtual channel. so like, one hook per virtual channel, zero through one-thousand-twenty-three, and yes you read that right. π
π©· CONTROL MESSAGES π©·
this node type supports only the generic control messages. that's it. she's lowkey low-maintenance like that. π
π SHUTDOWN π
this node shuts down when it receives a NGM_SHUTDOWN control message, or when all hooks have been disconnected. so like... either you tell her to go, or everyone leaves the group chat. both work. π
π SEE ALSO π
go read these, they're all part of the lore. π
β HISTORY β
the ng_frame_relay node type was implemented in FreeBSD 4.0. vintage! she's been thriving for a minute. π°οΈ
π AUTHORS π
Julian Elischer <julian@FreeBSD.org> β thank you for your service, king. π
π BUGS π
okay so this is the part where we're honest. technically β 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. like, that's the correct behaviour. that's what should happen.
but the ng_frame_relay node type ignores this restriction, and will always pass data received on a DLCI hook to downstream. always. no vibe check, no waiting for permission. π
instead, it should query the LMI node first. so yeah β that's the bug, that's the tea, and now you know. π
and that's the whole page bestie!! π this one came from the Debian source, dated January 19, 1999, and it was section NG_FRAME_RELAY(4) all along. mwah, go configure some virtual channels, love you, bye!! πβ¨ππ¦
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 1996-1999 Whistle Communications, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms