Thanks for the clarification Nick. So can we decide that we will introduce % as 
optional while running with existing ip based interface selection? I want to 
start working on that next week, so if anyone has a problem
please let me know. If not ill start off on that tomorrow.

Regards,
Varun

On Friday, July 09, 2010 09:09:25 pm Nick Wagner wrote:
> The proc code was a stopgap.  I'm glad you are fixing that.
> 
> I suppose I was thinking more of ipv4 LL addresses than ipv6 ones, where the
> address was much more likely to have conflicts.  I am certainly fine with
> keeping the address scheme as we have it now, but I thought I'd bring this
> up since using the MAC to differentiate interfaces has proved very useful
> for configuration-free services on machines like laptops, where each NIC
> only had one address, but that address changed as the laptop was run in
> different locations.  And in such instances I have found it useful to write
> something that can dynamically detect the ip address changes.  In windows,
> this is a trivial system notification, on other platforms something as
> simple as re-enumerating the NICs every 5 seconds to see if their address
> changed inelegantly works -- making that more elegant was always "on my
> list".
> 
> But perhaps this is overkill for what we are trying to provide with slpd.
>  And your points about knowing what mac is to use ipv4 vs. ipv6 are well
> taken -- I haven't had to support ipv6 yet beyond some very rudimentary
> connections, and have not had to think about the ipv4/ipv6 problem in my
> other work.  If slpd is being configured away from the default to only run
> on one NIC, presumably it is being configured by someone who will know about
> these issues, and who will find it easier to work with the ip addresses %
> optional interface.
> 
> --Nick
> 
> 
> 
> 2010/7/8 Varun Chandramohan <var...@linux.vnet.ibm.com>
> 
> > Hi Nick,
> >
> > On Thursday, July 08, 2010 09:55:16 pm Nick Wagner wrote:
> > > I agree with Roel about handling multiple interfaces.  There are definite
> > > differences in how sockets operate in the different OSs, especially with
> > > respect to multicast and multiple NICs.
> > >
> > Alright! I think we can skip this. Lets leave it the way slpd does
> > currently. However for linux part, i do intend to change
> > reading ipv6 ips from proc to system apis. I have written that code tested
> > it well. Is that ok with all? The older proc code
> > had major issues with endianess when tested in power system.
> > > I'm very glad to see that people are still actively working on making
> > > openSLP better.  I haven't been able to get back to it for quite a while
> > --
> > > I had hoped to test some of these changes on Windows and OS X by now, but
> > > work has taken over my time.
> > >
> > > I had a comment on changing net.slp.interfaces.  IP address % interface
> > > doesn't fully solve the specification issues when dealing with link-local
> > > addresses, as those can change underneath you.  The same could
> > potentially
> > > happen with a DHCP address.  What if we changed net.slp.interfaces to
> > > something that also allowed you to select the NICs via MAC address (with
> > the
> > > optional % interface for full differentiation on OSs that supported it)?
> > >
> > Iam a bit confused here. So, if we change it to MAC how can a user specify
> > which ip openslp must use?
> > I mean how to even say weather ipv4 or ipv6 should be used. If its ipv6,
> > which ip of the list of ips for that interface must be used?
> > My understanding is that LL address are system generated from the MAC
> > address. Although i agree a link local address can be deleted and
> > another LL address can be added, i feel this might not be the right
> > approach. I have not though this through, may be we should introduce
> > dynamic ip address change monitor? Like "ip monitor addr" does? Will this
> > help? Just out of curiosity there must be many other projects that
> > need requirement like this. How do they handle? I got your explanation
> > wrong, please explain. :-)
> > >
> > > --Nick
> > >
> > >
> > >
> > > On Thu, Jul 8, 2010 at 2:17 AM, Roel van de Kraats <
> > r...@advancedcargo.eu>wrote:
> > >
> > > >
> > > >
> > > > On 07/08/2010 08:49 AM, Varun Chandramohan wrote:
> > > > > Hi All,
> > > > >
> > > > >       I have been looking into openslp code and i found a few changes
> > > > that might make things better in openslp. I dont have patches to share,
> > but
> > > > i will create them if everyone here agrees.
> > > > >
> > > > Dear Varun,
> > > >
> > > > Thanks for putting this effort in improving Openslp and for discussing
> > > > your ideas on the mailing list.
> > > > > - Multiple Binding Issue: I observed that, when the list of
> > interfaces is
> > > > not specified in the config file, the slpd daemon reads all interface
> > > > information and binds to all address of all interfaces. I feel this is
> > a
> > > > overkill. When no specific interfaces are given, its much easier to
> > bind to
> > > > :: or INADDR_ANY.
> > > > >
> > > > That sounds simpler indeed. However, by doing so a lot of
> > responsibility
> > > > is moved from slpd (which we can adapt to our needs) to the OS (for
> > > > which this is much harder). Since handling multiple interfaces the
> > > > correct way is quite delicate, I'd rather keep this responsibility on
> > > > the slpd side. And although receiving messages may become simpler this
> > > > way, for sending messages it is still necessary to specify the
> > > > interface; otherwise the 'default' interface (chosen by the OS) is
> > used.
> > > > Finally, since the functionality for handling different interfaces is
> > > > needed anyway (in case they are specified in the cfg), it is, in my
> > > > opinion, better to have one mechanism (behavior) for the different
> > > > situations.
> > > > > Proposal: In SLPDIncomingInit() function all the address are bound.
> > > > >
> > > > > if (G_SlpdProperty.interfaces != NULL)
> > > > >
> >  SLPIfaceGetInfo(G_SlpdProperty.interfaces,&ifaces,&G_SLPDProcInfo,
> > > > AF_UNSPEC);
> > > > >     else
> > > > >        ifaces.iface_count = 0;
> > > > > When the interfaces are found to be NULL, we can assume that slpd
> > must
> > > > bind to all inetfaces. So depending on the config file we have 3 cases.
> > > > > Case 1: Only IPv4 enabled. We can create TCP/UDP sockets with
> > INADDR_ANY.
> > > > > Case 2: Only IPv6 enabled. We can create TCP/UDP sockets with ::
> > > > > Case 3: Both IPv6&  IPv4 enabled. We can create sockets with :: but
> > use
> > > > IPV6_V6ONLY option set.
> > > > >
> > > > > This way we will have only 1 or 2 sockets listening instead of all.
> > > > Improves performance as well. My only doubt is how this works with
> > Windows.
> > > > Iam no expert in that.
> > > > > If the interfaces are specified then we do exactly what is done now.
> > Is
> > > > that ok with everyone?
> > > > >
> > > > > - Wrong Representation Of Interfaces In Config File: Although it
> > looked
> > > > at first as a minor issue, this has caused multiple problems to basic
> > > > functionality. Openslp takes in ipaddress without the need for
> > interface
> > > > information.
> > > > > This leads to major issues. The function v6GetScope() is faulty
> > function.
> > > > >
> > > > > There can be cases when interfaces can have same ips. Eg:
> > > > > eth2      Link encap:Ethernet  HWaddr 00:06:29:55:60:81
> > > > >            inet6 addr: fe80::206:29ff:fe55:6081/64 Scope:Link
> > > > >            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> > > > >            RX packets:4037 errors:0 dropped:0 overruns:0 frame:0
> > > > >            TX packets:134395 errors:0 dropped:0 overruns:0 carrier:0
> > > > >            collisions:0 txqueuelen:1000
> > > > >            RX bytes:436006 (425.7 KiB)  TX bytes:14655216 (13.9 MiB)
> > > > >            Interrupt:16 Base address:0x2200
> > > > >
> > > > > eth2.30   Link encap:Ethernet  HWaddr 00:06:29:55:60:81
> > > > >            inet addr:192.168.1.2  Bcast:192.168.1.255
> >  Mask:255.255.255.0
> > > > >            inet6 addr: 3001::1/128 Scope:Global
> > > > >            inet6 addr: fe80::206:29ff:fe55:6081/64 Scope:Link
> > > > >            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> > > > >            RX packets:367 errors:0 dropped:0 overruns:0 frame:0
> > > > >            TX packets:15830 errors:0 dropped:0 overruns:0 carrier:0
> > > > >            collisions:0 txqueuelen:0
> > > > >            RX bytes:40872 (39.9 KiB)  TX bytes:1650541 (1.5 MiB)
> > > > >
> > > > > The LL address of both interfaces are same, In which case it becomes
> > > > clear viewing the v6GetScope() code that the scope id returned will be
> > same
> > > > for both interface but in reality it is different. This results in
> > binding
> > > > to
> > > > > only one interface. This is wrong. This has to be changed. This also
> > is
> > > > the case with ips specified in the config file.
> > > > >
> > > > > net.slp.interfaces = fe80::206:29ff:fe55:6081
> > > > >
> > > > > There is no way of saying which interface this must bind to.
> > > > >
> > > > > Proposal: The posix standard must be adopted to fix the issue. The
> > > > interface must be specified.
> > > > > net.slp.interfaces =
> > > > fe80::206:29ff:fe55:6081%eth2.30,2001::1%eth1,10.0.0.1%eth0
> > > > >
> > > > > The<ip>%<iface>  is standard posix method. This will greatly help in
> > > > getting the correct scopeid.
> > > > >
> > > > This is (probably) not described in the SLP RFC and I don't know if it
> > > > creates an incompatibility, but when this extension is made optional,
> > it
> > > > sounds fine to me. I assume interface names never contain a ','
> > > > otherwise that would clash with the list separator.
> > > >
> > > > BR,
> > > >      Roel
> > > > > I have already looked into the code and made a temporary fix for the
> > > > above problem. But i want to rewrite that patch to make it better. If
> > > > everyone is ok with the above i will start working on it. Please reply
> > back
> > > > with any
> > > > > issues. I have no windows programming knowledge, so if iam making a
> > > > blunder here, do let me know.
> > > > >
> > > > > Regards,
> > > > > Varun
> > > > >
> > > > >
> > > >
> > ------------------------------------------------------------------------------
> > > > > This SF.net email is sponsored by Sprint
> > > > > What will you do first with EVO, the first 4G phone?
> > > > > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
> > > > > _______________________________________________
> > > > > Openslp-devel mailing list
> > > > > Openslp-devel@lists.sourceforge.net
> > > > > https://lists.sourceforge.net/lists/listinfo/openslp-devel
> > > > >
> > > >
> > > >
> > > >
> > > >
> > ------------------------------------------------------------------------------
> > > > This SF.net email is sponsored by Sprint
> > > > What will you do first with EVO, the first 4G phone?
> > > > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
> > > > _______________________________________________
> > > > Openslp-devel mailing list
> > > > Openslp-devel@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/openslp-devel
> > > >
> > >
> >
> 

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Openslp-devel mailing list
Openslp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openslp-devel

Reply via email to