Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp363334pxj; Thu, 27 May 2021 01:54:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx4snNubXvJdeYpMUpYvcObTDlzzRO8f2gAsO/RPSJummszBhO9HDfrF7HIEjy25BFFCIqX X-Received: by 2002:a17:906:3b10:: with SMTP id g16mr2777430ejf.232.1622105640109; Thu, 27 May 2021 01:54:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622105640; cv=none; d=google.com; s=arc-20160816; b=BwNEyclly30OeRnapHcigKIwa4OQusC5JLN5QDb1t/OoQSerQIlKKWmwrHtHzk3feX 3GFnbwa5B0dcmzX+IjZ4mb//SdiPwajDp71295llH/iprz3xZlVAMiidgiSZYElIg3ZQ oMmPIomLFBcJobmZxRVYOGEhC9yJtFyq8wnHiaObn29Zgdsk7GtvbtmF0DnHYKT3+PNw GBwkUFlCdmpJchfbBjH3kmpGGLTtg/qFkWGLlE6bVNUA1uP9zM7fJmL0oRWr3m/34Q0r b2B3cSPy4GyobKOOpWpvf31J7fiiAcMJ14AHTSYgdWNqzLJsXqJ0qqLX4Z2+LxNT1Ktx kV9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dmarc-filter:sender:dkim-signature; bh=P3GpVn3JVfMxDzrwZHRnbaDau1jXLxyfxJ/Pq0LMuzc=; b=eWxfkn0uLiFWsXEtvkwAfVb8EUwCKfcBncZf98bJlNPZzZ17llqeOhgLkW0fs7edaS 52beSaJQsCTaMZqAsr1I7H3nIumkNxZykgdPrit1cL/odOjODTdgOv1wytB84ueCn+9C YLkWU1r0Wo4tNGUnBcQQB1yMoa/0jbkD1JIWmvVaNyozSIRq2q5JZTosuIRsgXtVIF5S 4JI5C+Hhex0jjlRK3zP/aac8CqSriXr+mEUBUSL6rEwCavqBP5yBZ8oEDfazycAC+cgn 7KPcXBpl5zy5kW5ZbXaCDGmTfaiLLYIp92EIn28mdT28mF/aL16HFoQm6rAzOV3XPtY+ LRug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=UJfThksh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f6si1611131ejk.677.2021.05.27.01.53.36; Thu, 27 May 2021 01:54:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=UJfThksh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235725AbhE0IvY (ORCPT + 99 others); Thu, 27 May 2021 04:51:24 -0400 Received: from so254-9.mailgun.net ([198.61.254.9]:49338 "EHLO so254-9.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235742AbhE0Iux (ORCPT ); Thu, 27 May 2021 04:50:53 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1622105360; h=References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=P3GpVn3JVfMxDzrwZHRnbaDau1jXLxyfxJ/Pq0LMuzc=; b=UJfThkshs9RyvT7QQdPoPuNJLfCcTjkuPxCuXJ8Zup+QuIHvTMRYozCxFRtUOV7JapPnWOgh XIxyXCp+l6L2TbuxHVeV4I2dykRH01mf2tEqOvhku3slD6Q48I9VN1qAZCXO+eh35vh8MNip S1khvjKJ3C+j7a280pI0uzYc2ak= X-Mailgun-Sending-Ip: 198.61.254.9 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n06.prod.us-east-1.postgun.com with SMTP id 60af5cfcd1aee7698d2277b2 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Thu, 27 May 2021 08:49:00 GMT Sender: sharathv=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 5C813C43460; Thu, 27 May 2021 08:48:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from svurukal-linux.qualcomm.com (unknown [202.46.22.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: sharathv) by smtp.codeaurora.org (Postfix) with ESMTPSA id 98CC2C4338A; Thu, 27 May 2021 08:48:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 98CC2C4338A Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=sharathv@codeaurora.org From: Sharath Chandra Vurukala To: davem@davemloft.net, kuba@kernel.org, elder@kernel.org, cpratapa@codeaurora.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Sharath Chandra Vurukala Subject: [PATCH net-next v7 1/3] docs: networking: Add documentation for MAPv5 Date: Thu, 27 May 2021 14:18:40 +0530 Message-Id: <1622105322-2975-2-git-send-email-sharathv@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1622105322-2975-1-git-send-email-sharathv@codeaurora.org> References: <1622105322-2975-1-git-send-email-sharathv@codeaurora.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Adding documentation explaining the new MAPv4/v5 packet formats and the corresponding checksum offload headers. Signed-off-by: Sharath Chandra Vurukala --- .../device_drivers/cellular/qualcomm/rmnet.rst | 126 +++++++++++++++++++-- 1 file changed, 114 insertions(+), 12 deletions(-) diff --git a/Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst b/Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst index 70643b5..4118384 100644 --- a/Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst +++ b/Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst @@ -27,34 +27,136 @@ these MAP frames and send them to appropriate PDN's. 2. Packet format ================ -a. MAP packet (data / control) +a. MAP packet v1 (data / control) -MAP header has the same endianness of the IP packet. +MAP header fields are in big endian format. Packet format:: - Bit 0 1 2-7 8 - 15 16 - 31 + Bit 0 1 2-7 8-15 16-31 Function Command / Data Reserved Pad Multiplexer ID Payload length - Bit 32 - x - Function Raw Bytes + + Bit 32-x + Function Raw bytes Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command -or data packet. Control packet is used for transport level flow control. Data +or data packet. Command packet is used for transport level flow control. Data packets are standard IP packets. -Reserved bits are usually zeroed out and to be ignored by receiver. +Reserved bits must be zero when sent and ignored when received. -Padding is number of bytes to be added for 4 byte alignment if required by -hardware. +Padding is the number of bytes to be appended to the payload to +ensure 4 byte alignment. Multiplexer ID is to indicate the PDN on which data has to be sent. Payload length includes the padding length but does not include MAP header length. -b. MAP packet (command specific):: +b. Map packet v4 (data / control) + +MAP header fields are in big endian format. + +Packet format:: + + Bit 0 1 2-7 8-15 16-31 + Function Command / Data Reserved Pad Multiplexer ID Payload length + + Bit 32-(x-33) (x-32)-x + Function Raw bytes Checksum offload header + +Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command +or data packet. Command packet is used for transport level flow control. Data +packets are standard IP packets. + +Reserved bits must be zero when sent and ignored when received. + +Padding is the number of bytes to be appended to the payload to +ensure 4 byte alignment. + +Multiplexer ID is to indicate the PDN on which data has to be sent. + +Payload length includes the padding length but does not include MAP header +length. + +Checksum offload header, has the information about the checksum processing done +by the hardware.Checksum offload header fields are in big endian format. + +Packet format:: + + Bit 0-14 15 16-31 + Function Reserved Valid Checksum start offset + + Bit 31-47 48-64 + Function Checksum length Checksum value + +Reserved bits must be zero when sent and ignored when received. + +Valid bit indicates whether the partial checksum is calculated and is valid. +Set to 1, if its is valid. Set to 0 otherwise. + +Padding is the number of bytes to be appended to the payload to +ensure 4 byte alignment. + +Checksum start offset, Indicates the offset in bytes from the beginning of the +IP header, from which modem computed checksum. + +Checksum length is the Length in bytes starting from CKSUM_START_OFFSET, +over which checksum is computed. + +Checksum value, indicates the checksum computed. + +c. MAP packet v5 (data / control) + +MAP header fields are in big endian format. + +Packet format:: + + Bit 0 1 2-7 8-15 16-31 + Function Command / Data Next header Pad Multiplexer ID Payload length + + Bit 32-x + Function Raw bytes + +Command (1)/ Data (0) bit value is to indicate if the packet is a MAP command +or data packet. Command packet is used for transport level flow control. Data +packets are standard IP packets. + +Next header is used to indicate the presence of another header, currently is +limited to checksum header. + +Padding is the number of bytes to be appended to the payload to +ensure 4 byte alignment. + +Multiplexer ID is to indicate the PDN on which data has to be sent. + +Payload length includes the padding length but does not include MAP header +length. + +d. Checksum offload header v5 + +Checksum offload header fields are in big endian format. + + Bit 0 - 6 7 8-15 16-31 + Function Header Type Next Header Checksum Valid Reserved + +Header Type is to indicate the type of header, this usually is set to CHECKSUM + +Header types += ========================================== +0 Reserved +1 Reserved +2 checksum header + +Checksum Valid is to indicate whether the header checksum is valid. Value of 1 +implies that checksum is calculated on this packet and is valid, value of 0 +indicates that the calculated packet checksum is invalid. + +Reserved bits must be zero when sent and ignored when received. + +e. MAP packet v1/v5 (command specific):: - Bit 0 1 2-7 8 - 15 16 - 31 + Bit 0 1 2-7 8 - 15 16 - 31 Function Command Reserved Pad Multiplexer ID Payload length Bit 32 - 39 40 - 45 46 - 47 48 - 63 Function Command name Reserved Command Type Reserved @@ -74,7 +176,7 @@ Command types 3 is for error during processing of commands = ========================================== -c. Aggregation +f. Aggregation Aggregation is multiple MAP packets (can be data or command) delivered to rmnet in a single linear skb. rmnet will process the individual -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project