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"
|
||||
}
|
||||
|
||||
get_config_cid_ifaces() {
|
||||
get_interface_csv() {
|
||||
local _ifaces
|
||||
config_get _ifaces 'config' "$2"
|
||||
config_get _ifaces "$2" "$3"
|
||||
|
||||
local _iface _ifnames=""
|
||||
# Set noglob to prevent '*' capturing diverse file names in the for ... in
|
||||
@ -98,6 +98,21 @@ get_config_cid_ifaces() {
|
||||
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()
|
||||
{
|
||||
local lldp_description
|
||||
@ -109,7 +124,7 @@ write_lldpd_conf()
|
||||
config_get lldp_hostname 'config' 'lldp_hostname' "$(cat /proc/sys/kernel/hostname)"
|
||||
|
||||
local ifnames
|
||||
get_config_cid_ifaces ifnames "interface"
|
||||
get_interface_csv ifnames 'config' "interface"
|
||||
|
||||
local 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" ||\
|
||||
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
|
||||
[ -e "$LLDPD_CONFS_DIR" ] || ln -s /etc/lldpd.d "$LLDPD_CONFS_DIR"
|
||||
}
|
||||
@ -335,7 +353,7 @@ start_service() {
|
||||
|
||||
# ChassisID interfaces
|
||||
local ifnames
|
||||
get_config_cid_ifaces ifnames "cid_interface"
|
||||
get_interface_csv ifnames 'config' "cid_interface"
|
||||
|
||||
[ -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