#
6d796a84 |
|
10-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Fixed up network stack and drivers for x86_64. * Various compilation fixes. * Fixes to the FreeBSD compatibility layer (from comparing the x86- specific bits with the equivalent amd64 sources in FreeBSD). * Compile all the Ethernet drivers except for sis900 and wb840, these require a bit more work to fix (will file a ticket soon). Tested ipro1000 and rtl81xx, no issues.
|
#
8ccc01cf |
|
13-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Improved the output of the "net_domains" KDL command. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38077 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
|
#
437ecdb9 |
|
22-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* We need to invalidate all routes belonging to the interface when removing it. * This fixes the second problem mentioned in bug #6243, and therefore the bug itself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37692 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d869a061 |
|
19-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the stack send out interface change notifications where needed (at least hopefully :-)). * Improved interface change notification to include the flags that changed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37594 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a3ec278a |
|
15-Feb-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Made some internal lists use DoublyLinkedLists instead of struct list. * Added a few KDL commands to improve your debugging experience. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bda94e2e |
|
04-Apr-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Locking order dictates that this lock is an inner lock, and shouldn't be used everywhere. * This also fixes a panic when deleting interfaces (an already deleted lock was unlocked). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29902 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26153d0f |
|
03-Mar-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The net_domain's lock is now a recursive lock. * Fixed all route locking problems, of which there were numerous ({add|remove}_route(), and list_routes() did not lock at all). Added lock assertions in functions that don't do the locking themselves. * A route will now be removed from the list in remove_route(), not in put_route_internal(). Before, a route could easily be removed twice, causing remove_route() to release references it did not own. This fixes bug #2706. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29386 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3c13a5f5 |
|
16-Feb-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed net_device_interface::rx_lock to receive_lock. * Cleanup, improved comments, removed useless ones. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29232 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
74ff314b |
|
28-Dec-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* It was not possible anymore to remove any flags. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28830 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d68ffded |
|
27-Dec-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* More or less completed the network notification module - it does not remove old invalid user listeners yet, though (ie. if a team dies). * Implemented userland network monitor functions. * Added a few notifications to the network stack, even though this part isn't complete yet (especially notify_interface_changed()). * Added optional debug output to the notifications module. * Added the module to the image, it basically works now (tested). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28825 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a3513e7b |
|
02-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed possible deadlock when booting over the network. Creating the interface without having the domain locked seems to be safe AFAICT. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27839 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b07b8e0 |
|
28-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Replaced all instances of benaphores in the kernel code by mutexes. * Removed kernel benaphores. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25690 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be2f6ac3 |
|
23-May-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
net_device_interface: remove redundant fields git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21222 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
64734690 |
|
08-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
whenever an interface is deleted, call put_domain_datalink_protocols() so all readers are unregistered. - Unfortunely this requires RX lock to become a recursive lock. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20621 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae074c5d |
|
07-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
moved IFF_LINK handling to the device module (ethernet in this case). Now domain interfaces only keep specific flags such as IFF_UP and the configuration flags. IFF_LINK, IFF_BROADCAST etc are maintained exclusively by the device. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20612 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fb300cfd |
|
07-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced net_device_interface level locking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20b534cd |
|
06-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
a bit more work towards proper locking including a fix to a refcount bug - fixed a issue in add_interface_to_domain where the device interface's refcount was always incremented since that function was getting the device interface handle and not returning it unconditionlly - if the ethernet device goes down, and the fd is close()ed, return B_FILE_ERROR instead of calling into the driver again git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20601 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c64fecca |
|
06-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
started some work to properly handle device_removed() and setting interfaces down in general. - remove all routes that use interfaces going down. - when a device is going down, remove associated domain interfaces. - interfaces weren't getting a properly referenced device interface, fixed. - down call down_device_interface when deleting a interface, instead set it down and let the upcounts do its job. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20600 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9206bb37 |
|
04-Apr-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed ETHER_GET_LINK_STATE ethernet driver interface, added ETHER_SET_LINK_STATE_SEM. * The device interface list now uses class DoublyLinkedList instead of struct list. * Implemented SIOC[SG]IFMEDIA for setting (not supported by any device yet), and retrieving the device media information. * Fixed a locking bug in list_domain_interfaces(). * Added new stack function device_link_changed() that should be called in case the link state (media) changed. * The ethernet device module now spawns a thread and will periodically check the media state of all ethernet devices that support this (if any). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20546 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
409b1fc0 |
|
01-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
use UserBuffer in list_{device,domain}_interfaces git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20503 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9c4477d3 |
|
01-Apr-2007 |
Axel Dörfler <axeld@pinc-software.de> |
SIOCGIFCONF will now also report the size of the written buffer in ifconf.ifc_len to cover the case the list of interfaces changed since SIOCGIFCOUNT was called. Patch by Hugo Santos. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20491 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab28e0ff |
|
26-Jan-2007 |
François Revol <revol@free.fr> |
For interfaces listed in a domain but without any address we returned {2, AF_UNSPEC}, but we only skipped 1 byte instead of 2... fixed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19961 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
|
#
6d796a84bd484ccc4fb072a29c663b660180ae51 |
|
10-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Fixed up network stack and drivers for x86_64. * Various compilation fixes. * Fixes to the FreeBSD compatibility layer (from comparing the x86- specific bits with the equivalent amd64 sources in FreeBSD). * Compile all the Ethernet drivers except for sis900 and wb840, these require a bit more work to fix (will file a ticket soon). Tested ipro1000 and rtl81xx, no issues.
|
#
8ccc01cf2d7ee051e7a38e045ba08aebb4445e4d |
|
13-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Improved the output of the "net_domains" KDL command. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38077 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
|
#
437ecdb9d5977b87b26c12547caf7becb918d240 |
|
22-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* We need to invalidate all routes belonging to the interface when removing it. * This fixes the second problem mentioned in bug #6243, and therefore the bug itself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37692 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d869a0617212728ef3f8fa945673b925939b08d4 |
|
19-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the stack send out interface change notifications where needed (at least hopefully :-)). * Improved interface change notification to include the flags that changed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37594 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a3ec278addf578e09deac1159bba3f1a8a72b336 |
|
15-Feb-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Made some internal lists use DoublyLinkedLists instead of struct list. * Added a few KDL commands to improve your debugging experience. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bda94e2e2548fe591f79b24aea484df2b75eeb21 |
|
04-Apr-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Locking order dictates that this lock is an inner lock, and shouldn't be used everywhere. * This also fixes a panic when deleting interfaces (an already deleted lock was unlocked). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29902 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26153d0f67e36b509dade3b8aed43ba7b753578b |
|
03-Mar-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The net_domain's lock is now a recursive lock. * Fixed all route locking problems, of which there were numerous ({add|remove}_route(), and list_routes() did not lock at all). Added lock assertions in functions that don't do the locking themselves. * A route will now be removed from the list in remove_route(), not in put_route_internal(). Before, a route could easily be removed twice, causing remove_route() to release references it did not own. This fixes bug #2706. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29386 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3c13a5f5b39d02367da1ef1d6bb3740ccb2340a1 |
|
16-Feb-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed net_device_interface::rx_lock to receive_lock. * Cleanup, improved comments, removed useless ones. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29232 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
74ff314b2f30fbe2122a47c5aa8743ce920b4532 |
|
28-Dec-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* It was not possible anymore to remove any flags. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28830 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d68ffdedc04d63f83d407b194a54de3095cacc06 |
|
27-Dec-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* More or less completed the network notification module - it does not remove old invalid user listeners yet, though (ie. if a team dies). * Implemented userland network monitor functions. * Added a few notifications to the network stack, even though this part isn't complete yet (especially notify_interface_changed()). * Added optional debug output to the notifications module. * Added the module to the image, it basically works now (tested). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28825 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a3513e7b9a1e048b6f73356043cf4e53038d0117 |
|
02-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed possible deadlock when booting over the network. Creating the interface without having the domain locked seems to be safe AFAICT. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27839 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b07b8e0f1a7f1e76f31db24a21a42cbb01d7b9c |
|
28-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Replaced all instances of benaphores in the kernel code by mutexes. * Removed kernel benaphores. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25690 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be2f6ac347c515343af9eb6222725fd9ca8718b9 |
|
23-May-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
net_device_interface: remove redundant fields git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21222 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6473469039f43c38a2cdfec2aeea2989582a3557 |
|
08-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
whenever an interface is deleted, call put_domain_datalink_protocols() so all readers are unregistered. - Unfortunely this requires RX lock to become a recursive lock. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20621 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae074c5d153df2435d7ee61df2d104827c48f384 |
|
07-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
moved IFF_LINK handling to the device module (ethernet in this case). Now domain interfaces only keep specific flags such as IFF_UP and the configuration flags. IFF_LINK, IFF_BROADCAST etc are maintained exclusively by the device. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20612 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fb300cfd25fe641020485e7b21a0be2580b6479d |
|
07-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced net_device_interface level locking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20b534cd5f128d0561161aa0243bd1102378ab65 |
|
06-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
a bit more work towards proper locking including a fix to a refcount bug - fixed a issue in add_interface_to_domain where the device interface's refcount was always incremented since that function was getting the device interface handle and not returning it unconditionlly - if the ethernet device goes down, and the fd is close()ed, return B_FILE_ERROR instead of calling into the driver again git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20601 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c64fecca780b8dcf6ce2cb5994977a79e14ce936 |
|
06-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
started some work to properly handle device_removed() and setting interfaces down in general. - remove all routes that use interfaces going down. - when a device is going down, remove associated domain interfaces. - interfaces weren't getting a properly referenced device interface, fixed. - down call down_device_interface when deleting a interface, instead set it down and let the upcounts do its job. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20600 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9206bb37797df1a6448d3f1c336e954b4ddb790d |
|
04-Apr-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed ETHER_GET_LINK_STATE ethernet driver interface, added ETHER_SET_LINK_STATE_SEM. * The device interface list now uses class DoublyLinkedList instead of struct list. * Implemented SIOC[SG]IFMEDIA for setting (not supported by any device yet), and retrieving the device media information. * Fixed a locking bug in list_domain_interfaces(). * Added new stack function device_link_changed() that should be called in case the link state (media) changed. * The ethernet device module now spawns a thread and will periodically check the media state of all ethernet devices that support this (if any). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20546 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
409b1fc051f355f359922a451b6d572ae00d3e7a |
|
01-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
use UserBuffer in list_{device,domain}_interfaces git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20503 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9c4477d3bf7ba915564c31106c177cde3998ed26 |
|
01-Apr-2007 |
Axel Dörfler <axeld@pinc-software.de> |
SIOCGIFCONF will now also report the size of the written buffer in ifconf.ifc_len to cover the case the list of interfaces changed since SIOCGIFCOUNT was called. Patch by Hugo Santos. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20491 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab28e0ff2c2f82699f0044c82d140b571fb347ab |
|
26-Jan-2007 |
François Revol <revol@free.fr> |
For interfaces listed in a domain but without any address we returned {2, AF_UNSPEC}, but we only skipped 1 byte instead of 2... fixed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19961 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
|