MPW(4)

NAME
mpw - MPLS pseudowire

SYNOPSIS
pseudo-device mpw

#include <sys/types.h>
#include <netmpls/mpls.h>

DESCRIPTION
The mpw interface is used to create an MPLS layer 2 tunnel between two points.

A mpw interface can be created at runtime using the ifconfig mpwN create command or by setting up a hostname.if(5) configuration file for netstart(8). The interface itself can be configured with ifconfig(8).

The supported pseudowire operation modes are ‘ethernet’ and ‘ethernet-tagged’. The ‘ethernet’ operating mode passes all Ethernet packets transparently through the interface, meanwhile the ‘ethernet-tagged’ requires that the client uses at least one VLAN to pass the traffic. The mpw interface labels, neighbor, encapsulation and administrative state are normally configured by ldpd(8), but it is also possible to configure them manually. The configuration information that will be used by the ioctl are defined below:

    #define IMR_TYPE_NONE                   0
    #define IMR_TYPE_ETHERNET               1
    #define IMR_TYPE_ETHERNET_TAGGED        2
    #define IMR_FLAG_CONTROLWORD            0x1
    struct ifmpwreq {
            uint32_t        imr_flags;
            uint32_t        imr_type; /* pseudowire type */
            struct          shim_hdr imr_lshim; /* local label */
            struct          shim_hdr imr_rshim; /* remote label */
            struct          sockaddr_storage imr_nexthop;
    };

mpw interfaces support the following unique ioctls:

SIOCSETMPWCFG
    Configure mpw using the supplied configuration.

SIOCGETMPWCFG
    Report the mpw configuration.

EXAMPLES
Create a pseudowire to neighbor 10.254.0.1 using Ethernet encapsulation with local label 20 and encapsulate MPLS packets with label 21:

    # ifconfig mpw5 neighbor 10.254.0.1 encap ethernet mpwlabel 20 21 up

Create a pseudowire to neighbor 10.254.0.3 using Ethernet encapsulation with local label 30 and encapsulate MPLS packets with label 31 and control-word:

    # ifconfig mpw5 neighbor 10.254.0.3 encap ethernet mpwlabel 30 31 controlword

SEE ALSO
hostname.if(5), ifconfig(8), ldpd(8), netstart(8)

HISTORY
The mpw kernel interface first appeared in OpenBSD 5.8.

AUTHORS
The mpw driver was written by Rafael Zalamena <rzalamena@openbsd.org>.