GGATED(8)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1

🌸 GGATED(8) β€” the GEOM Gate network daemon, bestie edition 🌸

okay so first things first: this is a page from the System Manager's Manual, and the utility itself is ggated β€” the GEOM Gate network daemon. yes that's a lot of capital letters, we'll get through it together 🫢


✨ NAME ✨

ggated β€” the GEOM Gate network daemon πŸ’…

πŸŽ€ SYNOPSIS πŸŽ€

ggated [-h] [-n] [-v] [-a address] [-p port] [-F pidfile] [-R rcvbuf]
       [-S sndbuf] [exports file]

πŸ¦‹ DESCRIPTION πŸ¦‹

So ggated is a network server for the GEOM Gate class. It lives on a server machine and its whole job is servicing GEOM Gate requests coming from workers that are hanging out on a client machine. Very main character, very "I'm the one holding it down" energy πŸ‘‘

⚠️ Real talk though, and I need you to hear me: connections between ggatec(8) and ggated are not encrypted. Not encrypted. zero. nada. no cap. Keep that in mind before you go exporting your whole life over the network πŸ™ˆ

πŸ“ available options

  • -a address β€” picks the IP address to bind to. you're choosing where it lives ✨
  • -h β€” prints the available options. the classic "help me help you" flag πŸ’–
  • -n β€” do not use the TCP_NODELAY option on TCP sockets. just… no delay-ing, periodt.
  • -p port β€” the port ggated listens on for connections. default is 3080 πŸ”₯
  • -F pidfile β€” the PID file that ggated uses.
  • -R rcvbuf β€” size of the receive buffer to use. default is 131072 (which is 128 KiB, if you're a "please give me units" girlie) 🌸
  • -S sndbuf β€” size of the send buffer to use. default is 131072 (128 KiB, same vibe) 🌸
  • -v β€” do not fork, run in the foreground, and print debug information on standard output. chaotic but transparent, we love a no-hiding narrator 😭
  • exports file β€” an alternate location for the exports file. you can absolutely move it, it's giving "my house my rules" 🏠

πŸ’œ the exports file format, iykyk

The format of an exports file is literally as follows:

1.2.3.4         RO              /dev/cd0
1.2.3.0/24      RW              /tmp/test.img
hostname        WO              /tmp/image
hostname        RW,DIRECT       /tmp/direct-image
hostname        RW,NODIRECT     /tmp/nodirect-image

Let's break down the columns, because yes there are three and yes you need all of them πŸ’…

The first column specifies the ip, the network with netmask, or the hostname that the export applies to. That's your "who gets to touch this" column πŸ‘€

The next column is the access flags that apply to the export:

  • RO β€” Read-Only. the path specified will be exported to the client read only. look, don't touch πŸŽ€
  • WO β€” Write-Only. the path specified will be exported to the client write only. touch, don't look πŸ™ˆ
  • RW β€” Read-Write. the path specified will be exported to the client read-write. the full experience, the whole buffet πŸ‘‘
  • DIRECT β€” the path specified will always be opened with O_DIRECT for clients.
  • NODIRECT β€” the path specified will never be opened with O_DIRECT for clients.

The final column specifies the path to export. that's it, that's the one 🌈


⭐ how access actually gets decided (the group-chat drama)

Files are opened with the least common flags between the client and the server. Like, the intersection where everybody agrees. A client may request read or write only to a read-write export, and the server will honor the client request and open the file in the requested mode. Very "you asked nicely, so sure" πŸ’– But a client requesting greater access than the permissions listed in the file will be rejected. ma'am, this is a RO, please do not πŸ’€

πŸ”₯ DIRECT vs NODIRECT, explained with feeling

DIRECT and NODIRECT are used to coerce the use of the O_DIRECT flag to open(2) when the specified path is opened.

  • If DIRECT is specified, the path is always opened with O_DIRECT.
  • If NODIRECT is specified, the path is never opened with O_DIRECT.

DIRECT access limits the cache effects of IO operaions on the file. The effect here is that clients accessing exports will not impact the cache of the local machine β€” cute, considerate, respectful of your local cache's boundaries ✨ β€” however it will cause greater IO utilization to the devices on which the files reside. so like, you're trading one vibe for another, choose wisely πŸ¦‹

If neither is specified, the server will use the preference specified by the client, with the default to not use O_DIRECT. And if the client specifies a preference against the server's configuration, the client preference will be silently ignored. no argument, no text back, just read receipt and nothing else 😭

🌸 FILES 🌸

  • /var/run/ggated.pid β€” the default location of the ggated PID file. that's its little home 🏠

πŸ’… EXIT STATUS πŸ’…

Exit status is 0 on success, or 1 if the command fails. And to get details about the failure, ggated should be called with the -v option β€” that's your "okay but why" flag, use it πŸ”

πŸ‘‘ EXAMPLES πŸ‘‘

Export a CD-ROM device, a file, and a file with the O_DIRECT option β€” all in one go, we love a combo:

# echo "1.2.3.0/24 RO /dev/cd0" > /etc/gg.exports
# echo "client RW /image" >> /etc/gg.exports
# echo "client RW,DIRECT /image2" >> /etc/gg.exports
# echo "client RW,NODIRECT /image3" >> /etc/gg.exports
# ggated

ate. no crumbs. 🍽️

🧚 SEE ALSO 🧚

open(2), geom(4), ggatec(8), ggatel(8) β€” go read the whole friend group, they're all connected πŸ’œ

🌈 HISTORY 🌈

The ggated utility appeared in FreeBSD 5.3. a legend was born ✨

πŸŽ€ AUTHORS πŸŽ€

The ggated utility as well as this manual page was written by Pawel Jakub Dawidek <pjd@FreeBSD.org>. thank you king 🫢


πŸ’– okay that's the whole page, you made it, I'm so proud of you. go export something responsibly. and remember: not encrypted. love you, bye πŸ’–

signing off from the Debian edition, dated September 8, 2016, from your favorite GGATED(8) girlie β€” mwah πŸ’‹

πŸ“¦ where this page comes from
  • freebsd 15.1: base 15.1
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms