SHNCPD(8)

πŸ“¦ version 2016-06, in nixos 26.05, nixpkgs unstable

πŸ’… SHNCPD(8) β€” the manual page, bestie edition πŸŽ€

okay so first things first: this is shncpd, and it lives in section 8 of the System Manager's Manual. buckle up, she's a whole vibe ✨


🌸 NAME 🌸

shncpd β€” the simple, stupid and slow HNCP daemon πŸ’πŸ’–

like yes bestie she said it herself: simple, stupid, slow. that's the brand. own it. πŸ‘‘


✨ SYNOPSIS ✨

shncpd option...  [ -- ] interface...

so you feed her options, then optionally a --, then your interfaces. that's it. that's the whole entrance exam. πŸŽ€


πŸ’œ DESCRIPTION πŸ’œ

shncpd is a standalone implementation of a useful subset of the Homenet protocol stack. not the whole thing, just the good parts. and honestly? the good parts are giving. πŸ¦‹

here's what she actually implements, no cap:

  • DNCP flooding 🌊
  • prefix and address assignment πŸ“¬
  • prefix delegation (manually configured) 🎁
  • a router advertisement server πŸ“’
  • a DHCPv4 server 🧾

big important thing: shncpd does not do routing itself. she outsources. she relies on babeld. teamwork makes the dream work 🫢

so before you run shncpd, you should start up an instance of babeld with redistribution of protocol 43 enabled. do that first. like, before. ⚠️


πŸ’… OPTIONS πŸ’…

  • -m multicast-address β€” pick which link-local multicast address she should use. the default is ff02::11. πŸ“‘
  • -p port β€” set the UDP port number. default is 8231. πŸ”Œ
  • -d level β€” how much debugging info gets dumped to standard error. the useful values are 0 (which is the default) and 2. choose your chaos level, babe. 🐞
  • -E prefix β€” announce an externally delegated prefix over both HNCP and the routing protocol. and yes you can repeat this option multiple times, stack 'em up. πŸŽ€
  • -N prefix β€” announce a name server over HNCP. also repeatable, multiple times, go off. 🌈
  • -R β€” disable the router advertisement (RA) server. by default, RAs get sent if we're a router. so this is the "actually, no thanks" button. πŸ™…β€β™€οΈ
  • -D β€” disable the DHCPv4 server. by default the DHCPv4 server is enabled if we win the election, even if we're not acting as a router. election era fr πŸ—³οΈ
  • -s script β€” run this given script when we learn new DHCP data. she calls it multiple times with the argument "up", then a single time with the argument "down". up up up down, like a little heartbeat πŸ’“
  • -L interface β€” add a leaf interface. πŸƒ
  • -A interface β€” add an ad-hoc interface. this assigns a /64 prefix (/24 for IPv4), and runs an RA and DHCPv4 server. this is not likely to be useful, but it's in the spec. rules are rules 😭
  • -M interface β€” add an ad-hoc interface. this one doesn't assign any prefixes, only addresses, and it doesn't run a DHCPv4 server. this is not in the spec, but it's likely to actually be useful. icon behaviour, honestly πŸ’€

πŸ”₯ SIGNALS πŸ”₯

  • SIGUSR1 β€” dump the current state to standard output. a little peek behind the curtain, iykyk πŸ‘€

🌟 SEE ALSO 🌟

babeld(8). your other bestie, the router one. 🧚


πŸ’– AUTHOR πŸ’–

Juliusz Chroboczek. legend. πŸ‘‘


ngl bestie, the whole game here is: start babeld first with protocol 43 redistribution, then let shncpd do her little prefix-and-address thing. she's not routing for you. she's just built different. periodt. πŸ’…βœ¨

signing off from page 8 of the System Manager's Manual β€” that's SHNCPD(8), and there's no date on this one, so we're just out here timeless πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from