Am Samstag, dem 10.02.2024 um 17:03 +0000 schrieb David Laight: > From: o.evistel@xxxxxxx > > Sent: 09 February 2024 10:06 > > > > I am using linux-sctp as transport for SIGTRAN M3UA on RHEL 8.4 > > with > > multihoming (sctp_bindx(), sctp_connectx() API functions). > > I would like to know, after association setup, if it is possible to > > instruct SCTP to use a specific local address from the list of > > bound > > addresses to reach the peer. > > Unlikely in the extreme. > > If there are 'n' bound local addresses and 'm' remote addresses > (IIRC from the INIT_ACK - but they come from the far end) then > Linux only verifies a route to each local address and picks an > appropriate local address for each one. > So it only sends heartbeats to 'm' addresses, not on 'n * m' > address pairs. > > So if anything of this nature did exist it would limit the > remote addresses used, not the local ones. I've been told once that using the socket option SO_BINDTODEVICE should serve the trick, i.e., it should provoke Linux into choosing the picked device's IP addr as the source IP addr. I've never tested / verified that, though. I'm also not sure if it would have other negative consequences, such as limiting the reachability through non-bound devices. P. > > I think you'll also find that specifying multiple address with > sctp_connectx() only affects where the initial INIT is sent to > (I suspect the addresses get tried in turn). > Once the connection is established the addresses received from > the remote system are almost certainly used instead. > > We don't use connectx(), just try a list of addresses in sequence. > This can then contain the addresses of alternate systems as well > and alternate addresses for a single system. > > If does have to be said that M3UA works a lot better over TCP! > As well as being a far lighter protocol it is much easier to > get multiple M3UA messages into a single ethernet frame with TCP. > > If you've got 10 messages to send, you can use a single send() > to send them (etc). A single recv() can read lots of pending > message and you can cheaply debatch them in userspace. > > This all starts mattering when you are trying to send 10000 > SMS every second (we don't know what they are sending...) > > David > > - > Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, > MK1 1PT, UK > Registration No: 1397386 (Wales)