---
name: "mstack"
section: "1"
platform: "linux"
package: "umview"
version: "0.8.2-3"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/mstack"
---

# mstack(1)

networking stack selection

## NAME

mstack - networking stack selection

## SYNOPSIS

**mstack** \[*-hv*\] \[*-o* protocol list\] *stack\_mountpoint* *command*\

## DESCRIPTION

*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)](/socket/2.md)** system call. The stack mountpoint identifies the stack. In ViewOS it is the mountpoint where the stack was mounted (by **[mount(2)](/mount/2.md)(8)**. In fact the call:\
 "socket(domain,type,protocol)" \
 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)](/execve/2.md)).**

## OPTIONS

- **-h**

  **prints the mstack command usage**

- **-v**

  **sets the verbose mode on**

- **-o**

  **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.

## EXAMPLES

- **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.

## SEE ALSO

**[umview(1)](/umview/1.md),** **[kmview(1)](/kmview/1.md),** **msocket(3),** **umnetnative(9),** **umnetnull(9),** **umnetlwipv6(9),** **[unix(7)](/unix/7.md),** **[ip(7)](/ip/7.md),** **[ipv6(7)](/ipv6/7.md),** **[netlink(7)](/netlink/7.md),** **[packet(7)](/packet/7.md).**

## AUTHORS

View-OS is a project of the Computer Science Department, University of Bologna. Project Leader: Renzo Davoli. \
 \<http://www.sourceforge.net/projects/view-os\>

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