rmnet_core: LL receive packet steering

Steer packets from LLC to different CPU cores for rmnet processing
by assigning a different RX queue. Also bypass rmnet_offload and
rmnet_shs for LL packets.

Change-Id: I459dabe8dd02132614f0e2cf461c89274f18223c
Acked-by: Weiyi Chen <weiyic@qti.qualcomm.com>
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
This commit is contained in:
Subash Abhinov Kasiviswanathan
2021-05-06 12:41:30 -07:00
부모 0a575cfcbf
커밋 af7b029c04
3개의 변경된 파일16개의 추가작업 그리고 1개의 파일을 삭제

파일 보기

@@ -297,6 +297,9 @@ rmnet_map_ingress_handler(struct sk_buff *skb,
return;
}
if (skb->priority == 0xda1a)
goto no_perf;
/* Pass off handling to rmnet_perf module, if present */
rcu_read_lock();
rmnet_perf_core_deaggregate = rcu_dereference(rmnet_perf_deag_entry);
@@ -307,6 +310,7 @@ rmnet_map_ingress_handler(struct sk_buff *skb,
}
rcu_read_unlock();
no_perf:
/* Deaggregation and freeing of HW originating
* buffers is done within here
*/
@@ -445,7 +449,8 @@ rx_handler_result_t rmnet_rx_handler(struct sk_buff **pskb)
rcu_read_lock();
rmnet_core_shs_switch = rcu_dereference(rmnet_shs_switch);
if (rmnet_core_shs_switch && !skb->cb[1]) {
if (rmnet_core_shs_switch && !skb->cb[1] &&
skb->priority != 0xda1a) {
skb->cb[1] = 1;
rmnet_core_shs_switch(skb, &port->phy_shs_cfg);
rcu_read_unlock();