commit | f132e802fae0622b7ca1427e737944dc62dc7b7b | [log] [tgz] |
---|---|---|
author | Alex Khouderchah <akhouderchah@chromium.org> | Fri Aug 16 11:45:16 2019 -0700 |
committer | chrome-bot <chrome-bot@chromium.org> | Fri Oct 04 21:41:19 2019 -0700 |
tree | 083ea88e9f191f81d507c58e36a63fe6c88ffad9 | |
parent | 5f95856451d40eb6db73f6c23a98971943a760d6 [diff] |
shill: routing_table: Set Device table id based on interface id Previously, Connection would allocate a table ID for its Device and inform RoutingTable that the table is a per-Device table (causing device-specific routes to be moved from the main routing table to the per-Device table). This CL modifies this behavior such that each Device has a reserved table based on its interface index. Additional routing tables can still be requested and freed, but these are for use-cases like blackhole tables, rather than being used for per-Device tables. Note that Connection will still clear all of its table's routes on destruction. In addition to removing the per-device map in RoutingTable and the somewhat confusing SetPerDeviceTable interface, this allows for routes to always be sent to the correct per-Device table. The following CL furthers this by informing the kernel of the table ID, which causes it to create RA-triggered default routes directly in the per-Device table rather than requiring shill to manually move those routes. BUG=chromium:941597, b:138795581 TEST=-All unit tests are passing. -Manually verified routing tables/rules, including connecting to VPNs. -Manually tested connecting to many different WiFi ESSs (as the same Device will be used with different networks that will have different routes and gateways). Change-Id: I32595b445b3c4807d74915547362c42fffb2eef6 Reviewed-on: https://chromium-review.googlesource.com/1765666 Tested-by: Alex Khouderchah <akhouderchah@chromium.org> Commit-Ready: Alex Khouderchah <akhouderchah@chromium.org> Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org> Reviewed-by: Eric Caruso <ejcaruso@chromium.org> Reviewed-by: Hugo Benichi <hugobenichi@google.com>
This repo holds (most) of the custom code that makes up the Chromium OS platform. That largely covers daemons, programs, and libraries that were written specifically for Chromium OS.
We moved from multiple separate repos in platform/ to a single repo in platform2/ for a number of reasons:
While most projects were merged, not all of them were. Some projects were standalone already (such as vboot), or never got around to being folded in (such as imageloader). Some day those extra projects might get merged in.
Similarly, some projects that were merged in, were then merged back out. This was due to the evolution of the Brillo project and collaboration with Android. That means the AOSP repos are the upstream and Chromium OS carries copies.
Project | Description |
---|---|
arc | Tools/deamons/init-scripts to run ARC |
attestation | Daemon and client for managing remote attestation |
authpolicy | Daemon for integrating with Microsoft Active Directory (AD) domains |
avtest_label_detect | Test tool for OCRing device labels |
biod | Biometrics daemon |
bluetooth | Bluetooth Service and tools |
bootstat | Tools for tracking points in the overall boot process (for metrics) |
buffet | Daemon for reacting to cloud messages |
camera | Chrome OS Camera daemon |
chaps | PKCS #11 implementation for TPM 1 devices |
chromeos-common-script | Shared scripts for partitions and basic disk information |
chromeos-config | CrOS unified build runtime config manager |
chromeos-dbus-bindings | Simplifies the implementation of D-Bus daemons and proxies |
codelab | Codelab exercise |
common-mk | Common build & test logic for platform2 projects |
crash-reporter | The system crash handler & reporter |
cros-disks | Daemon for mounting removable media (e.g. USB sticks and SD cards) |
cros-fuzz | Support crate for fuzzing rust code |
cros_component | |
crosdns | Hostname resolution service for Chrome OS |
crosh | The Chromium OS shell |
cryptohome | Daemon and tools for managing encrypted /home and /var directories |
cups_proxy | Daemon for proxying CUPS printing request |
debugd | Centralized debug daemon for random tools |
dev-install | Tools & settings for managing the developer environment on the device |
diagnostics | Device telemetry and diagnostics daemons |
disk_updater | Utility for updating root disk firmware (e.g. SSDs and eMMC) |
dlcservice | Downloadable Content (DLC) Service daemon |
easy-unlock | Daemon for handling Easy Unlock requests (e.g. unlocking Chromebooks with an Android device) |
feedback | Daemon for headless systems that want to gather feedback (normally Chrome manages it) |
fitpicker | |
glib-bridge | library for libchrome-glib message loop interoperation |
goldfishd | Android Emulator Daemon |
hammerd | Firmware updater utility for hammer hardware |
hardware_verifier | Hardware verifier tool |
hermes | Chrome OS LPA implementation for eSIM hardware support |
image-burner | Daemon for writing disk images (e.g. recovery) to USB sticks & SD cards |
imageloader | Daemon for mounting signed disk images |
init | CrOS common startup init scripts and boot time helpers |
installer | CrOS installer utility (for AU/recovery/etc...) |
ippusb_manager | “Service” for ipp-over-usb printing |
kerberos | Daemon for managing Kerberos tickets |
libbrillo | Common platform utility library |
libchromeos-rs | Common platform utility library for Rust |
libchromeos-ui | |
libcontainer | |
libhwsec | Library for the utility functions of all TPM related daemons |
libipp | Library for building and parsing IPP (Internet Printing Protocol) frames |
libmems | Utility library to configure, manage and retrieve events from IIO sensors |
libpasswordprovider | Password Provider library for securely managing credentials with system services |
libtpmcrypto | Library for AES256-GCM encryption with TPM sealed keys |
login_manager | Session manager for handling the life cycle of the main session (e.g. Chrome) |
lorgnette | Daemon for managing attached USB scanners via SANE |
media_perception | Media perception service for select platforms |
memd | Daemon that logs memory-related data and events |
mems_setup | Boot-time initializer tool for sensors |
metrics | Client side user metrics collection |
midis | MIDI service |
mist | Modem USB Interface Switching Tool |
ml | Machine learning service |
modem-utilities | |
modemfwd | Daemon for managing modem firmware updaters |
mtpd | Daemon for handling Media Transfer Protocol (MTP) with devices (e.g. phones) |
oobe_config | Utilities for saving and restoring OOBE config state |
p2p | Service for sharing files between CrOS devices (e.g. updates) |
peerd | Daemon for communicating with local peers |
permission_broker | |
policy_proto | Build file to compile policy proto file |
policy_utils | Tools and related library to set or override device policies |
portier | Multi-Network Neighbor Discovery Proxy service for Chrome OS |
power_manager | Userspace power management daemon and associated tools |
print_tools | Various tools related to the native printing system |
qmi2cpp | Chrome OS QMI IDL Compiler |
regions | |
rendernodehost | Render node forward library |
run_oci | Minimalistic container runtime |
runtime_probe | Runtime probe tool for ChromeOS |
salsa | Touchpad experimentation framework |
screenshot | Tiny command to take a screenshot |
sealed_storage | Library for sealing data to device identity and state |
secure-wipe | Secure disk wipe |
secure_erase_file | Helper tools for securely erasing files from storage (e.g. keys and PII data) |
sepolicy | SELinux policy for Chrome OS |
shill | Chrome OS Connection Manager |
smbfs | FUSE-based filesystem for accessing Samba / Windows networking shares |
smbprovider | Daemon for connecting Samba / Windows networking shares to the Files.app |
smogcheck | Developer library for working with raw I2C devices |
st_flash | |
storage_info | Helper shell functions for retrieving disk information) |
system_api | Headers and .proto files etc. to be shared with chromium |
thd | Thermal daemon to help keep systems running cool |
timberslide | Tool for working with EC crashes for reporting purposes |
touch_firmware_calibration | |
touch_keyboard | Utilities for a touch based virtual keyboard |
tpm2-simulator | A software TPM 2.0 implementation (for testing/debugging) |
tpm_manager | Daemon and client for managing TPM setup and operations |
tpm_softclear_utils | Utilities that soft-clear TPM (for testing only) |
trace_events | A framework for adding trace events to your Rust code. |
trim | Service to manage filesystem trim operations in the background |
trunks | Middleware and resource manager for interfacing with TPM 2.0 hardware |
u2fd | U2FHID emulation daemon for systems with secure elements (not TPMs) |
usb_bouncer | Tools for managing USBGuard white-lists and configuration on Chrome OS |
userfeedback | Various utilities to gather extended data for user feedback reports |
userspace_touchpad | |
virtual_file_provider | |
vm_tools | Utilities for Virtual Machine (VM) orchestration |
vpn-manager | |
webserver | Small web server with D-Bus client backends |
wifi-testbed | Tools for creating a WiFi testbed image |
These projects can be found here: https://chromium.googlesource.com/aosp/platform/