Grafico dei commit

15 Commit

Autore SHA1 Messaggio Data
Weiyi Chen
7e90328aee rmnet_core: APS hooks
Add APS pre-queue and post-queue hooks.

Change-Id: I22be34c2a6bad4119e74ab8146d80eb6439fc585
Signed-off-by: Weiyi Chen <quic_weiyic@quicinc.com>
2022-04-22 15:51:36 -07:00
Subash Abhinov Kasiviswanathan
ecd7f76efc core: Update rmnet stats
Add support for additional VEIDs.

CRs-Fixed: 3160476
Change-Id: I9fbd2fb3a31b34ef393f0f318fabe47d9dda4b51
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
2022-03-28 00:29:47 -06:00
Weiyi Chen
5eb9a7affc rmnet_core: packets prioritization
Low latency treatment of UL packets based on priority.

Change-Id: Id7a7d990f05923aacb50901c0e09194155a3edf2
Signed-off-by: Weiyi Chen <quic_weiyic@quicinc.com>
2022-01-17 23:31:04 -07:00
Subash Abhinov Kasiviswanathan
2bb9cb1f3c core: Add a stat to track chaining frags
Keep count of single fragments and other fragment counts in increments
of 6 upto the maximum possible 16.

CRs-Fixed: 2992022
Change-Id: I1b1c474e51cf1fe8856d53511ae7c374caa0b4a2
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2021-07-18 12:25:22 -06:00
Subash Abhinov Kasiviswanathan
3bbb9ff4ae core: Add stat to track chaining
Keep a count in increments of 10 upto 60 and a count for greater
than 60.

CRs-Fixed: 2984565
Change-Id: I20d81e03b1a592e3e69c6e83d1a827ae0c72f6b9
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2021-07-05 20:44:14 -06:00
Subash Abhinov Kasiviswanathan
eedd0b9c6d core: Segment tso packets based on physical device limitations
UDP GSO packets from network stack currently do not honor the
gso_max_size limits set in a driver. As a result, there needs
to be some enforcement done at the driver itself prior to the
transmit to hardware.

Instead of setting the gso_max_size on the rmnet devices, the
gso_max_size is instead set on the physical device. This
ensures that the network stack processing happens with the
maximum gso size possible for the TCP case.

CRs-Fixed: 2981039
Change-Id: I5280ea79f868e2b933f2604f8a33fbf33687f76c
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2021-07-01 16:41:06 -06:00
Sean Tranchetti
42e9497010 rmnet_core: segment ULSO skbs on LL channel
ULSO is not supported on the LL endpoint. If such skbs are received by the
rmnet driver, they must be segmented in software before transmitting them.

Change-Id: I0103d06c6bfa8eb96cfbde85f68b1b45034a93e5
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
2021-05-14 10:31:04 -07:00
Sean Tranchetti
5860a49e62 rmnet_core: Allow different UL aggregation params per state
Allows the use of different uplink aggregation parameters for the
default and low-latency uplink aggregation states. To faciliate this,
both contexts now have their own page recycling elements instead of a
single port-wide list, as well as their own instance of the
rmnet_egress_agg_params struct.

To configure these paramters, a new netlink attribute has been created
for specifying which aggregation state the given IFLA_RMNET_UL_AGG_PARAMS
attribute should apply to. For compatibility with user space, the default
state will be chosen if this element is not provided.

Change-Id: Ia340bbb479d9427658a153a2019f4891da0b741c
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
2021-05-14 10:30:48 -07:00
Sean Tranchetti
b38dff7d79 rmnet_core: Add Low Latency framework
Packets are now sent over a dedicated MHI channel when indicated by the
DFC driver.

New dedicated channel is controlled by rmnet driver. Buffers are allocated
and supplied to it as needed from a recyclable pool for RX on the channel,
and packets will be sent to it and freed manually once the channel
indicates that they have been sent.

Low latency packets can be aggregated like standard QMAP packets, but have
their own aggregation state to prevent mixing default and low latency
flows, and to allow each type of flow to use their own send functions
(i.e. dev_queue_xmit() versus rmnet_ll_send_skb()).

Low latency packets also have their own load-balancing scheme, and do not
need to use the SHS module for balancing. To facilitate this, we mark the
low latency packets with a non-zero priority value upon receipt from the
MHI chainnel and avoid sending any such marked packets to the SHS ingress
hook.

DFC has been updated with a new netlink message type to handle swapping a
list of bearers from one channel to another. The actual swap is performed
asynchronously, and separate netlink ACKs will be sent to the userspace
socket when the switch has been completed.

Change-Id: I93861d4b004f399ba203d76a71b2f01fa5c0d5d2
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
2021-05-12 17:02:51 -07:00
Subash Abhinov Kasiviswanathan
dad91a4eff rmnet_core: Add support for TSO
This adds support for the new transmit offload header as well as
the handling needed for it in the core driver.

CRs-Fixed: 2810638
Change-Id: I8ce2e0772209faf3d585e7d9d8d56eceb695d586
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2021-03-07 12:55:54 -07:00
Conner Huff
4fe7a4add4 datarmnet: Fastforward core from data-kernel.lnx.1.1 to data-kernel.lnx.1.2
Catches up to commit b4d76675a6feeb57f7188d5354e1cf82b7adb012.

Change-Id: Ib1f00be9799712bd4ab0381cde648287f98a61a1
Signed-off-by: Conner Huff <chuff@codeaurora.org>
2021-02-01 18:46:12 -08:00
Conner Huff
5c8f59b9b2 rmnet_core: featurize ftraces
For compilation on LE targets

Change-Id: I661600cfaee256b5ff37da93b5bd7638d3039f42
Signed-off-by: Conner Huff <chuff@codeaurora.org>
2020-09-01 00:05:34 -06:00
Sean Tranchetti
1ea6d3f011 net: ethernet: qualcomm: rmnet: Track RSB/RSC byte counts
Allows calculation of the average buffer utilization for RSB/RSC packets.

Change-Id: Id719b97ceffc62b1b9ce28bfab8ec32c6604529c
Acked-by: Conner Huff <chuff@codeaurora.org>
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
2020-02-26 18:22:34 -08:00
Sean Tranchetti
eeb4944964 core: rmnet: Fastforward to 4.19 tip
This brings the RmNet and DFC modules up to date with the 4.19 tip as of
commit 9b38611ea527 ("rmnet: Reduce synchronize_rcu calls").

As part of this, the rmnet_ctl driver was also incorporated, using commit
4ceee3aafb7d ("rmnet_ctl: Add IPC logging and optimizations")

Change-Id: Ic45d46074c7401dfed408c769cfb6462dac0d4ee
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
2020-01-23 13:31:14 -07:00
Subash Abhinov Kasiviswanathan
08d4972b2a core: Rmnet initial commit
Inital commit of rmnet_core net device driver in dlkm form
in datarmnet. This requires rmnet to be disabled in the
kernel and for it to be loaded before dependent modules.

CRs-Fixed: 2558810
Change-Id: I742e85033fa0999bf9069d43ce73ab9a622a8388
Acked-by: Raul Martinez <mraul@qti.qualcomm.com>
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2019-12-10 15:22:43 -07:00