Work in progress commit by Atis Elsts (I'm posting his ChangeLog comments

directly here), I made only a few style changes:
* introduced 'has_broadcast_address' field in
struct net_address_module_info
 - REVIEW: the name, and the status of this field for UNIX and L2CAP
	families
* ipv6 address family support
* ipv6 address printing	
* ipv6 protocol support	
* ipv6 multicast support
  - TODO: add and remove multicast routes in a more proper way
  - TODO: support MLD
* ipv6 datalink protocol support
* icmpv6 protocol support (EchoRequest and EchoResponse messages)
* ipv6 neigbor discovery protocol support
  (Advertisement and Solicitation messages)
  - TODO: only the very basic support is present,
	the protocol state machine is by no means completed
  - TODO: replying to Solicitation does not work too good ATM
	(visible, when pinging Haiku from outside)
* added Jenkin's hash algorith
* minor changes in existing IPv4 code - cleanup function
	ipv4_get_loopback_address(), written by myself
* add tests: raw, udp, tcp/udp, mullicast sender
* add 'hoplimit' field in struct net_buffer
  - TODO: this is just a hack, more generic approach would be  better.
* add 'receive_data' function pointer in
	struct net_datalink_protocol_module_info
  - TODO: this is also more like a hack, to support information
	passing from ICMPv6 to IPv6_datagram level.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37604 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2010-07-19 16:55:55 +00:00
parent 0e23b87fe4
commit 8d1485fa06
30 changed files with 4307 additions and 10 deletions
+1
View File
@@ -36,6 +36,7 @@ typedef struct net_buffer {
uint32 flags;
uint32 size;
uint8 protocol;
uint8 hoplimit;
} net_buffer;
struct ancillary_data_container;
+1
View File
@@ -100,6 +100,7 @@ struct net_datalink_module_info {
struct net_address_module_info {
module_info info;
bool has_broadcast_address;
status_t (*copy_address)(const sockaddr *from, sockaddr **to,
bool replaceWithZeros, const sockaddr *mask);
@@ -24,6 +24,7 @@ struct net_datalink_protocol_module_info {
status_t (*send_data)(net_datalink_protocol *self,
net_buffer *buffer);
status_t (*receive_data)(net_buffer *buffer);
status_t (*interface_up)(net_datalink_protocol *self);
void (*interface_down)(net_datalink_protocol *self);