IPv6 on Crostini |
||||
Issue descriptionTracking bug for Portier. To enable IPv6 on Crostini, we are developing a multi-networked ND Proxy daemon (Portier). Crostini and other services may use this to proxy between IPv6 enabled network interfaces.
,
Jul 18
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/de0da3e98cc95113a109bb5da4ff6dc2f3fbcf77 commit de0da3e98cc95113a109bb5da4ff6dc2f3fbcf77 Author: Alex Dale <sigquit@google.com> Date: Wed Jul 18 04:53:03 2018 portier: Modification methods for ND Message. Realized the ability to modify the proxy bit in Router Advertisements was needed for ND proxy to work. The unittest has been extended to test both the proxy bit modification and the source/target link-layer address. TEST=unittests BUG=chromium:863260 Change-Id: Id6749db092e6b6674c4c572b6776b5401bbaca10 Reviewed-on: https://chromium-review.googlesource.com/1136890 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Hugo Benichi <hugobenichi@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/de0da3e98cc95113a109bb5da4ff6dc2f3fbcf77/portier/nd_msg_unittest.cc [modify] https://crrev.com/de0da3e98cc95113a109bb5da4ff6dc2f3fbcf77/portier/nd_msg.h [modify] https://crrev.com/de0da3e98cc95113a109bb5da4ff6dc2f3fbcf77/portier/nd_msg.cc
,
Jul 18
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/194154fc594b6f3d922919e3c323318b41f80f46 commit 194154fc594b6f3d922919e3c323318b41f80f46 Author: Alex Dale <sigquit@google.com> Date: Wed Jul 18 04:53:27 2018 portier: Status object for error handling. This Status object is to help return meaningful debug information from low level functions without cluttering the system logs for errors that can be handled at run-time. TEST=unittests BUG=chromium:863260 Change-Id: I91bd0acfb3dfa63468f85fe4428d915985e2de5d Reviewed-on: https://chromium-review.googlesource.com/1139047 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/194154fc594b6f3d922919e3c323318b41f80f46/portier/README.md [modify] https://crrev.com/194154fc594b6f3d922919e3c323318b41f80f46/portier/portier.gyp [add] https://crrev.com/194154fc594b6f3d922919e3c323318b41f80f46/portier/status.cc [add] https://crrev.com/194154fc594b6f3d922919e3c323318b41f80f46/portier/status.h [add] https://crrev.com/194154fc594b6f3d922919e3c323318b41f80f46/portier/status_unittest.cc
,
Jul 25
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/8d2da6e390eeac8bf654502fec89a07e91c06990 commit 8d2da6e390eeac8bf654502fec89a07e91c06990 Author: Alex Dale <sigquit@google.com> Date: Wed Jul 25 07:14:39 2018 portier: Minor refactoring with testcases. Made several code changes in response to comments to CL:1121325 made post-merge. The changes only effect LLAddress and NDMessage. Summary: - Changing of `unsigned char' to `uint8_t'. - Use of `constexpr' instead of `const` where applicable. - Added testcase for leading and trailing white space for link-layer address validation. - Made LLAddress string acceptance more strict. xx:xx format only. - Move some trivial getters to header file. - Changed `arpType' to `GetArpType` in LLAddres getter. - Renaming of LLAddress Type enumeration. - Removing of leading :: for unambiguous namespace. TEST=unittests BUG=chromium:863260 Change-Id: Ie3ebc1a9334b65dedecd9bf235d72aabc06b1cf4 Reviewed-on: https://chromium-review.googlesource.com/1142733 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/8d2da6e390eeac8bf654502fec89a07e91c06990/portier/ll_address.h [modify] https://crrev.com/8d2da6e390eeac8bf654502fec89a07e91c06990/portier/ll_address_unittest.cc [modify] https://crrev.com/8d2da6e390eeac8bf654502fec89a07e91c06990/portier/nd_msg.h [modify] https://crrev.com/8d2da6e390eeac8bf654502fec89a07e91c06990/portier/nd_msg_unittest.cc [modify] https://crrev.com/8d2da6e390eeac8bf654502fec89a07e91c06990/portier/nd_msg.cc [modify] https://crrev.com/8d2da6e390eeac8bf654502fec89a07e91c06990/portier/ll_address.cc
,
Jul 26
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/2a5520731210f4c7f3ff3c1f88b94677ce76077f commit 2a5520731210f4c7f3ff3c1f88b94677ce76077f Author: Alex Dale <sigquit@google.com> Date: Thu Jul 26 11:07:44 2018 portier: Created an IPv6 ethernet socket. This change provides a interface for network sockets. The NetworkSocket can get information about the network interface and provides some generic functionality for configuring sockets. EtherSocket is responsible for creating a raw packet socket which can send/receive ethernet frames containing IPv6 packets. TEST=none BUG=chromium:863260 Change-Id: Id353efd5eaf5566181648bd9e63a2a2624a19e18 Reviewed-on: https://chromium-review.googlesource.com/1141442 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [add] https://crrev.com/2a5520731210f4c7f3ff3c1f88b94677ce76077f/portier/network_socket.cc [add] https://crrev.com/2a5520731210f4c7f3ff3c1f88b94677ce76077f/portier/network_socket.h [add] https://crrev.com/2a5520731210f4c7f3ff3c1f88b94677ce76077f/portier/ether_socket.cc [add] https://crrev.com/2a5520731210f4c7f3ff3c1f88b94677ce76077f/portier/ether_socket.h [modify] https://crrev.com/2a5520731210f4c7f3ff3c1f88b94677ce76077f/portier/status.cc [modify] https://crrev.com/2a5520731210f4c7f3ff3c1f88b94677ce76077f/portier/status.h [modify] https://crrev.com/2a5520731210f4c7f3ff3c1f88b94677ce76077f/portier/portier.gyp
,
Jul 26
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/3ab445de7665f1f72c2598294849fa8bdf5c2527 commit 3ab445de7665f1f72c2598294849fa8bdf5c2527 Author: Alex Dale <sigquit@google.com> Date: Thu Jul 26 11:07:54 2018 portier: Neighbor Discovery message checksum accessors. This change adds the ability to get and set the checksum component of Neighbor Discover messages. The unit tests have been updated to test the change. TEST=unittest BUG=chromium:863260 Change-Id: I3470dec60a4a157c1b34f8bec327eaca92285827 Reviewed-on: https://chromium-review.googlesource.com/1150689 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Hugo Benichi <hugobenichi@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/3ab445de7665f1f72c2598294849fa8bdf5c2527/portier/nd_msg_unittest.cc [modify] https://crrev.com/3ab445de7665f1f72c2598294849fa8bdf5c2527/portier/nd_msg.h [modify] https://crrev.com/3ab445de7665f1f72c2598294849fa8bdf5c2527/portier/nd_msg.cc
,
Jul 31
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/8974eaeeb60e086ee4ea9659aed764c12e371648 commit 8974eaeeb60e086ee4ea9659aed764c12e371648 Author: Alex Dale <sigquit@google.com> Date: Tue Jul 31 23:37:14 2018 portier: IPv6 checksum function. This change adds functions for calculating checksums for IPv6 packets. This follows the protocol for generating IPv6 checksums in RFC 8200 section 8.1. The algorithm follows the tips for calculating the 16-bit Internet checksum published in RFC 1071. TEST=unittests BUG=chromium:863260 Change-Id: I6ed92e40cd8b75ab8bc809122b6f453362a767dc Reviewed-on: https://chromium-review.googlesource.com/1141441 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/8974eaeeb60e086ee4ea9659aed764c12e371648/portier/portier.gyp [add] https://crrev.com/8974eaeeb60e086ee4ea9659aed764c12e371648/portier/ipv6_util.h [add] https://crrev.com/8974eaeeb60e086ee4ea9659aed764c12e371648/portier/ipv6_util_unittest.cc [add] https://crrev.com/8974eaeeb60e086ee4ea9659aed764c12e371648/portier/ipv6_util.cc
,
Jul 31
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/1a799a06edfa89c8aa409459243d29e7dbbc3751 commit 1a799a06edfa89c8aa409459243d29e7dbbc3751 Author: Alex Dale <sigquit@google.com> Date: Tue Jul 31 23:37:25 2018 portier: Extending IPv6 ethernet socket for IO The change extends the capabilities of the EtherSocket class to receive and send IPv6 packets. Several header fields in the ethernet frame and IPv6 packet are processed to and from their respective objects within the Portier library. TEST=none BUG=chromium:863260 Change-Id: Ib1bc7150e5cb1e1f5bda650cb8591e0d5bb9e37c Reviewed-on: https://chromium-review.googlesource.com/1144535 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/1a799a06edfa89c8aa409459243d29e7dbbc3751/portier/status_unittest.cc [modify] https://crrev.com/1a799a06edfa89c8aa409459243d29e7dbbc3751/portier/ether_socket.cc [modify] https://crrev.com/1a799a06edfa89c8aa409459243d29e7dbbc3751/portier/network_socket.cc
,
Aug 3
,
Aug 8
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/d3319f7fda53295240e32a4ccc80acfaeb88652e commit d3319f7fda53295240e32a4ccc80acfaeb88652e Author: Alex Dale <sigquit@google.com> Date: Wed Aug 08 01:08:55 2018 portier: Proxy group manager class. This change adds a GroupManager class for managing the memberships of interfaces to proxy groups. Proxy groups are simply names. Interfaces are identified by interface name as well to reduce coupling and make testing easier. TEST=unittest BUG=chromium:863260 Change-Id: Iea3043bc50a29cf2277c8a6e8d7a77b55495cb1f Reviewed-on: https://chromium-review.googlesource.com/1159476 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Hugo Benichi <hugobenichi@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [add] https://crrev.com/d3319f7fda53295240e32a4ccc80acfaeb88652e/portier/group_mgr.h [modify] https://crrev.com/d3319f7fda53295240e32a4ccc80acfaeb88652e/portier/status_unittest.cc [modify] https://crrev.com/d3319f7fda53295240e32a4ccc80acfaeb88652e/portier/status.cc [modify] https://crrev.com/d3319f7fda53295240e32a4ccc80acfaeb88652e/portier/status.h [modify] https://crrev.com/d3319f7fda53295240e32a4ccc80acfaeb88652e/portier/portier.gyp [add] https://crrev.com/d3319f7fda53295240e32a4ccc80acfaeb88652e/portier/group_mgr_unittest.cc [add] https://crrev.com/d3319f7fda53295240e32a4ccc80acfaeb88652e/portier/group_mgr.cc
,
Aug 8
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/496a948f5e4af868a6f2e45b4e984a24156d6fca commit 496a948f5e4af868a6f2e45b4e984a24156d6fca Author: Alex Dale <sigquit@google.com> Date: Wed Aug 08 04:45:08 2018 portier: IPv6 classifiers and multicast LL generator. This change creates functions for classifying IPv6 address and for generating multicast link-layer addresses from multicast IPv6 addresses. These functions will be used by the ND Proxy logic for deciding how to handle incoming Neighbor discovery packets based on the address class. The classes are defined in RFC4291, and the multicast link-layer address format is defined in RFC 7042. TEST=unittests BUG=chromium:863260 Change-Id: I86e6a25a09b6e82df52e34662c2ae4491506c078 Reviewed-on: https://chromium-review.googlesource.com/1163885 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/496a948f5e4af868a6f2e45b4e984a24156d6fca/portier/ipv6_util.h [modify] https://crrev.com/496a948f5e4af868a6f2e45b4e984a24156d6fca/portier/ipv6_util_unittest.cc [modify] https://crrev.com/496a948f5e4af868a6f2e45b4e984a24156d6fca/portier/ipv6_util.cc
,
Aug 9
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/57703b8e8af6da7c342ec0775afdab48cc01fad7 commit 57703b8e8af6da7c342ec0775afdab48cc01fad7 Author: Alex Dale <sigquit@google.com> Date: Thu Aug 09 03:46:13 2018 shill: IP Address less than operator. This change introduces a less than operator for both ByteString and IPAddress. The ByteString less than operator is based on the static IsLessThan method. IPAddress uses the ByteString less than operator to implement its own. The IPAddress less than operator is to allow binary searching of IP address with some of the C++ standard library containers. TEST=unittest BUG=chromium:863260 Change-Id: I8a689d12d16440c0744e882bef0186b490fa5bb8 Reviewed-on: https://chromium-review.googlesource.com/1162973 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Chirantan Ekbote <chirantan@chromium.org> [modify] https://crrev.com/57703b8e8af6da7c342ec0775afdab48cc01fad7/net/ip_address.h [modify] https://crrev.com/57703b8e8af6da7c342ec0775afdab48cc01fad7/net/byte_string.h [modify] https://crrev.com/57703b8e8af6da7c342ec0775afdab48cc01fad7/net/byte_string_unittest.cc [modify] https://crrev.com/57703b8e8af6da7c342ec0775afdab48cc01fad7/net/ip_address.cc [modify] https://crrev.com/57703b8e8af6da7c342ec0775afdab48cc01fad7/net/ip_address_unittest.cc
,
Aug 9
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/a0d3dc43f6f3db320e29a32a22173c235459e887 commit a0d3dc43f6f3db320e29a32a22173c235459e887 Author: Alex Dale <sigquit@google.com> Date: Thu Aug 09 03:46:02 2018 portier: Neighbor cache entry manager. This change contains the first iteration of the NeighborCacheEntry (which represents a Neighbor ARP entry) and the NeighborCacheManager (which helps manage table look ups). TEST=unittest BUG=chromium:863260 Change-Id: Ie3397de5106f6ff4702d6ad2aee2578564ad5fba Reviewed-on: https://chromium-review.googlesource.com/1161612 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/a0d3dc43f6f3db320e29a32a22173c235459e887/portier/portier.gyp [add] https://crrev.com/a0d3dc43f6f3db320e29a32a22173c235459e887/portier/neighbor_cache.h [add] https://crrev.com/a0d3dc43f6f3db320e29a32a22173c235459e887/portier/neighbor_cache.cc [add] https://crrev.com/a0d3dc43f6f3db320e29a32a22173c235459e887/portier/neighbor_cache_unittest.cc
,
Aug 9
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/d649009736248245386361c57844018a8257392c commit d649009736248245386361c57844018a8257392c Author: Alex Dale <sigquit@google.com> Date: Thu Aug 09 03:46:14 2018 portier: Initial BPF filter. This change introduces the BPF filter used to separate IPv6 ND packets and other IPv6 packets. This filter does not handle IPv6 extension headers. The filter has been manually tested, attaching to a raw packet socket and scanning for ND messages and non-ND messages. TEST=manual BUG=chromium:863260 Change-Id: I19f4f2f42440cd7091bddab7de29742cd3c972e7 Reviewed-on: https://chromium-review.googlesource.com/1164414 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/d649009736248245386361c57844018a8257392c/portier/portier.gyp [add] https://crrev.com/d649009736248245386361c57844018a8257392c/portier/nd_bpf.cc [add] https://crrev.com/d649009736248245386361c57844018a8257392c/portier/nd_bpf.h
,
Aug 10
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/97ac11034f1be44e917bb0313f63ee70d7153b7d commit 97ac11034f1be44e917bb0313f63ee70d7153b7d Author: Alex Dale <sigquit@google.com> Date: Fri Aug 10 12:08:36 2018 portier: Create a socket for ICMPv6 messages. This change introduces a socket wrapper for ICMPv6 messages. Focus is on the ability to send ICMPv6 messages. The ability to receive messages is available, not intended to be used outside of testing. The 2 types of ICMPv6 messages that are are expected to be generated by Portier are Destination Unreachable and Packet Too Big error messages. TEST=none BUG=chromium:863260 Change-Id: Ib53ac45040ccbf6434213d1a8db5c8a265cb6ee6 Reviewed-on: https://chromium-review.googlesource.com/1167990 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/97ac11034f1be44e917bb0313f63ee70d7153b7d/portier/network_socket.cc [modify] https://crrev.com/97ac11034f1be44e917bb0313f63ee70d7153b7d/portier/network_socket.h [modify] https://crrev.com/97ac11034f1be44e917bb0313f63ee70d7153b7d/portier/ether_socket.cc [modify] https://crrev.com/97ac11034f1be44e917bb0313f63ee70d7153b7d/portier/portier.gyp [add] https://crrev.com/97ac11034f1be44e917bb0313f63ee70d7153b7d/portier/icmpv6_socket.cc [add] https://crrev.com/97ac11034f1be44e917bb0313f63ee70d7153b7d/portier/icmpv6_socket.h
,
Aug 11
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/connectivity/shill/+/6a1d40f2c04f10e9f48a8d1a92470d374d3d3358 commit 6a1d40f2c04f10e9f48a8d1a92470d374d3d3358 Author: Alex Dale <sigquit@google.com> Date: Sat Aug 11 05:44:15 2018 shill: Added move operators to ByteString and IPAddress. This change address move assignment operator and move constructor to ByteString and to IPAddress. ByteStrings can become very large and copying them can become expensive operations. IPAddress can similarly benefit. By providing move operators to them, they can be efficiently passed. TEST=unittest BUG=chromium:863260 Change-Id: I8faf0e06d5cadabd6407bb544ff25e73ee0a9321 Reviewed-on: https://chromium-review.googlesource.com/1170562 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/6a1d40f2c04f10e9f48a8d1a92470d374d3d3358/net/ip_address.h [modify] https://crrev.com/6a1d40f2c04f10e9f48a8d1a92470d374d3d3358/net/byte_string.h [modify] https://crrev.com/6a1d40f2c04f10e9f48a8d1a92470d374d3d3358/net/byte_string_unittest.cc [modify] https://crrev.com/6a1d40f2c04f10e9f48a8d1a92470d374d3d3358/net/ip_address_unittest.cc
,
Aug 11
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/4c1344a57d9070dc79b579d517ba70f5ad2cee5c commit 4c1344a57d9070dc79b579d517ba70f5ad2cee5c Author: Alex Dale <sigquit@google.com> Date: Sat Aug 11 08:29:10 2018 portier: Fixed the include order of various files. After reviewing the C++ code style guide, I've fixed all the currently commited Portier source files. Also removed comments which are not needed. Compiled and unittest were run to ensure that no unintended behaviour had arose. TEST=unittest BUG=chromium:863260 Change-Id: Idc85c8956605c0e742e2fd31da113ebb0aa7a7e5 Reviewed-on: https://chromium-review.googlesource.com/1171813 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/status_unittest.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/ipv6_util.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/ll_address.h [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/nd_bpf.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/status.h [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/ll_address_unittest.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/nd_msg.h [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/ether_socket.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/nd_msg_unittest.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/ipv6_util_unittest.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/neighbor_cache.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/status.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/neighbor_cache_unittest.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/nd_msg.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/ll_address.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/group_mgr_unittest.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/group_mgr.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/icmpv6_socket.cc [modify] https://crrev.com/4c1344a57d9070dc79b579d517ba70f5ad2cee5c/portier/network_socket.cc
,
Aug 15
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/6f74e0a33fce340a19aa9d97a2352e6620c139d5 commit 6f74e0a33fce340a19aa9d97a2352e6620c139d5 Author: Alex Dale <sigquit@google.com> Date: Wed Aug 15 23:37:22 2018 portier: Created proxy interface wrapper. The proxy interface class is a wrapper around network interfaces that are to be used in the ND Proxy program. It initializes several network sockets to the specification of the neighbor discovery proxy protocol. The class also handles some of the lower-level ND proxy functions. This includes: - Link-layer address substitution in the Neighbor Discovery Message. - Calculating the ICMPv6 checksums on modified messages. - Setting of Proxy Bit on Router Advertisements. - Setting Hop-Limit to 255. TEST=manual BUG=chromium:863260 Change-Id: I2f14c9f7a7371c43341da85fbc0d20aa3c857abf Reviewed-on: https://chromium-review.googlesource.com/1171678 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/6f74e0a33fce340a19aa9d97a2352e6620c139d5/portier/portier.gyp [add] https://crrev.com/6f74e0a33fce340a19aa9d97a2352e6620c139d5/portier/proxy_interface.cc [add] https://crrev.com/6f74e0a33fce340a19aa9d97a2352e6620c139d5/portier/proxy_interface.h
,
Aug 17
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/55c581d1e2c64dae9822af4316c028445bdddb6e commit 55c581d1e2c64dae9822af4316c028445bdddb6e Author: Alex Dale <sigquit@google.com> Date: Fri Aug 17 18:17:40 2018 portier: Proxy Group class. This change introduces a Proxy Group class which can contain / manage a set of group members (known as ProxyGroupMember). The ProxyGroup class and ProxyGroupMember interface work together to maintain a bi- directional relationship between the two classes. ProxyGroup is aware of its members and ProxyGroupMember is aware of which group it is a member of. The ProxyGroupMember provides API hooks for the class implementing the class to be notified when being added or removed from a Proxy Group. It is intended that the ProxyInterface class to inherit from ProxyGroupMember. This change will replace much of the functionality of the GroupManager class. After some testing, it was found that the GroupManager class creates difficulties for adding and removing elements from the group, which then requires many function calls. This new ProxyGroup- ProxyGroupMember pattern addresses the issues that were faced before, while still providing the ability to effectively unittest the components. TEST=unittest BUG=chromium:863260 Change-Id: Ie1e5a08847de149e58104cea7357cc0b7b3d244d Reviewed-on: https://chromium-review.googlesource.com/1175552 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [delete] https://crrev.com/9ce47d071137e31a67e1901990acf564d5eea034/portier/group_mgr.h [add] https://crrev.com/55c581d1e2c64dae9822af4316c028445bdddb6e/portier/mock_group.h [add] https://crrev.com/55c581d1e2c64dae9822af4316c028445bdddb6e/portier/group.cc [add] https://crrev.com/55c581d1e2c64dae9822af4316c028445bdddb6e/portier/group_manager.h [add] https://crrev.com/55c581d1e2c64dae9822af4316c028445bdddb6e/portier/group_unittest.cc [add] https://crrev.com/55c581d1e2c64dae9822af4316c028445bdddb6e/portier/group.h [modify] https://crrev.com/55c581d1e2c64dae9822af4316c028445bdddb6e/portier/portier.gyp [delete] https://crrev.com/9ce47d071137e31a67e1901990acf564d5eea034/portier/group_mgr_unittest.cc [delete] https://crrev.com/9ce47d071137e31a67e1901990acf564d5eea034/portier/group_mgr.cc [add] https://crrev.com/55c581d1e2c64dae9822af4316c028445bdddb6e/portier/group_manager_unittest.cc
,
Aug 17
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/b24688c63ed7c0f9e65c1f2c184041547ea35a2a commit b24688c63ed7c0f9e65c1f2c184041547ea35a2a Author: Alex Dale <sigquit@google.com> Date: Fri Aug 17 18:17:53 2018 portier: Neighbor cache expiry mechanism. This changes provides the NeighborCache class the ability to discard any cache entries that are older than a specified time frame. This is necessary as RTNetlink may not signal the process on entries being deleted. This also allows for the discarding of locally generated cache entries which are not managed by the kernel. These entries are generated when a downstream interface perform neighbor discovery, requiring the ND Proxy to cache the entry for two-way traffic to be established. The Linux kernel will not cache entries for non-solicited neighbor advertisement if they were not self initiated. TEST=unittest BUG=chromium:863260 Change-Id: I3e8839ca0eecb46f5f1a85bc840cf5a8c7138a86 Reviewed-on: https://chromium-review.googlesource.com/1176393 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/b24688c63ed7c0f9e65c1f2c184041547ea35a2a/portier/neighbor_cache.h [modify] https://crrev.com/b24688c63ed7c0f9e65c1f2c184041547ea35a2a/portier/neighbor_cache.cc [modify] https://crrev.com/b24688c63ed7c0f9e65c1f2c184041547ea35a2a/portier/neighbor_cache_unittest.cc
,
Aug 17
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/34048acff722c35a0093c2b09aa124476fbd80b7 commit 34048acff722c35a0093c2b09aa124476fbd80b7 Author: Alex Dale <sigquit@google.com> Date: Fri Aug 17 18:18:05 2018 portier: use of sendmsg in EtherSocket instead of sendto. This change attempts to add a small performance post to EtherSocket by removing the need to excessively copy data. After a review of ICMPSocket (in cl:1167990), it was suggested to use sendmsg() instead of sendto() system call. This removes the need for heap allocated header fields and copying of packet payload in to a temporary buffer. TEST=none BUG=chromium:863260 Change-Id: I094d4c6c489f3926086cc10ccffba258da4f0f23 Reviewed-on: https://chromium-review.googlesource.com/1176464 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Hugo Benichi <hugobenichi@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/34048acff722c35a0093c2b09aa124476fbd80b7/portier/ether_socket.cc
,
Aug 17
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/7e6dd601251befdbaa141f2b2353a38ef55b6dc6 commit 7e6dd601251befdbaa141f2b2353a38ef55b6dc6 Author: Alex Dale <sigquit@google.com> Date: Fri Aug 17 18:18:07 2018 portier: Updated project description to include "Multi-Network" After some discussion, it was determined to dub the portier service as the "Multi-Network Neighbor Discovery Proxy". TEST=none BUG=chromium:863260 Change-Id: I21a6f736b44ccdf8c7c200c75934924f0704ed18 Reviewed-on: https://chromium-review.googlesource.com/1176476 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Hugo Benichi <hugobenichi@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/7e6dd601251befdbaa141f2b2353a38ef55b6dc6/portier/README.md [modify] https://crrev.com/7e6dd601251befdbaa141f2b2353a38ef55b6dc6/README.md
,
Aug 17
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/79db6f53eae84d2229a01d7a4cb6673450aeb7b4 commit 79db6f53eae84d2229a01d7a4cb6673450aeb7b4 Author: Alex Dale <sigquit@google.com> Date: Fri Aug 17 18:17:40 2018 portier: ProxyInterface extends GroupMember The change adds GroupMember as a parent class of ProxyInterface. By adding it as a parent, the interface can ba automatically notified when joining or leaving a group. This will be used to determine when to enable or disable the interface. CQ-DEPEND=CL:1175552 TEST=none BUG=chromium:863260 Change-Id: Ia2362103b62512688c84be0fb4ec2d1d4080e4c4 Reviewed-on: https://chromium-review.googlesource.com/1177196 Commit-Ready: Alex Dale <sigquit@google.com> Tested-by: Alex Dale <sigquit@google.com> Reviewed-by: Stephen Barber <smbarber@chromium.org> [modify] https://crrev.com/79db6f53eae84d2229a01d7a4cb6673450aeb7b4/portier/proxy_interface.cc [modify] https://crrev.com/79db6f53eae84d2229a01d7a4cb6673450aeb7b4/portier/proxy_interface.h
,
Oct 3
,
Oct 5
,
Jan 2
Issue 918015 has been merged into this issue. |
||||
►
Sign in to add a comment |
||||
Comment 1 by bugdroid1@chromium.org
, Jul 16