• Brian Russell's avatar
    Add socket option BINDTODEVICE · b963542e
    Brian Russell authored
    Linux now supports Virtual Routing and Forwarding (VRF) as per:
    
    https://www.kernel.org/doc/Documentation/networking/vrf.txt
    
    In order for an application to bind or connect to a socket with an
    address in a VRF, they need to first bind the socket to the VRF device:
    
        setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev)+1);
    
    Note "dev" is the VRF device, eg. VRF "blue", rather than an interface
    enslaved to the VRF.
    
    Add a new socket option, ZMQ_BINDTODEVICE, to bind a socket to a device.
    In general, if a socket is bound to a device, eg. an interface, only
    packets received from that particular device are processed by the socket.
    
    If device is a VRF device, then subsequent binds/connects to that socket
    use addresses in the VRF routing table.
    b963542e
acinclude.m4 43.2 KB