History log of /haiku/src/add-ons/kernel/network/protocols/ipv6/ipv6.cpp
Revision Date Author Comments
# e4efd92e 27-Feb-2024 Jérôme Duval <jerome.duval@gmail.com>

ipv4 & ipv6: implement connect() by setting the socket's peer address

Change-Id: Ic0fdc3f1a880aaef9326d8d4bfb13199c1d61dd4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7476
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# ce08f03c 01-Apr-2023 Augustin Cavalier <waddlesplash@gmail.com>

kernel & add-ons: Adjustments to use DoublyLinkedList::InsertBefore.

The Insert(before, element) function has been marked deprecated since
2010, but still had many usage and kept accumulating more. It's long
past time we got rid of all them and actually deprecated the function
itself.

Insert(before, element) just calls InsertBefore, so no functional change.


# 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.


# b6e85f80 29-Nov-2020 Jérôme Duval <jerome.duval@gmail.com>

ipv4 & ipv6: remove_trailer() uses a positive size as parameter

Change-Id: Id7d009cfee7727afb8267703c22c467e5f636070
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3438
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 1fb59be1 14-Apr-2018 Jérôme Duval <jerome.duval@gmail.com>

Fix some usages of BStackOrHeapArray.

Validates the buffer with IsValid() before actually using it. Thanks Rene!


# 70422d06 07-Apr-2018 Jérôme Duval <jerome.duval@gmail.com>

ipv6: avoid unbounded stack usage in send_fragments().


# 19d8e4f7 19-Mar-2017 Alexander Andreev <carzil@yandex.ru>

ipv4/6: fixed crossing link fields from different hash tables.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# d222bce8 15-Feb-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

ipv6: Fix tracing int sizes on non-32-bit systems


# 271ac910 09-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

Remove useless includes of khash.h

* These files were already converted to BOpenHashTable.
* For #9552.


# c0b42ec1 29-Jan-2013 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fix out of bounds access.
key.first is a pointer, so we shouldn't use the & operator here.
CID 610870 and 610871.
Should also fix ticket #9184. At least I cannot reproduce it anymore.


# 06d477cd 13-Jan-2013 Axel Dörfler <axeld@pinc-software.de>

ipv6: added missing put_interface() call.

* Thanks to Stefano for pointing this out!


# 7d362bb3 09-Sep-2012 Axel Dörfler <axeld@pinc-software.de>

The sFragmentLock was never being initialized.

* This fixes bug #8958.


# ad4d57f1 19-Aug-2012 Rene Gollent <anevilyak@gmail.com>

Fix multicast double free issue in IPv4.

- IPv4 had the same problem as v6. Most likely this was an oversight
when converting from a C to a C++ module. Might help with #6736 and
#8894.


# 9db38fdf 19-Aug-2012 Rene Gollent <anevilyak@gmail.com>

Fix ticket #8870.

- multicast_address was being freed twice in ipv6_uninit_protocol(),
causing a panic on exit in apps that made use of it.


# 1684be5e 09-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

ipv6: Fix ability to disable ipv6 tracing. Disable ipv6 tracing


# 842cfbca 09-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

ipv6: bit of style cleanup. No functional change


# af662030 09-Jul-2011 Axel Dörfler <axeld@pinc-software.de>

* Converted the hash used to the BOpenHashTable instead of khash - basically
just applied r38391 to the IPv6 code (no time to resolve the TODO, and put
that into a shared class).
* Fixed failure on init handling.
* Not tested, but should work at least better than before, as the hashtable has
never been initialized before...
* This closes bug #7795.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42399 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a9d5e34 28-Apr-2011 Rene Gollent <anevilyak@gmail.com>

Patch by Atis Elsts from GSoC 2010 that was overlooked.
- Adds IPv6 fragmentation support and some partial work to enable configuration of IPv6 in net_server. Not currently in the build.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41291 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f505da5e 28-Apr-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed two superfluous newlines from debug output.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41287 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3794b8e5 10-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Applied Atis latest changes to the IPv6 related modules. This brings them back
into a working state after the latest stack changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38021 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b415445 04-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Finished groundwork on ICMP by introducing a completely protocol agnostic
error mechanism.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37896 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d72a2493 29-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* Replaced ENODEV with B_DEVICE_NOT_FOUND.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37803 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


# d222bce87489f488373a03b8eb53686af9bc403e 15-Feb-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

ipv6: Fix tracing int sizes on non-32-bit systems


# 271ac910a4cfdefa6393c1e7cb5e3a665404757d 09-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

Remove useless includes of khash.h

* These files were already converted to BOpenHashTable.
* For #9552.


# c0b42ec1c191f7934d2960efda9047384461ff1f 29-Jan-2013 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fix out of bounds access.
key.first is a pointer, so we shouldn't use the & operator here.
CID 610870 and 610871.
Should also fix ticket #9184. At least I cannot reproduce it anymore.


# 06d477cd643dd602787aeecfb8985a157605fedd 13-Jan-2013 Axel Dörfler <axeld@pinc-software.de>

ipv6: added missing put_interface() call.

* Thanks to Stefano for pointing this out!


# 7d362bb34cbcd56d13de9d09c6efc808c21bb452 09-Sep-2012 Axel Dörfler <axeld@pinc-software.de>

The sFragmentLock was never being initialized.

* This fixes bug #8958.


# ad4d57f14b01abc88a09dc4bdedd1b35258741df 19-Aug-2012 Rene Gollent <anevilyak@gmail.com>

Fix multicast double free issue in IPv4.

- IPv4 had the same problem as v6. Most likely this was an oversight
when converting from a C to a C++ module. Might help with #6736 and
#8894.


# 9db38fdf344c2a51694723291f65617b17fe4895 19-Aug-2012 Rene Gollent <anevilyak@gmail.com>

Fix ticket #8870.

- multicast_address was being freed twice in ipv6_uninit_protocol(),
causing a panic on exit in apps that made use of it.


# 1684be5e3965ace73199df186def27439c5315c4 09-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

ipv6: Fix ability to disable ipv6 tracing. Disable ipv6 tracing


# 842cfbca2d9e1d68e61959bb17fee7585ffdf156 09-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

ipv6: bit of style cleanup. No functional change


# af66203031e425c058de3a107ee547cb32053796 09-Jul-2011 Axel Dörfler <axeld@pinc-software.de>

* Converted the hash used to the BOpenHashTable instead of khash - basically
just applied r38391 to the IPv6 code (no time to resolve the TODO, and put
that into a shared class).
* Fixed failure on init handling.
* Not tested, but should work at least better than before, as the hashtable has
never been initialized before...
* This closes bug #7795.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42399 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a9d5e34febe5626f9037b6eba9eb3acd4ca0f49 28-Apr-2011 Rene Gollent <anevilyak@gmail.com>

Patch by Atis Elsts from GSoC 2010 that was overlooked.
- Adds IPv6 fragmentation support and some partial work to enable configuration of IPv6 in net_server. Not currently in the build.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41291 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f505da5e20c32f3b23d4e1700d260bc3d931d78a 28-Apr-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed two superfluous newlines from debug output.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41287 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3794b8e560f691d50598e0dccf2b6aeba8e178eb 10-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Applied Atis latest changes to the IPv6 related modules. This brings them back
into a working state after the latest stack changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38021 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b4154458a820aa0b55b2800de9f0a13ea6ec1e2 04-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Finished groundwork on ICMP by introducing a completely protocol agnostic
error mechanism.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37896 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d72a2493e6eff7a91868b567965fe5ec45c4865c 29-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* Replaced ENODEV with B_DEVICE_NOT_FOUND.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37803 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