From nobody Thu May 16 01:48:02 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+94456+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+94456+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1664345551; cv=none; d=zohomail.com; s=zohoarc; b=RcQT6cUzB6wWXNuIBC2wDjHecO1KKlIs6Qh3WONuPYMsuwFLH41bF2oHUrS8iBRdxtrWkPJmOeRfWqzNSQ9S3Bn/S/f0MwIAk8LGMeNmcvIUOo43bt9Gowo9jROcBpvHc7q5or9B9bfVgdhmPNXyDBmS+Z3mVWtWQtJTPNQagFc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664345551; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=Muei6ypSz5A+c5pLoVlqxAiWYSR5eV9f2CkAFx5CRMA=; b=cu4fSoC5yRpDPECeFnEM6TPSq8RgSmWuH61KC3JpH4S5lct40jV4MrwRJzOa+XLW3xkwsJb4PJEPBhy1YZMCYzFGbOD5SFPWbiRJ2nx5XplgWfeo2mU1sb4K8V6td8ZBWLwNJgEidH8PncXvjJnBaEJI31kH+lqV8qCekVLP0L4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+94456+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1664345551872710.6597780006956; Tue, 27 Sep 2022 23:12:31 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id NCZNYY1788612x9qIw7Y2KQT; Tue, 27 Sep 2022 23:12:31 -0700 X-Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mx.groups.io with SMTP id smtpd.web11.4749.1664345550071065914 for ; Tue, 27 Sep 2022 23:12:30 -0700 X-Received: from dggemv704-chm.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4McmKl2QR0zpVMD; Wed, 28 Sep 2022 14:09:31 +0800 (CST) X-Received: from kwepemm600004.china.huawei.com (7.193.23.242) by dggemv704-chm.china.huawei.com (10.3.19.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 28 Sep 2022 14:12:27 +0800 X-Received: from kwephisprg16640.huawei.com (10.247.83.252) by kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 28 Sep 2022 14:12:26 +0800 From: "wenyi,xie via groups.io" To: , , , CC: , Subject: [edk2-devel] [PATCH EDK2 v1 1/1] NetworkPkg/Dhcp6Dxe:Generate real time stamp Date: Wed, 28 Sep 2022 14:12:20 +0800 Message-ID: <20220928061220.3124990-2-xiewenyi2@huawei.com> In-Reply-To: <20220928061220.3124990-1-xiewenyi2@huawei.com> References: <20220928061220.3124990-1-xiewenyi2@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.247.83.252] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600004.china.huawei.com (7.193.23.242) X-CFilter-Loop: Reflected Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,xiewenyi2@huawei.com X-Gm-Message-State: MsKA8aa733uPYwReBgWKYL6tx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1664345551; bh=ynq64TvHt7shabifkDYWzcSoR8CjaPE+qebsLnCvB60=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=TW9Q1PWv/jSNQa23D6xWAb70MYNVKILTEkZQbxxO07FHPbm7/tZ9YVlklbrnssT1BKl 3j8M3MG1HnKh15uIU4PkuQaHAu/WelqrbgPr2pY9z/ltpzV5i+BPq4boIB9M5tdGQZr37 195IKMJeZUv8Cu+oqy04R3w0O/UNijxO+gI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1664345553158100002 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The stamp used to be generated is assumed 30day/month. Now adding a new function which calculates time stamp with the correct days. Cc: Maciej Rabeda Cc: Jiaxin Wu Cc: Siyuan Fu Signed-off-by: Wenyi Xie --- NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c | 71 +++++++++++++++++--- 1 file changed, 63 insertions(+), 8 deletions(-) diff --git a/NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c b/NetworkPkg/Dhcp6Dxe/Dhcp6= Utility.c index e6368b5b1c6c..bff8b809090f 100644 --- a/NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c +++ b/NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c @@ -10,6 +10,62 @@ =20 #include "Dhcp6Impl.h" =20 +CONST UINT32 MonthDays[] =3D { + 0, + 31, + 31 + 28, + 31 + 28 + 31, + 31 + 28 + 31 + 30, + 31 + 28 + 31 + 30 + 31, + 31 + 28 + 31 + 30 + 31 + 30, + 31 + 28 + 31 + 30 + 31 + 30 + 31, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 +}; + +/** + Generate time stamp with current system time. + + @param[in] Time The pointer to the system time. + + @retval NULL . + @retval others . + +**/ +UINT32 +Dhcp6GenerateTimeStamp ( + IN EFI_TIME Time + ) +{ + UINT32 Stamp; + UINT32 Days; + + if (Time.Year < 2000) { + DEBUG ((DEBUG_ERROR, "[%a][%dL] Time before 2000!\n", __FUNCTION__, __= LINE__)); + return (UINT32) ~(0); + } + + Days =3D 0; + Days +=3D ((Time.Year - 2000) * 365) + ((Time.Year - 2000) / 4); + Days +=3D MonthDays[(Time.Month - 1)]; + if (((Time.Year - 2000) % 4 =3D=3D 0) && (Time.Month >=3D 3)) { + Days++; + } + + Stamp =3D (UINT32)Days + Time.Day; + Stamp =3D Stamp * 24 + Time.Hour; + Stamp =3D Stamp * 60 + Time.Minute; + if (Time.TimeZone !=3D 0x7ff) { + Stamp -=3D Time.TimeZone; + } + + Stamp =3D Stamp * 60 + Time.Second; + + return Stamp; +} + /** Generate client Duid in the format of Duid-llt. =20 @@ -108,15 +164,14 @@ Dhcp6GenerateClientId ( // =20 // - // Generate a time stamp of the seconds from 2000/1/1, assume 30day/mo= nth. + // Generate a time stamp of the seconds from 2000/1/1. // - gRT->GetTime (&Time, NULL); - Stamp =3D (UINT32) - ( - ((((UINT32)(Time.Year - 2000) * 360 + (Time.Month - 1) * 30 += (Time.Day - 1)) * 24 + Time.Hour) * 60 + Time.Minute) * - 60 + - Time.Second - ); + Status =3D gRT->GetTime (&Time, NULL); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "[%a][%dL] Get time failed. \n", __FUNCTION__, = __LINE__)); + } + + Stamp =3D Dhcp6GenerateTimeStamp (Time); =20 // // sizeof (option-len + Duid-type + hardware-type + time) =3D 10 bytes --=20 2.20.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#94456): https://edk2.groups.io/g/devel/message/94456 Mute This Topic: https://groups.io/mt/93967207/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-