From patchwork Tue Dec 12 00:30:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 847295 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="JYqRjAxk"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="Xs98GvtI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywgj55Hmxz9sBd for ; Tue, 12 Dec 2017 11:30:49 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752307AbdLLAar (ORCPT ); Mon, 11 Dec 2017 19:30:47 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:34992 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752262AbdLLAap (ORCPT ); Mon, 11 Dec 2017 19:30:45 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 4A2B760A00; Tue, 12 Dec 2017 00:30:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038645; bh=Rj6EFaeAVKxrEdJ3jNaLx6J7zbkGHaYUxD9w34bRPlQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JYqRjAxkUx3zws84UNNkTsqPsQ19/H1l5m8NcCCRLGCeV6wMq7VgNAqI16K/etj1Q kq2ZuVBmHipm++a+3crzy0XDHDeWcSq/4XSf9tncR0A5w2kK3ToxRTGDTh0aNwUM4E 7sF4H5lX2Aa1UHbfGFQBc311A1wdVYfDRgfxyJG4= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 643EA6055B; Tue, 12 Dec 2017 00:30:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038644; bh=Rj6EFaeAVKxrEdJ3jNaLx6J7zbkGHaYUxD9w34bRPlQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xs98GvtIYpBSdMIFUY/Ow5WT6YOJby0wwlk0Zj5OgMRebaT/DjSrKZFKSmLh+VF1e ZFsOzfPiG7JOeJ3LeXz5gXYc2dCHynWHyK5kXE1BZn+HtWwU6Th3UvhsjDK0wbiiwl xIfRCm/rB+5RMBglmvvLxhLACqqLgwhVUkfXSOQU= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 643EA6055B Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net-next v3 1/6] net: qualcomm: rmnet: Remove the rmnet_map_results enum Date: Mon, 11 Dec 2017 17:30:10 -0700 Message-Id: <1513038615-16407-2-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> References: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Only the success and consumed entries were actually in use. Use standard error codes instead. Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 15 +++------------ drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h | 9 --------- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index 08e4afc..1e1ea10 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -142,11 +142,11 @@ static int rmnet_map_egress_handler(struct sk_buff *skb, skb->protocol = htons(ETH_P_MAP); - return RMNET_MAP_SUCCESS; + return 0; fail: kfree_skb(skb); - return RMNET_MAP_CONSUMED; + return -ENOMEM; } static void @@ -213,17 +213,8 @@ void rmnet_egress_handler(struct sk_buff *skb) } if (port->egress_data_format & RMNET_EGRESS_FORMAT_MAP) { - switch (rmnet_map_egress_handler(skb, port, mux_id, orig_dev)) { - case RMNET_MAP_CONSUMED: + if (rmnet_map_egress_handler(skb, port, mux_id, orig_dev)) return; - - case RMNET_MAP_SUCCESS: - break; - - default: - kfree_skb(skb); - return; - } } rmnet_vnd_tx_fixup(skb, orig_dev); diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h b/drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h index 3af3fe7..4df359d 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h @@ -30,15 +30,6 @@ struct rmnet_map_control_command { }; } __aligned(1); -enum rmnet_map_results { - RMNET_MAP_SUCCESS, - RMNET_MAP_CONSUMED, - RMNET_MAP_GENERAL_FAILURE, - RMNET_MAP_NOT_ENABLED, - RMNET_MAP_FAILED_AGGREGATION, - RMNET_MAP_FAILED_MUX -}; - enum rmnet_map_commands { RMNET_MAP_COMMAND_NONE, RMNET_MAP_COMMAND_FLOW_DISABLE, From patchwork Tue Dec 12 00:30:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 847300 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="KlWCk3vP"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="FooYk4p6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywgjW4JNKz9sBd for ; Tue, 12 Dec 2017 11:31:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752471AbdLLAbJ (ORCPT ); Mon, 11 Dec 2017 19:31:09 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:35040 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752279AbdLLAaq (ORCPT ); Mon, 11 Dec 2017 19:30:46 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 777DF60A08; Tue, 12 Dec 2017 00:30:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038646; bh=9WOZTkuQICAqI2wsXLgqemqc5zO8AmfIfKWZvi/zU8w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KlWCk3vPyGGCi3/5U7pZcxoYWXUwyvVCJI1qRBrgHkcO28wdo06YMeT63JO4pCZap sdrtnKTgwe5M8vl/igN8w1zW3C5zJLnifYGxfvobxxrwYgh2oJUZbOaNqjojY3QytI pL/SMSAbqATxvr2LxqTqq/XKucahx92u4RE1bF8o= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 93E1760590; Tue, 12 Dec 2017 00:30:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038645; bh=9WOZTkuQICAqI2wsXLgqemqc5zO8AmfIfKWZvi/zU8w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FooYk4p6rnNubCLstU+kXlBm9RG5Alzumxk8b7DdhuUuZl4t4oW9P0P/5okGwf8Ew t6E8VlJqJBBCEx1mHjtOjkvAnHPDa/wqPGR+gPxPtv8ORFiQ2aWL8POTWlBzhlp4TC iQ6eARZ9xtcQ0/MitzceH+Iq+h2beEPZwkTvi3vs= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 93E1760590 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net-next v3 2/6] net: qualcomm: rmnet: Remove the some redundant macros Date: Mon, 11 Dec 2017 17:30:11 -0700 Message-Id: <1513038615-16407-3-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> References: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Multiplexing is always enabled when transmiting from a rmnet device, so remove the redundant egress macros. De-multiplexing is always enabled when receiving packets from a rmnet device, so remove those ingress macros. Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c | 10 ++-------- drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h | 1 - drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 19 +++++++------------ drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h | 10 ++-------- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c index df21e90..46bb228 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c @@ -143,11 +143,7 @@ static int rmnet_newlink(struct net *src_net, struct net_device *dev, struct nlattr *tb[], struct nlattr *data[], struct netlink_ext_ack *extack) { - int ingress_format = RMNET_INGRESS_FORMAT_DEMUXING | - RMNET_INGRESS_FORMAT_DEAGGREGATION | - RMNET_INGRESS_FORMAT_MAP; - int egress_format = RMNET_EGRESS_FORMAT_MUXING | - RMNET_EGRESS_FORMAT_MAP; + int ingress_format = RMNET_INGRESS_FORMAT_DEAGGREGATION; struct net_device *real_dev; int mode = RMNET_EPMODE_VND; struct rmnet_endpoint *ep; @@ -181,9 +177,7 @@ static int rmnet_newlink(struct net *src_net, struct net_device *dev, if (err) goto err2; - netdev_dbg(dev, "data format [ingress 0x%08X] [egress 0x%08X]\n", - ingress_format, egress_format); - port->egress_data_format = egress_format; + netdev_dbg(dev, "data format [ingress 0x%08X]\n", ingress_format); port->ingress_data_format = ingress_format; port->rmnet_mode = mode; diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h index c19259e..2ea9fe3 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h @@ -33,7 +33,6 @@ struct rmnet_endpoint { struct rmnet_port { struct net_device *dev; u32 ingress_data_format; - u32 egress_data_format; u8 nr_rmnet_devs; u8 rmnet_mode; struct hlist_head muxed_ep[RMNET_MAX_LOGICAL_EP]; diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index 1e1ea10..a46053c 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -133,12 +133,10 @@ static int rmnet_map_egress_handler(struct sk_buff *skb, if (!map_header) goto fail; - if (port->egress_data_format & RMNET_EGRESS_FORMAT_MUXING) { - if (mux_id == 0xff) - map_header->mux_id = 0; - else - map_header->mux_id = mux_id; - } + if (mux_id == 0xff) + map_header->mux_id = 0; + else + map_header->mux_id = mux_id; skb->protocol = htons(ETH_P_MAP); @@ -178,8 +176,7 @@ rx_handler_result_t rmnet_rx_handler(struct sk_buff **pskb) switch (port->rmnet_mode) { case RMNET_EPMODE_VND: - if (port->ingress_data_format & RMNET_INGRESS_FORMAT_MAP) - rmnet_map_ingress_handler(skb, port); + rmnet_map_ingress_handler(skb, port); break; case RMNET_EPMODE_BRIDGE: rmnet_bridge_handler(skb, port->bridge_ep); @@ -212,10 +209,8 @@ void rmnet_egress_handler(struct sk_buff *skb) return; } - if (port->egress_data_format & RMNET_EGRESS_FORMAT_MAP) { - if (rmnet_map_egress_handler(skb, port, mux_id, orig_dev)) - return; - } + if (rmnet_map_egress_handler(skb, port, mux_id, orig_dev)) + return; rmnet_vnd_tx_fixup(skb, orig_dev); diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h b/drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h index 49102f9..d214280 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h @@ -19,14 +19,8 @@ #define RMNET_TX_QUEUE_LEN 1000 /* Constants */ -#define RMNET_EGRESS_FORMAT_MAP BIT(1) -#define RMNET_EGRESS_FORMAT_AGGREGATION BIT(2) -#define RMNET_EGRESS_FORMAT_MUXING BIT(3) - -#define RMNET_INGRESS_FORMAT_MAP BIT(1) -#define RMNET_INGRESS_FORMAT_DEAGGREGATION BIT(2) -#define RMNET_INGRESS_FORMAT_DEMUXING BIT(3) -#define RMNET_INGRESS_FORMAT_MAP_COMMANDS BIT(4) +#define RMNET_INGRESS_FORMAT_DEAGGREGATION BIT(0) +#define RMNET_INGRESS_FORMAT_MAP_COMMANDS BIT(1) /* Replace skb->dev to a virtual rmnet device and pass up the stack */ #define RMNET_EPMODE_VND (1) From patchwork Tue Dec 12 00:30:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 847297 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="X6gNbZ2E"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="X6gNbZ2E"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywgjF4wCYz9sBd for ; Tue, 12 Dec 2017 11:30:57 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752256AbdLLAa4 (ORCPT ); Mon, 11 Dec 2017 19:30:56 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:35092 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752011AbdLLAar (ORCPT ); Mon, 11 Dec 2017 19:30:47 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 857C560A17; Tue, 12 Dec 2017 00:30:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038647; bh=XcXuxUcWW7HIGy4tvvCKVTLUkM1jFK6VgWCe0ZINd7I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X6gNbZ2EE6Ya8xTIWSBgOTU6Vfez0T83Ak0QEZPl04lzl0AEg1WZOgTiJMOqZvdYa 1ShRErq12PBgdd0fbSx9mou9KOQajOSdeUQg9MY3MGOJ2ofo7XGpIh8iHLyw+BgC0e sbfQs2pIGePFKHlJVC907FMMowLby/N5JxbrreqI= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id B3CBA6055B; Tue, 12 Dec 2017 00:30:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038647; bh=XcXuxUcWW7HIGy4tvvCKVTLUkM1jFK6VgWCe0ZINd7I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X6gNbZ2EE6Ya8xTIWSBgOTU6Vfez0T83Ak0QEZPl04lzl0AEg1WZOgTiJMOqZvdYa 1ShRErq12PBgdd0fbSx9mou9KOQajOSdeUQg9MY3MGOJ2ofo7XGpIh8iHLyw+BgC0e sbfQs2pIGePFKHlJVC907FMMowLby/N5JxbrreqI= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org B3CBA6055B Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net-next v3 3/6] net: qualcomm: rmnet: Allow only one rmnet dev per muxid per real dev Date: Mon, 11 Dec 2017 17:30:12 -0700 Message-Id: <1513038615-16407-4-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> References: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Upon de-multiplexing data from one real dev, the packets can be sent to an unique rmnet device for a given mux id. Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c index 9caa5e3..5bb29f4 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c @@ -185,6 +185,9 @@ int rmnet_vnd_newlink(u8 id, struct net_device *rmnet_dev, if (ep->egress_dev) return -EINVAL; + if (rmnet_get_endpoint(port, id)) + return -EBUSY; + rc = register_netdevice(rmnet_dev); if (!rc) { ep->egress_dev = rmnet_dev; From patchwork Tue Dec 12 00:30:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 847296 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="jEMVN1Jy"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="jEMVN1Jy"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywgj96vnMz9sBd for ; Tue, 12 Dec 2017 11:30:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752358AbdLLAav (ORCPT ); Mon, 11 Dec 2017 19:30:51 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:35128 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752318AbdLLAat (ORCPT ); Mon, 11 Dec 2017 19:30:49 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id BBDBA60A18; Tue, 12 Dec 2017 00:30:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038648; bh=eAYcxcOOrxjd0Y6R63kofBO2KaemKPQJxSpXSf5LLSg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jEMVN1Jyen3I5LkXae2t807rqzKFZLdY6EpW1xHFC7oq+pfOEYTUPs4joWa5P96lV mg473nOq1tDdIYtBDdbv+GfferIgTfF4piZ5+hbgBwsQ0jtT7G4GydJN0/cgOxZMt3 xwWpqL9rKQG8Gg4JsM0QItoeTF55/KXUGEb4qSNs= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id D0D676055B; Tue, 12 Dec 2017 00:30:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038648; bh=eAYcxcOOrxjd0Y6R63kofBO2KaemKPQJxSpXSf5LLSg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jEMVN1Jyen3I5LkXae2t807rqzKFZLdY6EpW1xHFC7oq+pfOEYTUPs4joWa5P96lV mg473nOq1tDdIYtBDdbv+GfferIgTfF4piZ5+hbgBwsQ0jtT7G4GydJN0/cgOxZMt3 xwWpqL9rKQG8Gg4JsM0QItoeTF55/KXUGEb4qSNs= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org D0D676055B Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net-next v3 4/6] net: qualcomm: rmnet: Process packets over ethernet Date: Mon, 11 Dec 2017 17:30:13 -0700 Message-Id: <1513038615-16407-5-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> References: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add support to send and receive packets over ethernet. An example of usage is testing the data path on UML. This can be achieved by setting up two UML instances in multicast mode and associating rmnet over the UML ethernet device. Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index a46053c..0553932 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -15,6 +15,7 @@ #include #include +#include #include "rmnet_private.h" #include "rmnet_config.h" #include "rmnet_vnd.h" @@ -104,6 +105,15 @@ static void rmnet_set_skb_proto(struct sk_buff *skb) { struct sk_buff *skbn; + if (skb->dev->type == ARPHRD_ETHER) { + if (pskb_expand_head(skb, ETH_HLEN, 0, GFP_KERNEL)) { + kfree_skb(skb); + return; + } + + skb_push(skb, ETH_HLEN); + } + if (port->ingress_data_format & RMNET_INGRESS_FORMAT_DEAGGREGATION) { while ((skbn = rmnet_map_deaggregate(skb)) != NULL) __rmnet_map_ingress_handler(skbn, port); From patchwork Tue Dec 12 00:30:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 847299 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="EG7syQKO"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="EG7syQKO"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywgjT0z65z9sBd for ; Tue, 12 Dec 2017 11:31:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752456AbdLLAbH (ORCPT ); Mon, 11 Dec 2017 19:31:07 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:35160 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752329AbdLLAau (ORCPT ); Mon, 11 Dec 2017 19:30:50 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id B70D760A19; Tue, 12 Dec 2017 00:30:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038649; bh=3Ldhr3yak6zTCe6FeT7McpcWuG++4vnRBqoYg5SSXz4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EG7syQKO4cXPNR9NIjh1MsKe+8CreTac6uuOngtVTQdt5S4X7XxBs4+I15Ziii9G1 imoa2vzk0hohSfRwmgYq/i4EY95+QhnuHwFaq2/HW5VR7sPkemcB0T9CHJQ0NZyMBT YWaBwqHfGjEuBmnc2HxnIugrGSvX55L8Q6hRTtK4= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 089F16055B; Tue, 12 Dec 2017 00:30:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038649; bh=3Ldhr3yak6zTCe6FeT7McpcWuG++4vnRBqoYg5SSXz4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EG7syQKO4cXPNR9NIjh1MsKe+8CreTac6uuOngtVTQdt5S4X7XxBs4+I15Ziii9G1 imoa2vzk0hohSfRwmgYq/i4EY95+QhnuHwFaq2/HW5VR7sPkemcB0T9CHJQ0NZyMBT YWaBwqHfGjEuBmnc2HxnIugrGSvX55L8Q6hRTtK4= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 089F16055B Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net-next v3 5/6] net: qualcomm: rmnet: Allow to configure flags for new devices Date: Mon, 11 Dec 2017 17:30:14 -0700 Message-Id: <1513038615-16407-6-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> References: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add an option to configure the rmnet aggregation and command features on device creation. This is achieved by using the vlan flags option. Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c index 46bb228..7a4c26e 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c @@ -177,11 +177,20 @@ static int rmnet_newlink(struct net *src_net, struct net_device *dev, if (err) goto err2; - netdev_dbg(dev, "data format [ingress 0x%08X]\n", ingress_format); - port->ingress_data_format = ingress_format; port->rmnet_mode = mode; hlist_add_head_rcu(&ep->hlnode, &port->muxed_ep[mux_id]); + + if (data[IFLA_VLAN_FLAGS]) { + struct ifla_vlan_flags *flags; + + flags = nla_data(data[IFLA_VLAN_FLAGS]); + ingress_format = flags->flags & flags->mask; + } + + netdev_dbg(dev, "data format [ingress 0x%08X]\n", ingress_format); + port->ingress_data_format = ingress_format; + return 0; err2: @@ -313,7 +322,8 @@ static int rmnet_rtnl_validate(struct nlattr *tb[], struct nlattr *data[], static size_t rmnet_get_size(const struct net_device *dev) { - return nla_total_size(2); /* IFLA_VLAN_ID */ + return nla_total_size(2) /* IFLA_VLAN_ID */ + + nla_total_size(sizeof(struct ifla_vlan_flags)); /* IFLA_VLAN_FLAGS */ } struct rtnl_link_ops rmnet_link_ops __read_mostly = { From patchwork Tue Dec 12 00:30:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 847298 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="QtWpkw6x"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="QtWpkw6x"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywgjK4KcXz9sBd for ; Tue, 12 Dec 2017 11:31:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752418AbdLLAa7 (ORCPT ); Mon, 11 Dec 2017 19:30:59 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:35208 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752348AbdLLAav (ORCPT ); Mon, 11 Dec 2017 19:30:51 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E5D94609D1; Tue, 12 Dec 2017 00:30:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038650; bh=W9FQCBBrNiYazekiBu71oykxkdurKWsStmvfL9777sQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QtWpkw6x5h7YfBHoy/8u3OefonHlfAcaEECMPtjAHjgMe5QM1FcPJrtUMDcHXRr+y Sj6di0Qy2V1U8VUjO9u4oOh4XiUS2sZXlcXzd0GYPwQA2ZDAIzsGOI8fb/OZ2jfKTO UOdR+/RfOT7cuqrxOk1BU7sB152Pz67ngvkkBoiI= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 444B76055B; Tue, 12 Dec 2017 00:30:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1513038650; bh=W9FQCBBrNiYazekiBu71oykxkdurKWsStmvfL9777sQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QtWpkw6x5h7YfBHoy/8u3OefonHlfAcaEECMPtjAHjgMe5QM1FcPJrtUMDcHXRr+y Sj6di0Qy2V1U8VUjO9u4oOh4XiUS2sZXlcXzd0GYPwQA2ZDAIzsGOI8fb/OZ2jfKTO UOdR+/RfOT7cuqrxOk1BU7sB152Pz67ngvkkBoiI= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 444B76055B Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net-next v3 6/6] net: qualcomm: rmnet: Allow to configure flags for existing devices Date: Mon, 11 Dec 2017 17:30:15 -0700 Message-Id: <1513038615-16407-7-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> References: <1513038615-16407-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add an option to configure the mux id, aggregation and commad feature for existing rmnet devices. Implement the changelink netlink operation for this. Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c index 7a4c26e..cedacdd 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c @@ -320,6 +320,45 @@ static int rmnet_rtnl_validate(struct nlattr *tb[], struct nlattr *data[], return 0; } +static int rmnet_changelink(struct net_device *dev, struct nlattr *tb[], + struct nlattr *data[], + struct netlink_ext_ack *extack) +{ + struct rmnet_priv *priv = netdev_priv(dev); + struct net_device *real_dev; + struct rmnet_endpoint *ep; + struct rmnet_port *port; + u16 mux_id; + + real_dev = __dev_get_by_index(dev_net(dev), + nla_get_u32(tb[IFLA_LINK])); + + if (!real_dev || !dev || !rmnet_is_real_dev_registered(real_dev)) + return -ENODEV; + + port = rmnet_get_port_rtnl(real_dev); + + if (data[IFLA_VLAN_ID]) { + mux_id = nla_get_u16(data[IFLA_VLAN_ID]); + ep = rmnet_get_endpoint(port, priv->mux_id); + + hlist_del_init_rcu(&ep->hlnode); + hlist_add_head_rcu(&ep->hlnode, &port->muxed_ep[mux_id]); + + ep->mux_id = mux_id; + priv->mux_id = mux_id; + } + + if (data[IFLA_VLAN_FLAGS]) { + struct ifla_vlan_flags *flags; + + flags = nla_data(data[IFLA_VLAN_FLAGS]); + port->ingress_data_format = flags->flags & flags->mask; + } + + return 0; +} + static size_t rmnet_get_size(const struct net_device *dev) { return nla_total_size(2) /* IFLA_VLAN_ID */ + @@ -335,6 +374,7 @@ struct rtnl_link_ops rmnet_link_ops __read_mostly = { .newlink = rmnet_newlink, .dellink = rmnet_dellink, .get_size = rmnet_get_size, + .changelink = rmnet_changelink, }; /* Needs either rcu_read_lock() or rtnl lock */