mirror of
https://github.com/zeromq/libzmq.git
synced 2025-10-30 13:47:13 +01:00
Add socket option BINDTODEVICE
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.
This commit is contained in:
@@ -240,6 +240,9 @@ namespace zmq
|
||||
// will be used as the File Descriptor instead of allocating a new
|
||||
// one via the socket () system call.
|
||||
int use_fd;
|
||||
|
||||
// Device to bind the underlying socket to, eg. VRF or interface
|
||||
std::string bound_device;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user