From patchwork Thu Oct 29 06:39:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 1389857 X-Patchwork-Delegate: mathew.j.martineau@linux.intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.01.org (client-ip=198.145.21.10; helo=ml01.01.org; envelope-from=mptcp-bounces@lists.01.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=HTPE2ls4; dkim-atps=neutral Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CMG5b66tgz9sPB for ; Thu, 29 Oct 2020 17:40:03 +1100 (AEDT) Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id A4BA11638992D; Wed, 28 Oct 2020 23:40:01 -0700 (PDT) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::436; helo=mail-pf1-x436.google.com; envelope-from=geliangtang@gmail.com; receiver= Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 9C09D1638992E for ; Wed, 28 Oct 2020 23:39:59 -0700 (PDT) Received: by mail-pf1-x436.google.com with SMTP id 133so1509097pfx.11 for ; Wed, 28 Oct 2020 23:39:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y4l2IQO0fth1QqhftHsbKRGXmU2w2cBAJAmROq3yzbE=; b=HTPE2ls4Pe8ARMp10B8/Nqk5Tus/6wS8pTtqD0JXzk6INaMeWbdwPnDVHAXGED06Ox OfiaCCkNYKKrbIJGnlorfxM8YegZT2bsn6VBlz6uFiubvOUp3q0UV0J0trYszefZbV1L LtQ7tlOv6UGeUSNYTjm4/5rnxDaHFvsbq1cH3bAb75k3DJ6U52rxQY7bXnUjplFRy7Lp MyTD4SAxRy6eHrjLVMyBQMPMSNin31h0gvdwy0ksvqUqfHeaKoNj8p4mVCL66mlBiQ+w 07EkVxv4sGcUXy6J/PoBqeoyF6x10YwnOHsx0weAmHgvjyPRaeHjgrkuyS6gJEKTYz1b WIpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=y4l2IQO0fth1QqhftHsbKRGXmU2w2cBAJAmROq3yzbE=; b=IrmKbTD3GbeDMipuT5sRtxVzhkVzmJuHbzNBshqgWUnm8et+DRpe3VDyvMRwmtAg2A 0Y2nvhY6Qr0/qFFuY6essqhT2CVhSrBYVSr7Ib0jRLdEGvJDyIF9hBcwRK3Nmc9xFpbJ +PuRHiL953XllsK7y7fhh9P1ge4m2dTNCX2Jzrq5CoACf5WuDOUq5nmNYaMBU4HK3pDG JK2iu+J/pMQToggoWmPwFq4HCzknenCgDkbFbktUe8iBjS67SPBMRe/yoUigrTmoOnD+ jONCBTbfzEBoLLTKus0H7t6fQvFw1cpbO6a1xo2YhsuK7P4G/GSguk1aZXaFO9/fO9MY B8Pg== X-Gm-Message-State: AOAM5325NJ5UfFfIzAOWyovfdII4x5jbItZsA0Ji8QdwEb8ZcqA1jbmG ul5OXRg5l5taxEKQ/YZwofArLR0zpXV3JA== X-Google-Smtp-Source: ABdhPJylWoARi+ZR27wk2dotF5vbvX3q4MPD5z7T/1MZpBooefO4ggtVBXQ+v8SqKUDvIzpRGdsBhA== X-Received: by 2002:a17:90a:348e:: with SMTP id p14mr2790882pjb.75.1603953598768; Wed, 28 Oct 2020 23:39:58 -0700 (PDT) Received: from localhost ([2400:8800:300:11c:18a:42ae:244a:91a5]) by smtp.gmail.com with ESMTPSA id a18sm1309657pgw.50.2020.10.28.23.39.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Oct 2020 23:39:58 -0700 (PDT) From: Geliang Tang To: mptcp@lists.01.org Date: Thu, 29 Oct 2020 14:39:27 +0800 Message-Id: <74a7932cdf68d481379e0910f511b4ef017661ce.1603952836.git.geliangtang@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <1c2111f713f72610a59400b5c821f09e53485134.1603952836.git.geliangtang@gmail.com> References: <28c900686b7ce170435daec8d9cd71527636a8af.1603952836.git.geliangtang@gmail.com> <17fe96fa273fe2ed8d0d0f76b37187bbe8f0c99e.1603952836.git.geliangtang@gmail.com> <443a19151dd71160ce92b6ab3dbc6a62e4cdddd8.1603952836.git.geliangtang@gmail.com> <1c2111f713f72610a59400b5c821f09e53485134.1603952836.git.geliangtang@gmail.com> MIME-Version: 1.0 Message-ID-Hash: SG3ZBK4FIFWLGQCAR2FR4GPIDHGXTJ4T X-Message-ID-Hash: SG3ZBK4FIFWLGQCAR2FR4GPIDHGXTJ4T X-MailFrom: geliangtang@gmail.com X-Mailman-Rule-Hits: member-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address CC: Geliang Tang X-Mailman-Version: 3.1.1 Precedence: list Subject: [MPTCP] [MPTCP][PATCH mptcp-next 7/8] selftests: mptcp: add ADD_ADDR port support for pm_nl_ctl List-Id: Discussions regarding MPTCP upstreaming Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: This patch added ADD_ADDR port support for pm_nl_ctl. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/pm_nl_ctl.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/pm_nl_ctl.c b/tools/testing/selftests/net/mptcp/pm_nl_ctl.c index b24a2f17d415..9e6f30d34d9a 100644 --- a/tools/testing/selftests/net/mptcp/pm_nl_ctl.c +++ b/tools/testing/selftests/net/mptcp/pm_nl_ctl.c @@ -178,6 +178,7 @@ int add_addr(int fd, int pm_family, int argc, char *argv[]) struct nlmsghdr *nh; u_int16_t family; u_int32_t flags; + u_int16_t port; int nest_start; u_int8_t id; int off = 0; @@ -271,6 +272,16 @@ int add_addr(int fd, int pm_family, int argc, char *argv[]) rta->rta_len = RTA_LENGTH(4); memcpy(RTA_DATA(rta), &ifindex, 4); off += NLMSG_ALIGN(rta->rta_len); + } else if (!strcmp(argv[arg], "port")) { + if (++arg >= argc) + error(1, 0, " missing port value"); + + port = atoi(argv[arg]); + rta = (void *)(data + off); + rta->rta_type = MPTCP_PM_ADDR_ATTR_PORT; + rta->rta_len = RTA_LENGTH(2); + memcpy(RTA_DATA(rta), &port, 2); + off += NLMSG_ALIGN(rta->rta_len); } else error(1, 0, "unknown keyword %s", argv[arg]); } @@ -323,6 +334,7 @@ int del_addr(int fd, int pm_family, int argc, char *argv[]) static void print_addr(struct rtattr *attrs, int len) { uint16_t family = 0; + uint16_t port = 0; char str[1024]; uint32_t flags; uint8_t id; @@ -330,12 +342,16 @@ static void print_addr(struct rtattr *attrs, int len) while (RTA_OK(attrs, len)) { if (attrs->rta_type == MPTCP_PM_ADDR_ATTR_FAMILY) memcpy(&family, RTA_DATA(attrs), 2); + if (attrs->rta_type == MPTCP_PM_ADDR_ATTR_PORT) + memcpy(&port, RTA_DATA(attrs), 2); if (attrs->rta_type == MPTCP_PM_ADDR_ATTR_ADDR4) { if (family != AF_INET) error(1, errno, "wrong IP (v4) for family %d", family); inet_ntop(AF_INET, RTA_DATA(attrs), str, sizeof(str)); printf("%s", str); + if (port) + printf(" %d", port); } if (attrs->rta_type == MPTCP_PM_ADDR_ATTR_ADDR6) { if (family != AF_INET6) @@ -343,6 +359,8 @@ static void print_addr(struct rtattr *attrs, int len) family); inet_ntop(AF_INET6, RTA_DATA(attrs), str, sizeof(str)); printf("%s", str); + if (port) + printf(" %d", port); } if (attrs->rta_type == MPTCP_PM_ADDR_ATTR_ID) { memcpy(&id, RTA_DATA(attrs), 1);