mstack(1) networking stack selection


mstack [-hv] [-o protocol list] stack_mountpoint command


In View-OS multiple networking stacks are available to processes at the same time. View-OS supports the msocket(2) system call. mstack defines the default stack (for each address family) that is used when msocket refers to a NULL pathname for its stack. mstack provides also a backward compatibility for all the programs using the obsolete socket(2) system call. The stack mountpoint identifies the stack. In ViewOS it is the mountpoint where the stack was mounted (by mount(2)(8). In fact the call:
is equivalent to:
"msocket(NULL,domain,type protocol)"
mstacks changes the default stack for the desired protocol families and executes the command (by execve(2)).


prints the mstack command usage
sets the verbose mode on
defines the list of protocols. Without a -o option, mstack redefines the default stack for all protocols families. The list of protocols may include the a comma separated sequence of the following items: all, unix (or simply u), ipv4 (4), ipv6 (6), netlink (n), packet (p), bluetooth (b), irda (i), ip (which include all ip related protocols ipv4, ipv6, netlink and packet), #n where n is the number of protocol. Each item can be prefixed by + or - to specify whether the protocol/group of protocols must be added or removed from the set.


mstack /dev/net/lwip ip addr

lists the address managed by the stack mounted on /dev/net/lwip.
exec mstack /dev/net/null bash

disables the standard stack in a new bash (which overcomes the current one).
mstack -o ip /dev/net/lwip bash

starts a new bash which uses the stack /dev/net/lwip for ipv4 and ipv6 but not for the other protocols.
mstack -o -unix /dev/net/lwip bash

starts a new bash which uses the stack /dev/net/lwip for all protocols but AF_UNIX.
mstack -o +ip,-ipv6 /dev/net/lwip bash

starts a new bash which uses the stack /dev/net/lwip for ipv4, netlink, packet but not ipv6.


View-OS is a project of the Computer Science Department, University of Bologna. Project Leader: Renzo Davoli.

Howto's and further information can be found on the project wiki <>.