Uze, the IPv6 zone ID concept is explained in RFC 4007, and is what sin6_scope_id holds in a SOCKADDR_IN6. (Again, sin6_scope_id is not necessarily an ifindex and if any code assumes it is, across all OS's, then that code is broken.)
But I think we're agreeing that for this discussion, ifindex is largely irrelevant and we should just be discussing zone id (aka scope id in the sockets api). > -----Original Message----- > From: ???(Uze Choi) [mailto:uzchoi at samsung.com] > Sent: Tuesday, July 26, 2016 9:37 PM > To: Dave Thaler <dthaler at microsoft.com>; 'Thiago Macieira' > <thiago.macieira at intel.com> > Cc: iotivity-dev at lists.iotivity.org > Subject: RE: [dev] OcResource->getHost() api gives a tricky host address in > Android > > I'm not familiar with IPv6 zone ID concept well. > According to Dave comment, Handling interface index also looks overhead, I > think. > Because Addr of Remote Resource Object is for unicast communication only > in the IoTivity or OCF. > > BR, Uze Choi > -----Original Message----- > From: Dave Thaler [mailto:dthaler at microsoft.com] > Sent: Wednesday, July 27, 2016 11:35 AM > To: Thiago Macieira > Cc: ???(Uze Choi); iotivity-dev at lists.iotivity.org > Subject: RE: [dev] OcResource->getHost() api gives a tricky host address in > Android > > Interface indexes are more precise (i.e. constrained) than zone ids. > That is, a zone id may identify a set of equivalent interfaces, whereas an > ifindex identifies exactly one. > A zone id is sufficient to uniquely identify an address. > If you want to constrain which interface among an equivalent set, then you > need an ifindex. > For most purposes zoneid is what you want. > Ifindex is generally only used when doing multicast, since the multicast APIs > allow apps to specify which interface to join/send on. > > > -----Original Message----- > > From: Thiago Macieira [mailto:thiago.macieira at intel.com] > > Sent: Tuesday, July 26, 2016 7:19 PM > > To: Dave Thaler <dthaler at microsoft.com> > > Cc: ???(Uze Choi) <uzchoi at samsung.com>; > > iotivity-dev at lists.iotivity.org > > Subject: Re: [dev] OcResource->getHost() api gives a tricky host > > address in Android > > > > On quarta-feira, 27 de julho de 2016 02:00:35 PDT Dave Thaler wrote: > > > BTW, the ZoneID is *not* an ifindex, it is a zone id. (See RFC > > > 4007.) On some platforms, the zone id of a link local address might > > > happen to be an ifindex, but any code that blindly assumes for all > > > OS's is inherently broken. > > > > True, but that can mean one of two things, mutually exclusive: > > > > a) an ifindex suffices to uniquely identify the interface/link that > > the packet should be sent on and replies are expected to come in from, > > in which case all we need is a way to convert any extra information > > that may appear on the ZoneID to that ifindex. It may be an interface > > name (if_nametoindex) or the interface's link-local address, its UUID, > whatever. > > > > or > > > > b) an ifindex does not suffice, in which case we need to review our > > API and internals, which relies extensively on ifindex. The front-end > > API should accept something that is larger than a simple 32-bit integer. > > > > Either way, it seems to me that ZoneIDs are superior than interface > indexes. > > > > -- > > Thiago Macieira - thiago.macieira (AT) intel.com > > Software Architect - Intel Open Source Technology Center >