LES(8)

✨ LES(8) β€” the LAN Emulation service demons, explained by your fave ✨

okay bestie, pull up a chair πŸ’– this is the les and bus manual page, from the Maintenance Commands corner of the Linux manpages. Two little ATM LAN Emulation service demons, living their best life. Let's get into it.


πŸŽ€ NAME πŸŽ€

les, bus β€” ATM LAN Emulation service demons

no cap, they're literally called demons. iconic.


πŸ¦‹ SYNOPSIS πŸ¦‹

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

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

🌸 DESCRIPTION 🌸

The LE Service is made up of three components, and the way they run the whole operation is lowkey a girl group:

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

πŸ’… so what does les actually do

les is the one running the control coordination function for the emulated LAN. Main character energy, honestly.

LE clients register MAC addresses and/or route descriptors that they represent over to les, and then later they query it when they wanna resolve MAC addresses / route descriptors into ATM addresses. And any other LE control messages that need to get distributed to every client in the ELAN also get sent to les too. les then forwards those messages using the Control Distribute VCC that it has set up to every client in the ELAN. she's got connections everywhere, periodt.

πŸ‘‘ and bus?

bus handles the data that clients send to broadcast and multicast MAC addresses, plus some of the data that's directed at unicast addresses. Here's the tea: an LE Client has the possibility to send data directed to some unicast address to the bus before the target's ATM address has been resolved and the Data Direct VCC has been established. so like, sending it before you even know where it's going. brave. 🫢

🧚 configuration file example for les and bus

[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"

⭐ how the config file works

The configuration file has each module's name in brackets, followed by the variable definitions for that module. The definitions are in the form variable=value, and that value can be any of:

  • 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, plus variables S1-S6 as defined in the LE specification. let's break them down:

  • 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 the mood ring of the server

  • SIGHUP β€” causes restart of the server. All resources are released and the server is started. fresh start bestie πŸ’–
  • SIGUSR1 β€” causes the server to dump its internal state. journaling! we love self-reflection ✨
  • SIGUSR2 β€” shuts down the server, (hopefully) gracefully. key word hopefully 😭

πŸ’– OPTIONS πŸ’–

  • -d module β€” Sets debugging messages on for a module. "All" sets debugging on for all modules.
  • -m module β€” Sets 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.

πŸ“ FILES πŸ“

  • .lanevars β€” configuration file

πŸ’€ BUGS πŸ’€

ngl, this is the part where it gets real:

  • The 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. 😭
  • Supports only IEEE 802.3 / Ethernet type of ELANs.
  • This manual page is confusing.
okay the last one is so honest of them, we have to respect it πŸ™ˆ

πŸ‘‘ AUTHOR πŸ‘‘

Marko Kiiskila, TUT <carnil@cs.tut.fi>


🌟 SEE ALSO 🌟

lecs(8), atmsigd(8), zeppelin(8)


and that's the whole page, bestie!! this one came from the Linux manpages, dated Sep 11, 1996 β€” so it's giving vintage, it's giving retro tech, and it's still out here doing its thing. mwah πŸ’…βœ¨

πŸ“¦ where this page comes from