Skip to content

Commit

Permalink
Allow Linux optimizations (UDP GRO for forwarding) on multiple defaul…
Browse files Browse the repository at this point in the history
…t interfaces and IPv6 (hassio-addons#361)
  • Loading branch information
lmagyar authored May 20, 2024
1 parent a2684e5 commit 0298d5d
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions tailscale/rootfs/etc/s6-overlay/s6-rc.d/post-tailscaled/run
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Home Assistant Community Add-on: Tailscale
# Runs after the machine has been logged in into the Tailscale network
# ==============================================================================
declare default_route_device
declare interface
declare -a options
declare -a routes=()
declare route
Expand All @@ -15,12 +15,16 @@ declare keyexpiry

# Linux optimizations for subnet routers and exit nodes
# Based on: https://tailscale.com/kb/1320/performance-best-practices#linux-optimizations-for-subnet-routers-and-exit-nodes
# Note: Changes made via ethtool are not persistent and will be lost after the machine shuts down.
# Note: Changes made via ethtool are not persistent and will be lost after the machine shuts down
# Note: Executing it before "tailscale up" to avoid warning messages
default_route_device=$(ip -4 route show 0/0 | cut -f5 -d' ')
if bashio::var.has_value "${default_route_device}"; then
ethtool -K "${default_route_device}" rx-udp-gro-forwarding on rx-gro-list off
fi
for interface in $( \
{ ip -4 route show 0/0; ip -6 route show ::/0; } \
| cut -f5 -d' ' \
| sort -u)
do
bashio::log.info "Allow UDP GRO for forwarding on ${interface}"
ethtool -K "${interface}" rx-udp-gro-forwarding on rx-gro-list off
done

# Default options
options+=(--hostname "$(bashio::info.hostname)")
Expand Down

0 comments on commit 0298d5d

Please sign in to comment.