NG_FRAME_RELAY(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ¦‹ 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 from 0 to 1023. 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