buglwIP - A Lightweight TCP/IP stack - Bugs: bug #37585, IPv6 compatibility

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #37585: IPv6 compatibility

Submitter:  hanhui <hanhui03>
Submitted:  Wed 17 Oct 2012 05:06:32 AM UTC
   
 
Category:  IPv6 Severity:  3 - Normal
Item Group:  Feature Request Status:  Fixed
Privacy:  Public Assigned to:  goldsimon
Open/Closed:  Closed Planned Release:  None
lwIP version:  CVS Head

Jump to the original submission

Tue 20 May 2014 08:15:55 PM UTC, comment #6: 

open issue is IPv6 scope -> task #13106
-> this bug can be closed

Simon Goldschmidt <goldsimon>
Group administrator
Tue 25 Feb 2014 10:44:35 PM UTC, comment #5: 

to 3. Good point raised. Personally i've used distinct subnet prefixes when using multiple netifs, but I suppose we should aim to implement scopes so that we can use link-local addresses in multiple netifs.

Not sure how to accomplish this at the moment, I will add it as a task so we can close this bug report.

Ivan Delamer <idelamer>
Group Member
Tue 25 Feb 2014 08:59:29 PM UTC, comment #4: 

to 1: won't do
to 2: done

to 3: What's the sin6_scope_id useful for if we don't have the information in the core IPv6 stack? Ivan, do we need an IPv6 address scope? How do we do without? I'd thought we'd need a scope in the core files too, to correctly separate link local addresses?

Simon Goldschmidt <goldsimon>
Group administrator
Sat 29 Jun 2013 07:44:29 PM UTC, comment #3: 

to 1: I don't want to support nonstandard things too much. To use it with python, you can still add this define to one of the headers like lwipopts.h

to 2: I'll check that in in a minute or so.

to 3: according to the standard, we do need this:
http://pubs.opengroup.org/onlinepubs/009696899/basedefs/netinet/in.h.html
says struct sockaddr_in6 shall include the member "uint32_t sin6_scope_id". It makes our struct bigger although we don't need it, so I wonder: do we really need this? How does our IPv6 implementation decide on which netif to send when getting an IP for sending?

Simon Goldschmidt <goldsimon>
Group administrator
Fri 28 Jun 2013 07:59:48 PM UTC, comment #2: 

I haven;t been able to work much on these issues lately. I think there was a related discussion in a patch submission.

I'm not an expert in the socket API as I use mostly netconn, but I will try to dig up a spec and follow it.

Ivan Delamer <idelamer>
Group Member
Fri 28 Jun 2013 07:52:31 PM UTC, comment #1: 

Ivan, any comments on this? I think this is source code compatibility. Always a difficult issue when some OSes use non-standardized structs...

I'd like to make it as compatible as possible though.

What about the missing scope? This is only necessary for multi-netif, isn't it? I haven't used lwIP's IPv6 in such a network, yet. Can we just add the scope as dummy for now so that we don't have to change the struct in the future?

Simon Goldschmidt <goldsimon>
Group administrator
Wed 17 Oct 2012 05:06:32 AM UTC, original submission:  

1:
struct in6_addr {
  union {
    u8_t  u8_addr[16];
    u32_t u32_addr[4];
  } un;
#define s6_addr  un.u32_addr
};

need add

#define s6_addr8 un.u8_addr

(although s6_addr8 is nonstandard, but many software use this, such as Python)

2:
define struct sockaddr_storage in sockets.h

3:
no member "sin6_scope_id" in struct sockaddr_in6


hanhui <hanhui03>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by idelamer (Posted a comment)
  • -email is unavailable- added by goldsimon (Posted a comment)
  • -email is unavailable- added by hanhui03 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2014-05-20 goldsimon StatusIn Progress Fixed
        Assigned toNone goldsimon
        Open/ClosedOpen Closed
    2013-06-29 goldsimon StatusNone In Progress
    2013-06-28 goldsimon Planned Release1.5.0 beta 1.5.0 beta1
    2013-06-28 goldsimon Planned Release 1.5.0 beta

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code