From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1nWPan-0005p8-4X for mharc-grub-devel@gnu.org; Mon, 21 Mar 2022 17:29:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51534) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nWPal-0005oi-WD for grub-devel@gnu.org; Mon, 21 Mar 2022 17:29:32 -0400 Received: from [2607:f8b0:4864:20::72e] (port=33654 helo=mail-qk1-x72e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nWPak-0003pY-Hg for grub-devel@gnu.org; Mon, 21 Mar 2022 17:29:31 -0400 Received: by mail-qk1-x72e.google.com with SMTP id k125so12745886qkf.0 for ; Mon, 21 Mar 2022 14:29:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2NtmVZKdc2WQsqua2FF3gdNmkvgCx3K4qXo40WgzuX4=; b=ZmOZ7q/cxn/eZEfbr1sLDM6vwDzS8ikG2WSfm9qIKQFHPKw0Kfktj7tpI8o2mrpnmU Vq5W9Vn/URSrQQDJGu3b15hV9MC0VPM1QBTCu3KhQpN7NCRuNRUCBZ9lp1pihYS0LQUG jeIYmA2rs3kX2C2LehY1uNkVmhiKE6tUW1KgjCVR2RcAstY1Bivd+R2i4sxqCsfkTzjm ZHEIRoAS88hK4ih5AdZ30Kua5TATWy6JxzXVtzv/poTvhm3mCETVrQITy+YFuX4air0f noQVFGhiDpvtn+ERvWNNfL2GJgzLuhz7FVew/6R6NUmWitI36RdtBMaqsYbVRQ74D5l/ qpjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2NtmVZKdc2WQsqua2FF3gdNmkvgCx3K4qXo40WgzuX4=; b=EBRLq0RYTEVRj0e427YeOWI/ceIt99LK9LEr+35/XJQ+Z2iFSoh0toFb4K6PaKSg+b 6WD3vmTWeJxjUxLPHufUdesuNAPWmp6uk/sw7gZ0jvDzevADaOkM4uoVJf28oJ1AGCvD F6vYwqRPWcsWpupVI7+sQxZC8Abis/piSedybNLu71fB1IZFvjvqTLfkkOl1ZFCj8zHB Pp1Nfy+haPyrbN3WiXAPTJMYQYcDRRnbFFIjkd0Wxg50vd+CDnrts2ELcvZrdJGLyLr6 fD3+4sqEMRBTjEpFOh6Cl/X76evVCWN1v1/sG8TgmdWmnUbeqAGQY4vNS2b7NQ1spBj4 vE2w== X-Gm-Message-State: AOAM533I9ijr8KRLmy45BYu1lovJ2agaDP9GfPdCj/Zh5CNOvvJtXfry R91qpp3/S7ypy9uALUnR/8n6fCHSDw+b+RrpTqYCMAx9fI4hfLxA7XuBNY3SpjcTAAU1WbjLadE AXc26w4SeJ5SONFoElXA2KrZqBj/hOA5NgAOe2+H1Q5Hn6ySudP0LO6OIRs61Uw== X-Google-Smtp-Source: ABdhPJyvZ9IeLfSfMoXYch7KTVeWGj4hOqoGpT9tlAZU2NeqDVzlrI9GMSt/EIkkwJcC33Fo8oHLzw== X-Received: by 2002:a05:620a:4554:b0:67d:6750:6a3 with SMTP id u20-20020a05620a455400b0067d675006a3mr13868481qkp.439.1647898169276; Mon, 21 Mar 2022 14:29:29 -0700 (PDT) Received: from a-Virtual-Machine.mshome.net ([136.56.89.57]) by smtp.gmail.com with ESMTPSA id 188-20020a3709c5000000b0067b147584c2sm8428061qkj.102.2022.03.21.14.29.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 14:29:28 -0700 (PDT) From: Chad Kimes To: grub-devel@gnu.org Cc: Chad Kimes Subject: [PATCH 1/2] Add vlan information to net_ls_addr output Date: Mon, 21 Mar 2022 17:29:15 -0400 Message-Id: <20220321212916.546630-2-chkimes@github.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220321212916.546630-1-chkimes@github.com> References: <20220321212916.546630-1-chkimes@github.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::72e (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::72e; envelope-from=chkimes@github.com; helo=mail-qk1-x72e.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Mar 2022 21:29:32 -0000 Example output: grub> net_ls_addr efinet1 00:11:22:33:44:55 192.0.2.100 vlan100 Signed-off-by: Chad Kimes --- grub-core/net/net.c | 19 ++++++++++++++++++- include/grub/net.h | 6 ++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/grub-core/net/net.c b/grub-core/net/net.c index 4d3eb5c1a..b957b30e4 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -781,6 +781,20 @@ grub_net_hwaddr_to_str (const grub_net_link_level_address_t *addr, char *str) grub_printf (_("Unsupported hw address type %d\n"), addr->type); } +void +grub_net_vlan_to_str (grub_uint16_t vlantag, char *str) +{ + str[0] = 0; + + /* 12 bits are used to identify the vlan in 802.1Q */ + vlantag = vlantag & 0xFFF; + + if (vlantag == 0) + return; + + grub_snprintf (str, GRUB_NET_MAX_STR_VLAN_LEN, "vlan%u", vlantag); +} + int grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, const grub_net_link_level_address_t *b) @@ -1250,9 +1264,12 @@ grub_cmd_listaddrs (struct grub_command *cmd __attribute__ ((unused)), { char bufh[GRUB_NET_MAX_STR_HWADDR_LEN]; char bufn[GRUB_NET_MAX_STR_ADDR_LEN]; + char bufv[GRUB_NET_MAX_STR_VLAN_LEN]; + grub_net_hwaddr_to_str (&inf->hwaddress, bufh); grub_net_addr_to_str (&inf->address, bufn); - grub_printf ("%s %s %s\n", inf->name, bufh, bufn); + grub_net_vlan_to_str (inf->vlantag, bufv); + grub_printf ("%s %s %s %s\n", inf->name, bufh, bufn, bufv); } return GRUB_ERR_NONE; } diff --git a/include/grub/net.h b/include/grub/net.h index 7ae4b6bd8..b2d044ceb 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -512,12 +512,18 @@ grub_net_addr_cmp (const grub_net_network_level_address_t *a, #define GRUB_NET_MAX_STR_HWADDR_LEN (sizeof ("XX:XX:XX:XX:XX:XX")) +/* Max VLAN id = 4094 */ +#define GRUB_NET_MAX_STR_VLAN_LEN (sizeof ("vlanXXXX")) + void grub_net_addr_to_str (const grub_net_network_level_address_t *target, char *buf); void grub_net_hwaddr_to_str (const grub_net_link_level_address_t *addr, char *str); +void +grub_net_vlan_to_str (grub_uint16_t vlantag, char *str); + grub_err_t grub_env_set_net_property (const char *intername, const char *suffix, const char *value, grub_size_t len); -- 2.25.1