Change dev_kfree_skb_any calls to dev_consume_skb_any calls in
order for stats to get incremented.
CRs-Fixed: 3649657
Change-Id: I70a2f007fb984b45dfd353bcd56d8e8f460eaa13
Signed-off-by: Raul Martinez <quic_mraul@quicinc.com>
Apparently, 4-6 XLAT scenarios can insert an empty fragment header into the
IPv6 header chain to indicate that fragmentation is supported in the host
IPv4 network. This header contains 0 for both the fragment_offset and MF
fields, so simply checking the value of frag_off passed to the
rmnet_frag_ipv6_skip_exthdr() function is not sufficient to properly catch
this rogue header. Instead, we need to implement a "less clever" version.
kernel oops at net/core/skbuff.c:4217!
Call trace:
skb_segment+0xcf0/0xd2c
__udp_gso_segment+0xa4/0x544
udp6_ufo_fragment+0x2dc/0x344
ipv6_gso_segment+0x170/0x350
skb_mac_gso_segment+0xd4/0x1b0
__skb_gso_segment+0xcc/0x12c
udp_rcv_segment.76914+0x54/0x16c
udpv6_queue_rcv_skb+0x78/0x148
__udp6_lib_rcv+0x38c/0x4cc
udpv6_rcv+0x20/0x30
ip6_protocol_deliver_rcu+0x3c0/0x63c
ip6_input+0x60/0x184
ip6_rcv_finish+0x84/0x150
ipv6_rcv+0x5c/0x14c
__netif_receive_skb+0x80/0x184
CRs-Fixed: 3358773
Change-Id: Ica2779b1da17bc46d397b42283369f3750edbf82
Signed-off-by: Sean Tranchetti <quic_stranche@quicinc.com>
For wearables target, compilation happens along with PDK.
Due to compilation with PDK, tree structure changes to compile kernel
modules.
$BOARD_COMMON_DIR allows to use top-level-makefile specified value,
else it defaults to device/qcom/common for other targets.
Change-Id: I8a32f655175933cc2abe95779284097f3bcb53cc
Signed-off-by: Kaustubh Pandey <quic_kapandey@quicinc.com>
Add kernel version based invocation of dev_core_stats_rx_nohandler_inc
since older kernels do not have this API implemented. So for older kernels,
we will use legacy API.
Change-Id: Idfcc4891dd199121b5f765cdaa0b23712c9b9a2e
Signed-off-by: Anagh G <quic_anaghg@quicinc.com>
BoardConfig.mk is not being processed by the build system in certain
configurations. Add a duplicate check in the module specific makefile
for module enablement.
CRs-Fixed: 3593384
Change-Id: Ib87a3ea4313d42cdc5c05c3c5e896ceb3f3a01af
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Add support for Blair target in Bazel build system
Change-Id: I176499df32dcadbab02399a15d0eb314ac4c5047
Signed-off-by: Kaustubh Pandey <quic_kapandey@quicinc.com>
Incorporate rmnet_mem dlkm dependency into rmnet_core
page allocation static pool for UL agg.
Creates a new compile time and runtime dependency on rmnet_mem.ko.
CRs-Fixed: 3566750
Change-Id: Id4a7d5cd2a187877e6e2c73098ac4b20f73f8c5b
Signed-off-by: Raul Martinez <quic_mraul@quicinc.com>
Added support for blair target in rmnet driver.
Change-Id: I1a4155e9455246a8fcc2857813b492ddd2893911
Signed-off-by: Kaustubh Pandey<quic_kapandey@quicinc.com>
Embed Pending Byte sequence number into
the rmnet_port to be used by rmnet_shs
and shsusrd.
Change-Id: Ied7828759934271f52b2a7e4626a7507b8978740
Signed-off-by: Conner Huff <quic_chuff@quicinc.com>
Add the required makefiles and configurations to support the
bazel build system.
CRs-Fixed: 3524428
Change-Id: Ibe750321cc30a50b220fb2f71c71939ba6a74a60
Signed-off-by: Abhinay Reddy Vanipally <quic_abhinayr@quicinc.com>
Dl ind callback list can potentially not be initialized
if malloc fails in any of the functions above it however system
would have a registered real dev that clients can reregister
from causing a null dereference on unregister notification.
Fix is to move dl ind LIST_HEAD init and other port init above netdev
registration.
CRs-Fixed: 3534607
Change-Id: I5ab0dbc1d2476d299a8c520421aa8c4a83115c20
Signed-off-by: Raul Martinez <quic_mraul@quicinc.com>
Add a new hook so that modules can utilize the rx_handler.
Change-Id: I7b29f2e212280703d0e9d16282d63c91abceacaf
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
When a pending byte marker is received,
rmnet_core will place a vote to raise
clocks for a predefined period of time.
After that period of time rmnet_core
removes that vote.
Change-Id: I53b434664a518b686d59ffa5ba4c08eee067abde
Signed-off-by: Conner Huff <quic_chuff@quicinc.com>
The existing logic will update the priority of the head and the
first frag_list skbs leading to the other skbs being processes
with standard priority instead of the low latency.
CRs-Fixed: 3455954
Change-Id: Idbf29496fc76213ca91b6751ed7696bf2dddd226
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Since most usecases now exercise transmit offloads, reduce the amount
of pages needed for the transmit path.
CRs-Fixed: 3335137
Change-Id: I9e63fa2c062a17bb284ef9874178d10ed0382ffe
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
eth_hw_addr_random doesn't seem to be generating truly random IIDs.
Use eth_random_addr instead as it is explicitly assigning random
IIDs to the device permanent address.
Before this change-
16: rmnet_data0@rmnet_ipa0: <UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN group default qlen 1000
inet6 fe80::200:ff:fe00:0/64 scope link
17: rmnet_data1@rmnet_ipa0: <UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN group default qlen 1000
inet6 fe80::200:ff:fe00:0/64 scope link
After this change-
16: rmnet_data0@rmnet_ipa0: <UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN group default qlen 1000
inet6 fe80::d8f9:85ff:fee4:4444/64 scope link
17: rmnet_data1@rmnet_ipa0: <UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN group default qlen 1000
inet6 fe80::1856:3aff:fe22:e519/64 scope link
CRs-Fixed: 3361274
Change-Id: I79d37725c332a289682ac26e751bc97dc7ce1ebb
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Enable rmnet core and ctl drivers and update the kernel APIs to match
the appropriate kernel.
This change also adds support for the inclusion of the IPA kernel
headers from a non-core kernel location. This is achieved using the
flag KBUILD_REQUIRED_KOS.
Additionally, remove all deprecated code.
CRs-Fixed: 3311558
Change-Id: I9317f53ca8b1a370b6a5eb86734057399aee1d48
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Add support to compile datarmnet for Khaje/Bengal target.
Khaje is upgraded to latest APSS and bengal is used as board platform.
Change-Id: Ib0abfd64d13410913ea87b81a5d83406ea67e088
Signed-off-by: Kaustubh Pandey <quic_kapandey@quicinc.com>
Previously the 1st traffic session would not notify shs of PS off
state leading to shs wq not starting up.
On subsequent sessions notification would be sent so state would be
corrected and this issue would go unnoticed.
This change should notify shs of power save state correctly for the
first data session.
CRs-Fixed: 3291630
Change-Id: I7cf9458f999adb1aa3c645ade29bb8c970aa495e
Signed-off-by: Raul Martinez <quic_mraul@quicinc.com>
Add a specific trace path for arch uml.
This change assumes that the kernel and datarmnet source at the same
parent folder when compiling for UML.
Additionally, compilation is skipped for ipa and related low latency
modules for UML.
CRs-Fixed: 3237924
Change-Id: I6151578373b3822cade3fb7fd306390e99f617c4
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Add a hook into shs for LL traffic to go into.
CRs-Fixed: 3229047
Change-Id: I4b81c82f77d3aaf685e6c50106cd6e28d7c94753
Signed-off-by: Raul Martinez <quic_mraul@quicinc.com>
This function was otherwise exceeding the stack size limit as
notified during compile time-
ld.lld: warning: stack frame size (2112) exceeds limit (2048) in
function 'rmnet_descriptor_trace_pfn'
CRs-Fixed: 3221860
Change-Id: I162101b70a4a3d8bfa28fd73ca65a17e3bb6f0ca
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Add support for the new mapv5 command format which has to be
used for commands on default channel on uplink. mapv1 commands need
to be sent on the command channel only on uplink.
Additionally, update the dfc trace print format.
CRs-Fixed: 3214110
Change-Id: Ifed7d90d79b6f17d4104a26907667801f04040ce
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Compile DLKMs only if the system wide flag is true or if the project
specific flag is enabled.
CRs-Fixed: 3208334
Change-Id: I552d67a1cb42f4c8ce392d76c865f6f70b98bec2
Signed-off-by: Subash Abhinov Kasiviswanathan <quic_subashab@quicinc.com>
Adds a simple, tracepoint inspired hook definiton framework to centralize
all calls to rmnet support modules. Modules can set and unset these hooks
freely, and modules may call one another's hooks without being forced to
link against any module other than the core rmnet module.
Change-Id: I949f7a17c95003e0c79262c6611b0602c7189e0c
Signed-off-by: Sean Tranchetti <quic_stranche@quicinc.com>