11Name: amazon-ec2-net-utils
2- %define base_version 2.7.1
2+ %define base_version 2.7.2
33%define source_version %{base_version }%{?_source_version_suffix }
44Version: %{base_version }%{?_rpm_version_suffix }
55Release: 1%{?dist }
@@ -39,21 +39,35 @@ make install DESTDIR=%{buildroot} PREFIX=/usr
3939%{_bindir }/set-hostname-imds
4040%dir %{_datarootdir }/amazon-ec2-net-utils
4141%{_datarootdir }/amazon-ec2-net-utils/lib.sh
42+ /etc/sysctl.d/90-ena-tuning-defaults.conf
4243
4344%post
4445
45- setup_policy_routes () {
46+ setup_interfaces () {
4647 local iface node
48+
49+ # Apply global sysctl defaults for new interfaces
50+ sysctl -p /etc/sysctl.d/90-ena-tuning-defaults.conf > /dev/null || true
51+
4752 for node in /sys/class/net/*; do
48- iface= $(basename $node)
49- unset ID_NET_DRIVER
50- eval $(udevadm info --export --query= property /sys/class/net/$iface)
51- case $ID_NET_DRIVER in
52- ena|ixgbevf|vif)
53- systemctl restart policy-routes@${iface}.service
54- systemctl start refresh-policy-routes@${iface}.timer
55- ;;
56- esac
53+ iface= $(basename $node)
54+ unset ID_NET_DRIVER
55+ eval $(udevadm info --export --query= property /sys/class/net/$iface)
56+ case $ID_NET_DRIVER in
57+ ena|ixgbevf|vif)
58+ # Apply per-interface sysctl tuning or else we need to reboot.
59+ cat > /etc/sysctl.d/90-ena-tuning-${iface}.conf << EOF
60+ # amazon-ec2-net-utils ENA tuning:
61+ net.ipv4.neigh.${iface}.delay_first_probe_time= 1
62+ net.ipv4.neigh.${iface}.base_reachable_time_ms= 5000
63+ net.ipv4.neigh.${iface}.retrans_time_ms= 500
64+ net.ipv4.neigh.${iface}.ucast_solicit= 0
65+ EOF
66+ sysctl -p /etc/sysctl.d/90-ena-tuning-${iface}.conf > /dev/null || true
67+ systemctl restart policy-routes@${iface}.service
68+ systemctl start refresh-policy-routes@${iface}.timer
69+ ;;
70+ esac
5771 done
5872}
5973
@@ -68,15 +82,22 @@ if [ $1 -eq 1 ]; then
6882 if [ -d /run/systemd/system ]; then
6983 systemctl stop NetworkManager.service
7084 systemctl start systemd-networkd.service
71- setup_policy_routes
85+ setup_interfaces
7286 systemctl start systemd-resolved.service
7387 fi
7488elif [ $1 -gt 1 ]; then
7589 # This is an upgrade, there's less setup to do, but we do want to
7690 # ensure we apply any configuration introduced by the new version
7791 systemctl daemon-reload
78- setup_policy_routes
92+ setup_interfaces
7993fi
8094
81- %changelog
95+ %postun
96+ # Make sure to config is revertable upon downgrade if something goes south.
97+ if [ -f /etc/sysctl.d/90-ena-tuning-defaults.conf ]; then
98+ rm -f /etc/sysctl.d/90-ena-tuning-defaults.conf
99+ fi
100+ rm -f /etc/sysctl.d/90-ena-tuning-* .conf
101+ sysctl --system > /dev/null || true
82102
103+ %changelog
0 commit comments