core: Increase the gso max size for rmnet
Some drivers in kernel could not handle packets larger than the gso max size and they were going into a bad state when such packets were delivered to the driver. While linux tcp stack honors the gso max size, there are other methods in the kernel which could send packets larger than gso max size to drivers. To handle this, a change was added in kernel to instead segment packets via gso to mss size before sending it to the driver through commit 24ab059d2ebd ("net: check dev->gso_max_size in gso_features_check()"). gso max size is 64k for rmnet as that is the maximum size which hardware can support. As TCP tries to send 65k size TSO packets, these ended up getting segmented by network stack prior to reaching rmnet driver. To work around this change, increase the rmnet maximum gso size to 65k. Rmnet supports segmenting such packets in SW already, so it ends up segmenting 65k packets to ~63K + ~1K to honor the IPA 64K packet size limitation. CRs-Fixed: 3816885 Change-Id: If7c959f1106a8e744e28510d93b35c8790ac897c Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Šī revīzija ir iekļauta:
@@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
@@ -748,7 +748,7 @@ int rmnet_vnd_newlink(u8 id, struct net_device *rmnet_dev,
|
||||
|
||||
priv->real_dev = real_dev;
|
||||
|
||||
rmnet_dev->gso_max_size = 64000;
|
||||
rmnet_dev->gso_max_size = 65535;
|
||||
|
||||
rc = register_netdevice(rmnet_dev);
|
||||
if (!rc) {
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user