Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
bca880a0e8
@ -75,9 +75,9 @@ get_config_restart_hash() {
|
|||||||
export -n "$var=$_hash"
|
export -n "$var=$_hash"
|
||||||
}
|
}
|
||||||
|
|
||||||
get_config_cid_ifaces() {
|
get_interface_csv() {
|
||||||
local _ifaces
|
local _ifaces
|
||||||
config_get _ifaces 'config' "$2"
|
config_get _ifaces "$2" "$3"
|
||||||
|
|
||||||
local _iface _ifnames=""
|
local _iface _ifnames=""
|
||||||
# Set noglob to prevent '*' capturing diverse file names in the for ... in
|
# Set noglob to prevent '*' capturing diverse file names in the for ... in
|
||||||
@ -98,6 +98,21 @@ get_config_cid_ifaces() {
|
|||||||
export -n "${1}=$_ifnames"
|
export -n "${1}=$_ifnames"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_custom_tlv_callback()
|
||||||
|
{
|
||||||
|
# syntax: configure [ports ethX[,…]] lldp custom-tlv [add|replace] oui XX,XX,XX subtype XX oui-info XX[,XX,...]
|
||||||
|
# ex: configure ports br-lan,eth0 lldp custom-tlv replace oui 33,44,55 subtype 254 oui-info 55,55,55,55,55
|
||||||
|
# ex: configure lldp custom-tlv oui 33,44,44 subtype 232
|
||||||
|
|
||||||
|
local _ports
|
||||||
|
local _tlv
|
||||||
|
# CSV of device ports
|
||||||
|
get_interface_csv _ports "$1" 'ports'
|
||||||
|
config_get _tlv "$1" 'tlv'
|
||||||
|
|
||||||
|
echo "configure ${_ports:+ports $_ports }lldp custom-tlv $_tlv" >> "$LLDPD_CONF"
|
||||||
|
}
|
||||||
|
|
||||||
write_lldpd_conf()
|
write_lldpd_conf()
|
||||||
{
|
{
|
||||||
local lldp_description
|
local lldp_description
|
||||||
@ -109,7 +124,7 @@ write_lldpd_conf()
|
|||||||
config_get lldp_hostname 'config' 'lldp_hostname' "$(cat /proc/sys/kernel/hostname)"
|
config_get lldp_hostname 'config' 'lldp_hostname' "$(cat /proc/sys/kernel/hostname)"
|
||||||
|
|
||||||
local ifnames
|
local ifnames
|
||||||
get_config_cid_ifaces ifnames "interface"
|
get_interface_csv ifnames 'config' "interface"
|
||||||
|
|
||||||
local lldp_mgmt_ip
|
local lldp_mgmt_ip
|
||||||
config_get lldp_mgmt_ip 'config' 'lldp_mgmt_ip'
|
config_get lldp_mgmt_ip 'config' 'lldp_mgmt_ip'
|
||||||
@ -197,6 +212,9 @@ write_lldpd_conf()
|
|||||||
[ "$lldp_mgmt_addr_advertisements" -gt 0 ] && echo "configure lldp management-addresses-advertisements" >> "$LLDPD_CONF" ||\
|
[ "$lldp_mgmt_addr_advertisements" -gt 0 ] && echo "configure lldp management-addresses-advertisements" >> "$LLDPD_CONF" ||\
|
||||||
echo "unconfigure lldp management-addresses-advertisements" >> "$LLDPD_CONF"
|
echo "unconfigure lldp management-addresses-advertisements" >> "$LLDPD_CONF"
|
||||||
|
|
||||||
|
# Custom TLV handling
|
||||||
|
config_foreach add_custom_tlv_callback 'custom-tlv'
|
||||||
|
|
||||||
# Since lldpd's sysconfdir is /tmp, we'll symlink /etc/lldpd.d to /tmp/$LLDPD_CONFS_DIR
|
# Since lldpd's sysconfdir is /tmp, we'll symlink /etc/lldpd.d to /tmp/$LLDPD_CONFS_DIR
|
||||||
[ -e "$LLDPD_CONFS_DIR" ] || ln -s /etc/lldpd.d "$LLDPD_CONFS_DIR"
|
[ -e "$LLDPD_CONFS_DIR" ] || ln -s /etc/lldpd.d "$LLDPD_CONFS_DIR"
|
||||||
}
|
}
|
||||||
@ -335,7 +353,7 @@ start_service() {
|
|||||||
|
|
||||||
# ChassisID interfaces
|
# ChassisID interfaces
|
||||||
local ifnames
|
local ifnames
|
||||||
get_config_cid_ifaces ifnames "cid_interface"
|
get_interface_csv ifnames 'config' "cid_interface"
|
||||||
|
|
||||||
[ -n "$ifnames" ] && procd_append_param command -C "$ifnames"
|
[ -n "$ifnames" ] && procd_append_param command -C "$ifnames"
|
||||||
|
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
From 8cae5a0d91fea01d90ce7c1827e26934a22ca2fa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rui Salvaterra <rsalvaterra@gmail.com>
|
||||||
|
Date: Wed, 5 Mar 2025 11:53:56 +0000
|
||||||
|
Subject: [PATCH] igc: enable HW vlan tag insertion/stripping by default
|
||||||
|
|
||||||
|
This is enabled by default in other Intel drivers I've checked (e1000, e1000e,
|
||||||
|
iavf, igb and ice). Fixes an out-of-the-box performance issue when running
|
||||||
|
OpenWrt on typical mini-PCs with igc-supported Ethernet controllers and 802.1Q
|
||||||
|
VLAN configurations, as ethtool isn't part of the default packages and sane
|
||||||
|
defaults are expected.
|
||||||
|
|
||||||
|
In my specific case, with an Intel N100-based machine with four I226-V Ethernet
|
||||||
|
controllers, my upload performance increased from under 30 Mb/s to the expected
|
||||||
|
~1 Gb/s.
|
||||||
|
|
||||||
|
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
|
||||||
|
---
|
||||||
|
drivers/net/ethernet/intel/igc/igc_main.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
--- a/drivers/net/ethernet/intel/igc/igc_main.c
|
||||||
|
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
|
||||||
|
@@ -6850,6 +6850,9 @@ static int igc_probe(struct pci_dev *pde
|
||||||
|
netdev->xdp_features = NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
|
||||||
|
NETDEV_XDP_ACT_XSK_ZEROCOPY;
|
||||||
|
|
||||||
|
+ /* enable HW vlan tag insertion/stripping by default */
|
||||||
|
+ netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX;
|
||||||
|
+
|
||||||
|
/* MTU range: 68 - 9216 */
|
||||||
|
netdev->min_mtu = ETH_MIN_MTU;
|
||||||
|
netdev->max_mtu = MAX_STD_JUMBO_FRAME_SIZE;
|
Loading…
x
Reference in New Issue
Block a user