瀏覽代碼

rmnet_core: Discard DL markers received over LL channel

DL markers received over this channel need to be silently dropped, as
processing them will interfere with the standard DL marker processing on
the default channel.

Change-Id: Id6b36c3f877bf15768e3ac0a5ea8803656375a2b
Signed-off-by: Sean Tranchetti <[email protected]>
Sean Tranchetti 4 年之前
父節點
當前提交
9e18715d96
共有 2 個文件被更改,包括 16 次插入0 次删除
  1. 6 0
      core/rmnet_descriptor.c
  2. 10 0
      core/rmnet_map_command.c

+ 6 - 0
core/rmnet_descriptor.c

@@ -545,6 +545,12 @@ int rmnet_frag_flow_command(struct rmnet_frag_descriptor *frag_desc,
 	if (!cmd)
 		return -1;
 
+	/* Silently discard any marksers recived over the LL channel */
+	if (frag_desc->priority == 0xda1a &&
+	    (cmd->command_name == RMNET_MAP_COMMAND_FLOW_START ||
+	     cmd->command_name == RMNET_MAP_COMMAND_FLOW_END))
+		return 0;
+
 	switch (cmd->command_name) {
 	case RMNET_MAP_COMMAND_FLOW_START:
 		rmnet_frag_process_flow_start(frag_desc, cmd, port, pkt_len);

+ 10 - 0
core/rmnet_map_command.c

@@ -243,6 +243,16 @@ int rmnet_map_flow_command(struct sk_buff *skb, struct rmnet_port *port,
 	cmd = rmnet_map_get_cmd_start(skb);
 	command_name = cmd->command_name;
 
+	/* Silently discard any markers on the LL channel */
+	if (skb->priority == 0xda1a &&
+	    (command_name == RMNET_MAP_COMMAND_FLOW_START ||
+	     command_name == RMNET_MAP_COMMAND_FLOW_END)) {
+		if (!rmnet_perf)
+			consume_skb(skb);
+
+		return 0;
+	}
+
 	switch (command_name) {
 	case RMNET_MAP_COMMAND_FLOW_START:
 		rmnet_map_process_flow_start(skb, port, rmnet_perf);