#
41faeb1d |
|
27-May-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
net_interface & datalink: Fix MTU handling. The device is what actually controls the MTU, and it has its own field for this, so having a second one just meant the MTU never got updated after startup. Remove the "mtu" field from the interface, use the "device->mtu" directly, and then actually invoke device->module->set_mtu when updating.
|
#
81521280 |
|
21-Mar-2020 |
X512 <danger_mail@list.ru> |
Fix clang warning "mismatched-tags" Change-Id: I00f26e27d8ac24a46b528ea7ed47b92c2967ff2e Reviewed-on: https://review.haiku-os.org/c/haiku/+/2390 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
2b1c0755 |
|
03-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed the proprietary SIOC_* ioctls to B_SOCKET_* - no reason to pollute global name space, and have ugly identifiers for nothing :-) * Added a flags field to struct ifaliasreq. Added flags to mark an alias that is currently being configured, or has been automatically configured. Those flags aren't used yet, but they will replace IFF_CONFIGURING and friends. * Implemented deleting addresses only from interfaces via ifconfig. * Added more command aliases for delete to ifconfig ("del", and "delete", for more consistency with route). * Fixed control_routes() to only release a reference to an address if it actually got one before. * If an interface address is deleted, its routes are now removed as well. * InterfaceAddress now holds a reference to its interface as planned. * Implemented removing interfaces. Works quite nicely. * When downing an interface, all of its routes are now removed. When upping it again, at least the default routes are added. * datalink.cpp's get_interface_name_or_index() leaked a reference to the interface found. * SIOCAIFADDR would also leak a reference when new addresses were added. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37872 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2651e51d |
|
02-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed net_datalink_module::send_data() to send_routed_data(), and send_datagram() to send_data(). * Renamed DatagramSocket::SocketEnqueue() to EnqueueClone(), SocketDequeue() to Dequeue(). * Ordered the methods in ProtocolUtilities.h according to their declaration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37870 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
03e02ed9 |
|
03-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Introduced a datalink layer (2) independent way of specifying the packet type one wants to receive. Changed ipv6_datagram to use that (but note that it currently does not compile). * Header cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37868 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
61729d93 |
|
28-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* 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
|
#
b216fbd0 |
|
28-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Applied next work in progress patch by Atis that takes into account most of my comments so far. Thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37793 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d1485fa |
|
19-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
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
|
#
ab1a4bef |
|
12-Apr-2010 |
Oliver Tappe <zooey@hirschkaefer.de> |
cleaning up after myself 4 years later: * remove matches_broadcast_address slot in address module, as it doesn't exist anywhere * automatic whitespace cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36193 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
56f097eb |
|
12-Apr-2010 |
Oliver Tappe <zooey@hirschkaefer.de> |
Applying patch by Atis Elsts: * fix connecting to INADDR_ANY work for tcp (effectively will connect to INADDR_LOOPBACK) * add same behaviour to udp * move some ipv4-specific code out of tcp into ipv4 address module * bind() and connect() now reject addresses from non-matching families * myself: minor cleanup in udp.cpp with respect to 80 chars limit Closes #5716 - many thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36192 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
751ce9e2 |
|
03-Dec-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed the interface fallback from the datalink module's is_local_address(). * Instead, added a new function is_local_link_address() which returns the interface with the matching link level address, and can additionally test for unconfigured interfaces. * Merged the two versions of fill_sockaddr_in() together in ipv4.cpp. * ipv4 now uses the new is_local_link_address() function to figure out whether the received packet should be processed or not. This should fix a few DHCP issues with multiple and configured interfaces as recently explained on the mailing list. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34466 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b5a5aebc |
|
28-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a set_to_defaults() function to the address module: it can be used to retrieve the default settings for the netmask/broadcast depending on the specified address/netmask. * interface_protocol_control() now uses this to reset the broadcast/netmask to their default values on SIOCSIFADDR resp. the former only on SIOCSIFNETMASK. * This fixes bug #1861. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24170 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf5d9f4b |
|
29-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
added 'udp_endpoints' debugger command. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20908 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1408d1f0 |
|
15-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced datalink's send_datagram to perform route and source address selection and dispatch the datagram to appropriate domain/protocol. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20714 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c501a40 |
|
14-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
support RFC 3678's Protocol-Independent setsockopt()s for IPv4 multicast. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20691 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
46527f68 |
|
14-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
initial steps towards IPv4 Multicast Filter Delta API (RFC 3678) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20690 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c353509 |
|
11-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
moved address selection logic to a new 'get_buffer_route'. - IPv4 now assumes the addresses it is supplied in send_routed_data are already the appropriate ones. - made the Data(), operator* and operator-> methods in NetBufferFieldReader const so we can use them in the same expression as the constructor. - fixed an issue with UDP where the wrong source address could be used in the calculating the checksum. - changed ipv4_print_address to use the more common 0.0.0.0 format. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20660 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26cbcedb |
|
06-Dec-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19436 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
891a127f |
|
17-Sep-2006 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
various gcc 4 related build fixes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18876 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c22d69bf |
|
08-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Completed the previous commit and merger of the team/network/new_stack branch. * Removed ppp_up and pppcontrol from the image for now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b1c0755dd452db665050fdbbe06549e7e8c9c38 |
|
03-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed the proprietary SIOC_* ioctls to B_SOCKET_* - no reason to pollute global name space, and have ugly identifiers for nothing :-) * Added a flags field to struct ifaliasreq. Added flags to mark an alias that is currently being configured, or has been automatically configured. Those flags aren't used yet, but they will replace IFF_CONFIGURING and friends. * Implemented deleting addresses only from interfaces via ifconfig. * Added more command aliases for delete to ifconfig ("del", and "delete", for more consistency with route). * Fixed control_routes() to only release a reference to an address if it actually got one before. * If an interface address is deleted, its routes are now removed as well. * InterfaceAddress now holds a reference to its interface as planned. * Implemented removing interfaces. Works quite nicely. * When downing an interface, all of its routes are now removed. When upping it again, at least the default routes are added. * datalink.cpp's get_interface_name_or_index() leaked a reference to the interface found. * SIOCAIFADDR would also leak a reference when new addresses were added. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37872 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2651e51d92770a979fee2e99c4a4b27c3ac03e82 |
|
02-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed net_datalink_module::send_data() to send_routed_data(), and send_datagram() to send_data(). * Renamed DatagramSocket::SocketEnqueue() to EnqueueClone(), SocketDequeue() to Dequeue(). * Ordered the methods in ProtocolUtilities.h according to their declaration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37870 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
03e02ed9836f03018a146f791ee65a3ec3ab7842 |
|
03-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Introduced a datalink layer (2) independent way of specifying the packet type one wants to receive. Changed ipv6_datagram to use that (but note that it currently does not compile). * Header cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37868 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
61729d9323a555b9025ef6ebeb85dc1627f8acf7 |
|
28-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* 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
|
#
b216fbd0774446feb184ec1be17bb52bcbd75bbe |
|
28-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Applied next work in progress patch by Atis that takes into account most of my comments so far. Thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37793 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d1485fa06b26cb13b0417e3cdafd5b45520a567 |
|
19-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
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
|
#
ab1a4bef4f205a95a19424f85c38b4e5de65f37f |
|
12-Apr-2010 |
Oliver Tappe <zooey@hirschkaefer.de> |
cleaning up after myself 4 years later: * remove matches_broadcast_address slot in address module, as it doesn't exist anywhere * automatic whitespace cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36193 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
56f097ebd91d9b6369407d2bbfcc19718788d182 |
|
12-Apr-2010 |
Oliver Tappe <zooey@hirschkaefer.de> |
Applying patch by Atis Elsts: * fix connecting to INADDR_ANY work for tcp (effectively will connect to INADDR_LOOPBACK) * add same behaviour to udp * move some ipv4-specific code out of tcp into ipv4 address module * bind() and connect() now reject addresses from non-matching families * myself: minor cleanup in udp.cpp with respect to 80 chars limit Closes #5716 - many thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36192 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
751ce9e228a278970a492fead1ecedbfab453d2c |
|
03-Dec-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed the interface fallback from the datalink module's is_local_address(). * Instead, added a new function is_local_link_address() which returns the interface with the matching link level address, and can additionally test for unconfigured interfaces. * Merged the two versions of fill_sockaddr_in() together in ipv4.cpp. * ipv4 now uses the new is_local_link_address() function to figure out whether the received packet should be processed or not. This should fix a few DHCP issues with multiple and configured interfaces as recently explained on the mailing list. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34466 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b5a5aebc909a141cd5baf1f1a44c72724dd3204e |
|
28-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a set_to_defaults() function to the address module: it can be used to retrieve the default settings for the netmask/broadcast depending on the specified address/netmask. * interface_protocol_control() now uses this to reset the broadcast/netmask to their default values on SIOCSIFADDR resp. the former only on SIOCSIFNETMASK. * This fixes bug #1861. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24170 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf5d9f4b8d5ecfccb07ded3eee4c3af0e11c53b6 |
|
29-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
added 'udp_endpoints' debugger command. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20908 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1408d1f0ce8555b9b94037e6f1c9c530afe753b6 |
|
15-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced datalink's send_datagram to perform route and source address selection and dispatch the datagram to appropriate domain/protocol. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20714 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c501a4085f9f397f2865e80df1242404c8f7066 |
|
14-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
support RFC 3678's Protocol-Independent setsockopt()s for IPv4 multicast. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20691 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
46527f6806b3d52282de36566581fd567d839839 |
|
14-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
initial steps towards IPv4 Multicast Filter Delta API (RFC 3678) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20690 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c35350908905903b5c150154b0da9698ca8943a |
|
11-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
moved address selection logic to a new 'get_buffer_route'. - IPv4 now assumes the addresses it is supplied in send_routed_data are already the appropriate ones. - made the Data(), operator* and operator-> methods in NetBufferFieldReader const so we can use them in the same expression as the constructor. - fixed an issue with UDP where the wrong source address could be used in the calculating the checksum. - changed ipv4_print_address to use the more common 0.0.0.0 format. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20660 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26cbcedb9c3094526f3e4551027a23785c618daf |
|
06-Dec-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19436 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
891a127fecd553cc2168db11ccc564f5ba38fad6 |
|
17-Sep-2006 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
various gcc 4 related build fixes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18876 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c22d69bf1f5f60f7ebddd79108a53c8f97f300fe |
|
08-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Completed the previous commit and merger of the team/network/new_stack branch. * Removed ppp_up and pppcontrol from the image for now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|