[libfabric-users] Configure PeP to listen to multiple Network Interfaces

Hefty, Sean sean.hefty at intel.com
Tue Jul 14 10:44:06 PDT 2020


Can you open a github issue to track this as an issue/feature request?

It doesn't appear that a wildcard address is given as an src_addr output for NULL input.  I'm not sure how the code handles passing a wildcard src_addr in directly.

- Sean

> finally had the time to check the src_addr.
> 
> the fi_info->src_addr holds one IPv4 in sockaddr_in format if NULL is
> given as a node parameter into the fi_getinfo call.
> 
> So my question resides, can you (as I assume) have a single pep address
> multiple Network Interfaces and if so how to configure flags and hints
> in a way that it does?
> 
> If not, how would you suggest to catch incomming connection requests on
> a system with multiple active Network Interfaces using libfabric?
> 
> 
> Greetings,
> 
> Arne.
> 
> 
> >>> First of all I d like to configure the passive endpoint of my server to
> >>> listen to multiple Network Interfaces (lo, eth0, eth1, wlan, etc).
> >>> According to the wording of the Developer Guide I think this is
> >>> possible, unfortunately I did not figure out the correct configuration
> >>> to do so. Up until now I have only given the pep localhost ip as a
> >>> sockaddr_in under FI_SOURCE and after that used multiple peps (each
> >>> correspondand to a its own Network Interface) as a workaround for testing.
> >>>
> >>> Unfortunately Just giving the pep NULL as node and the port as service
> >>> does result in the pep automatically rejecting the connreq/not receiving it.
> >> I'm not following the issue here.  When calling fi_getinfo(), are you specifying
> FI_SOURCE, setting node to NULL, and passing the port as the service?
> >>
> >> That should create a wildcard listen address.  You can print the resulting fi_info
> structures to see if a specific IP address has been assigned or not as a src_addr.
> >
> > Yes, that is what I tried, based of the lines " An application wishing
> > to create a passive endpoint typically calls fi_getinfo() using the
> > FI_SOURCE flag, often only specifying a 'service' address. The service
> > address corresponds to a TCP port number."
> >
> > If I understand you correctly this wildcard pep will only listen on
> > the first network interface it finds. So for example, if the server
> > running my program has 2 Network Interfaces (lo, IP 127.0.0.1 and
> > eth0, 10.1.0.4) the wildcard pep will still only listen on one of
> > those two, let us say 127.0.0.1.
> >
> > At least that would explain that FI_CONNREQs on 10.1.0.4 would result
> > in the client getting Connection Refused Errors on its eq on
> > fi_connreq() call to 10.1.0.4.
> >
> > Does libfabric offer any possibility I did not catch to listen on both
> > Interfaces with onyl one pep or similar structure?
> >
> > I ll read out the scr_addr field of my server fi_info with the node
> > set to NULL when I am back at a table.
> >
> >
> >>> To keep an overview over the peps of my workaround I tried to put their
> >>> pointers into a list (GSList), which leads to the same behaviour as
> >>> giving NULL as the node parameter. Why though? I dont see any reason for
> >>> this.
> >> I didn't follow this.
> >
> >
> > To catch all Network Interfaces (in the example the ones corresponding
> > to the IPs 127.0.0.1 and 10.1.0.4) I wrote a workaround, catching all
> > available outgoing Network Interfaces with getifaddrs, creating a
> > fi_info for each available Interface and a pep with each fi_info.
> >
> > I did so to see whether the rest of the program works or not.
> >
> > To have an overview over all the peps I tried to put the pointers to
> > them in a GSList. As soon as I did that, the peps did respond with a
> > connection refused to each connreq. If I did not do this (but
> > therefore had no further possibility to address the peps), it worked.
> >
> >
> > I hope that clarified what I tried to explain.
> >
> _______________________________________________
> Libfabric-users mailing list
> Libfabric-users at lists.openfabrics.org
> https://lists.openfabrics.org/mailman/listinfo/libfabric-users


More information about the Libfabric-users mailing list