Patchwork [2/2] caif: performance bugfix - allow radio stack to prioritize packets.

login
register
mail settings
Submitter sjur.brandeland@stericsson.com
Date April 11, 2011, 8:11 p.m.
Message ID <1302552691-11874-3-git-send-email-sjur.brandeland@stericsson.com>
Download mbox | patch
Permalink /patch/90645/
State Accepted
Delegated to: David Miller
Headers show

Comments

sjur.brandeland@stericsson.com - April 11, 2011, 8:11 p.m.
From: Sjur Brændeland <sjur.brandeland@stericsson.com>

    In the CAIF Payload message the Packet Type indication must be set to
    UNCLASSIFIED in order to allow packet prioritization in the modem's
    network stack. Otherwise TCP-Ack is not prioritized in the modems
    transmit queue.

Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com>
---
 net/caif/cfdgml.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
David Miller - April 11, 2011, 8:17 p.m.
From: sjur.brandeland@stericsson.com
Date: Mon, 11 Apr 2011 22:11:30 +0200

> From: Sjur Brændeland <sjur.brandeland@stericsson.com>
> 
>     In the CAIF Payload message the Packet Type indication must be set to
>     UNCLASSIFIED in order to allow packet prioritization in the modem's
>     network stack. Otherwise TCP-Ack is not prioritized in the modems
>     transmit queue.
> 
> Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/caif/cfdgml.c b/net/caif/cfdgml.c
index a4ce294..0382dec 100644
--- a/net/caif/cfdgml.c
+++ b/net/caif/cfdgml.c
@@ -13,6 +13,7 @@ 
 #include <net/caif/cfsrvl.h>
 #include <net/caif/cfpkt.h>
 
+
 #define container_obj(layr) ((struct cfsrvl *) layr)
 
 #define DGM_CMD_BIT  0x80
@@ -83,6 +84,7 @@  static int cfdgml_receive(struct cflayer *layr, struct cfpkt *pkt)
 
 static int cfdgml_transmit(struct cflayer *layr, struct cfpkt *pkt)
 {
+	u8 packet_type;
 	u32 zero = 0;
 	struct caif_payload_info *info;
 	struct cfsrvl *service = container_obj(layr);
@@ -94,7 +96,9 @@  static int cfdgml_transmit(struct cflayer *layr, struct cfpkt *pkt)
 	if (cfpkt_getlen(pkt) > DGM_MTU)
 		return -EMSGSIZE;
 
-	cfpkt_add_head(pkt, &zero, 4);
+	cfpkt_add_head(pkt, &zero, 3);
+	packet_type = 0x08; /* B9 set - UNCLASSIFIED */
+	cfpkt_add_head(pkt, &packet_type, 1);
 
 	/* Add info for MUX-layer to route the packet out. */
 	info = cfpkt_info(pkt);