LES(8)

πŸ“¦
version 2.5.2 Β· 2 versions
, in arch rolling, fedora 43, fedora 44, opensuse-leap 16.0

πŸ’… LES(8) β€” the ATM LAN Emulation service demons, bestie edition ✨

okay so you opened the manpage for les and bus, two little ATM LAN Emulation service demons. this one's from the Maintenance Commands corner of the manual and ngl it's giving vintage 1996 realness, but we're gonna make it make sense. let's go 🫢


🌸 NAME 🌸

les, bus β€” ATM LAN Emulation service demons. literally what it says on the tin.


✨ SYNOPSIS ✨

les [-d module] [-m module] [-f configuration_file]

bus [-d module] [-m module] [-f configuration_file]

both of them take the exact same flags, so you only have to learn this once. slay.


πŸ’– DESCRIPTION πŸ’–

okay so the LE Service is a whole trio, a little friend group of daemons:

  • LAN Emulation Configuration Server β€” that's lecs(8)
  • LAN Emulation Server β€” that's les
  • Broadcast and Unknown Server β€” that's bus

πŸŽ€ what les is actually doing

les runs the control coordination function for the emulated LAN. LE clients register the MAC addresses and/or route descriptors they represent with les, and then later they query it when they want to resolve MAC addresses/route descriptors into ATM addresses. it's the main character of address resolution, periodt.

other LE control messages that need to be distributed to every client in the ELAN also get sent to les, and les forwards them using the Control Distribute VCC which it has set up to every client in the ELAN. it's the group-chat admin broadcasting to everyone πŸ’…

πŸ¦‹ what bus is actually doing

bus handles data sent by clients to broadcast and multicast MAC addresses, plus some of the data directed to unicast addresses. why unicast? because an LE Client has the option to send data directed to some unicast address to bus before the target's ATM address has been resolved and the Data Direct VCC has been established. it's the "idk where they live yet so just drop it here" energy πŸ™ˆ

🧚 the configuration file, ft. a full example

here's a configuration file example for les and bus, copied exactly because details matter:

[main]
memdebug=True
debug=True
[load]
#memdebug=True
#debug=True
[conn]
debug=True
#S1, LE Server's ATM address
#S1=:47:00:23:00:00:00:03:00:00:01:00:02:01:00:20:ea:00:05:aa:00
S1=:47:00:23:00:00:00:03:03:00:01:00:02:01:00:20:ea:00:0a:e9:01
#S2, LAN Type
S2="802.3"
#S3, Maximum Frame Size
S3=1516
#S4, Join Timeout, s
S4=15
#S5, Maximum Frame Age, s
S5=6
#S6, BUS Atm address
S6=:47:00:23:00:00:00:03:03:00:01:00:02:01:00:20:ea:00:0a:e9:02 #viulu
#S6=0,0,170
#ELANNAME="asdf"

so the config file contains each module's name in brackets, followed by variable definitions for that module. the definitions are of the form variable=value, where the value can be either:

  • an integer
  • a truth value (True/False)
  • a string enclosed in double quotes ("string")
  • an ATM address in hexadecimal format

the variables you can set are the debug/memdebug for each module, and the variables S1-S6 as defined in the LE specification. here's the breakdown, no skipping:

  • S1 = Address of the LES. This address is used in ATM signalling.
  • S2 = Type of the emulated LAN. Valid values is "802.3".
  • S3 = Maximum frame size. Valid value is 1516.
  • S4 = Join Timeout. Time in seconds which LES waits for LE_JOIN_REQUEST before tearing down a connection.
  • S5 = Maximum frame Age. Currently not used.
  • S6 = Address of the BUS. This address is used in ATM signalling.
  • ELANNAME = Name of the emulated LAN

⚑ signals, aka how to talk to your daemon

  • SIGHUP causes restart of the server. all resources are released and the server is started. it's giving "log out, log back in, fresh start" ✨
  • SIGUSR1 causes the server to dump its internal state. perfect for when you need the tea on what it's thinking.
  • SIGUSR2 shuts down the server (hopefully) gracefully. the "(hopefully)" is doing a lot of heavy lifting there, ngl 😭

πŸ”₯ OPTIONS πŸ”₯

  • -d module β€” Set debugging messages on for a module. "All" sets debugging on for all modules. everything, everywhere, all at once.
  • -m module β€” Set memory debugging messages on for a module. "All" sets debugging on for all modules.
  • -f configuration_file β€” Use the specified configuration file instead of .lanevars. your file, your rules.

🌈 FILES 🌈

  • .lanevars β€” configuration file. the default one, the og.

πŸ’€ BUGS πŸ’€

okay bestie, sit down for this part:

  • Servers don't establish point-to-multipoint connections to LE clients as the specification states, which means that some LE clients won't work with these servers. not ideal, fr fr.
  • Supports only IEEE 802.3 / Ethernet type of ELANs. that's the whole menu, no substitutions.
  • This manual page is confusing. it SAID that. the manpage is self-aware. iconic honestly πŸ’€

πŸ‘‘ AUTHOR πŸ‘‘

Marko Kiiskila, TUT <carnil@cs.tut.fi>. thank you for your service 🫢


πŸ“ SEE ALSO πŸ“

lecs(8), atmsigd(8), zeppelin(8) β€” go read those too, iykyk.


and that's the whole page, bestie 🌸 it's from the Linux manual, Sep 11, 1996, LES(8) β€” 1996 called and it wants its ATM LAN emulation back, but honestly the vibes are immaculate. you're welcome πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from