From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1nQLNU-0001f3-PN for mharc-grub-devel@gnu.org; Fri, 04 Mar 2022 22:46:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:53828) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nQLNT-0001eQ-5V for grub-devel@gnu.org; Fri, 04 Mar 2022 22:46:43 -0500 Received: from [2607:f8b0:4864:20::829] (port=36487 helo=mail-qt1-x829.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nQLNQ-0005oG-IL for grub-devel@gnu.org; Fri, 04 Mar 2022 22:46:41 -0500 Received: by mail-qt1-x829.google.com with SMTP id f18so9096394qtb.3 for ; Fri, 04 Mar 2022 19:46:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=quPYDdMt9MSzPXboo7D8Ck7gfPOaKdwVAG3DXXgdJzY=; b=hr+lFGSV3e7asBIfs4h0mWBaICGzAW85y93zy3/dmeKhKl5uEz31NZFM6T8tJOXLt0 gOOQpD/APRygQgS1Q5/DMgEJ2lxxB7WerMSe98mH+ppsQudLR7YujuD5E1rRVZz0FK4L LqGPSvopYecykLE8iN/HYE6QsRC8GQtzV9k4rQsvt80qQJ3oCUfQR5l0cP84DZQENq+S 70FhGFrk1Tbyx4DYm2Ryi3MVT9GV9MhS+PatLLY4B6WzAaBKSHfTNagTIM+e6phvQ5Ai 2iRAkykVX2sEP9UX5UnK0GAdd5R3oZc2D9Ve7PDLhq44qafJNz8bQCw1rbd2r0uArE8R NQjg== 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:mime-version :content-transfer-encoding; bh=quPYDdMt9MSzPXboo7D8Ck7gfPOaKdwVAG3DXXgdJzY=; b=OWFoowRbteFSJSaLDxkPivldy6bEDrZds27oN5IHcxnCU+ktR4125lklf1iaLzhY83 y6WkYjwhlrVCkZKQIs8QPqp9b7MEazwRv7ffztW1a34hkCQbuE0ePEidDWqzmnDAPqcU zSyvFZqYcA57UpslzEDP8tQAjMQF9+j9FI1kogtYHh4oLMC06V996TZm/5RtffLpMidG DNGVdmpC7XzrbQMffPphii+nrLBTSYe3GnNK3ZdMTTCoCmyMVfgvdzhBm0ru1QhU0WnJ auVbTEXWsygxRb/rcIWylV0N9Ty4I7ecDrYw6EhpZU/JvoPaz+Tp2Z/hOR/6/PKHFes6 nYEA== X-Gm-Message-State: AOAM531+Fpi2KxNot6OZo2oB07VXNJGNLts3pyawCp65oojqX316969w njzylsyn6LrjXW/ulDW282GmdNNmYXTk3NIC1N0DCqEk4WU9KFtJzZUu7NFMoeoAl0WDsivPbkO vJzBpSHnAu8fyFjVcMukK7GlowATlJ1Nw1MRtnXs8fMh+IgFTAjmGv9SQiaK12g== X-Google-Smtp-Source: ABdhPJwnCz/JnWKoVNVKWbSsqgacXREk888WETvlVt5pQIZi4R8ddPRtj8f1ah2GGCkU/9ToFsakhQ== X-Received: by 2002:ac8:59c8:0:b0:2de:5f4:7e84 with SMTP id f8-20020ac859c8000000b002de05f47e84mr1629643qtf.97.1646451998630; Fri, 04 Mar 2022 19:46:38 -0800 (PST) Received: from a-Virtual-Machine.mshome.net ([136.56.89.57]) by smtp.gmail.com with ESMTPSA id t66-20020ae9df45000000b0064915aff85fsm3357730qkf.45.2022.03.04.19.46.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Mar 2022 19:46:38 -0800 (PST) From: Chad Kimes To: grub-devel@gnu.org Cc: Chad Kimes Subject: [PATCH 1/2] Add vlan information to net_ls_addr output Date: Fri, 4 Mar 2022 22:46:35 -0500 Message-Id: <20220305034636.316835-1-chkimes@github.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::829 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::829; envelope-from=chkimes@github.com; helo=mail-qt1-x829.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: Sat, 05 Mar 2022 03:46:43 -0000 Example output: grub> net_ls_addr efinet1 00:11:22:33:44:55 192.168.0.100 vlan100 Signed-off-by: Chad Kimes --- grub-core/net/net.c | 18 +++++++++++++++++- include/grub/net.h | 8 ++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/grub-core/net/net.c b/grub-core/net/net.c index 4d3eb5c1a..33e35d5b5 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,11 @@ 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..7fccad8ec 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -512,12 +512,20 @@ 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