* Reworked the complete stack to allow more than one address per network
interface - this caused quite a number of changes.
* Network interfaces, and its addresses are now reference counted (not yet
complete, though, InterfaceAddresses need to hold references to their
interface as well).
* There are two known regressions of this commit that I will fix later:
- you cannot remove interfaces anymore
- IPv4 multicast was broken anyway, but now it's disabled, too.
* Moved a device_interfaces.cpp|h out of interfaces.cpp.
* The datalink layer chain is now instantiated per domain per interface,
not just per interface anymore.
* When a buffer reaches the network layer, it has no known interface yet, ie.
the ipv4|6|whatever modules need to set this manually.
* Added more debug output, and some new debugger commands, the control option
is now printed in clear text.
* Added hash_address() function to the address modules. Added "const" to
set_to_defaults() where needed.
* Fixed net_buffer's restore header functions offset use as reported by Atis.
* Improved buffer dump output, use the domain module to print the address if
available.
* Moved net_buffer::type into the union, as it's not needed by the upper layers
anymore.
* Moved IPv6 specific code from {add|remove}_default_route() to where it
belongs, but disabled it for the time being.
* Completely discarded useless ipv4_datagram module.
* Added ping6 to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37794 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -18,14 +18,9 @@
|
||||
typedef struct net_buffer {
|
||||
struct list_link link;
|
||||
|
||||
// TODO: we should think about moving the address fields into the buffer
|
||||
// data itself via associated data or something like this. Or this
|
||||
// structure as a whole, too...
|
||||
|
||||
struct sockaddr* source;
|
||||
struct sockaddr* destination;
|
||||
struct net_interface* interface;
|
||||
int32 type;
|
||||
struct net_interface_address* interface_address;
|
||||
union {
|
||||
struct {
|
||||
uint16 start;
|
||||
@@ -33,6 +28,7 @@ typedef struct net_buffer {
|
||||
} fragment;
|
||||
uint32 sequence;
|
||||
uint32 offset;
|
||||
int32 type;
|
||||
};
|
||||
uint32 flags;
|
||||
uint32 size;
|
||||
|
||||
Reference in New Issue
Block a user