public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData
@ 2018-10-12  8:20 Eric Jin
  2018-10-12  8:57 ` Supreeth Venkatesh
  2018-10-13  1:55 ` Wu, Jiaxin
  0 siblings, 2 replies; 4+ messages in thread
From: Eric Jin @ 2018-10-12  8:20 UTC (permalink / raw)
  To: edk2-devel

Spec clarifies the configuration clearance behavior
Correct the end line

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Eric Jin <eric.jin@intel.com>
Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
---
 .../IP4Config2/Include/Ip4Config2AssertionGuid.tcl |    5 +-
 .../TestCase/IP4Config2/SetData.Func1.Case2.tcl    |  714 +++++++++++++
 .../Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl |  142 +--
 .../Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl |  140 +--
 .../Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl |  788 +++++++-------
 .../Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl |  144 +--
 .../Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl |  982 +++++++++---------
 .../Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl |  542 +++++-----
 .../TestCase/IP6Config/Include/Ip6Config.inc.tcl   |  192 ++--
 .../TestCase/IP6Config/Include/Ip6Config.proc.tcl  |   30 +-
 .../IP6Config/Include/Ip6ConfigAssertionGuid.tcl   |  180 ++--
 .../TestCase/IP6Config/Include/Ip6ConfigDefine.tcl |  102 +-
 .../IP6Config/RegisterDataNotify.Conf1.Case1.tcl   |  178 ++--
 .../IP6Config/RegisterDataNotify.Conf2.Case1.tcl   |  178 ++--
 .../IP6Config/RegisterDataNotify.Conf3.Case1.tcl   |  216 ++--
 .../IP6Config/RegisterDataNotify.Func1.Case1.tcl   | 1076 ++++++++++----------
 .../IP6Config/RegisterDataNotify.Func1.Case2.tcl   |  530 +++++-----
 .../Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl |  142 +--
 .../Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl |  596 +++++------
 .../Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl |  142 +--
 .../Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl |  474 ++++-----
 .../Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl |  556 +++++-----
 .../Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl |  142 +--
 .../Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl | 1020 +++++++++----------
 .../Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl |  546 +++++-----
 .../Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl |  838 +++++++++++++++
 .../IP6Config/UnregisterDataNotify.Conf1.Case1.tcl |  178 ++--
 .../IP6Config/UnregisterDataNotify.Conf2.Case1.tcl |  164 +--
 .../IP6Config/UnregisterDataNotify.Conf2.Case2.tcl |  196 ++--
 .../IP6Config/UnregisterDataNotify.Func1.Case1.tcl |  194 ++--
 .../IP6Config/UnregisterDataNotify.Func1.Case2.tcl |  472 ++++-----
 31 files changed, 6683 insertions(+), 5116 deletions(-)
 create mode 100644 uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
 create mode 100644 uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl

diff --git a/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl b/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
index 91a4fd1..e0604b2 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
@@ -1,6 +1,6 @@
 # 
 #  Copyright 2017 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>
 # 
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -39,6 +39,9 @@ set Ip4Config2SetDataFunc1AssertionGuid008  00FBB58A-4BB3-499F-AE6B-744B6B9932E6
 set Ip4Config2SetDataFunc1AssertionGuid009  DB8EF05C-085F-45D1-A0B1-DC2F307B6F1E
 set Ip4Config2SetDataFunc1AssertionGuid010  29143621-896C-4FB9-9E70-7A4D2DA6BEE0
 set Ip4Config2SetDataFunc1AssertionGuid011  72FEDF83-6755-4212-AF0F-780F457EFAA7
+set Ip4Config2SetDataFunc1AssertionGuid012  EB7769D1-A31F-4F37-86F3-2BBF54834785
+set Ip4Config2SetDataFunc1AssertionGuid013  78F3A664-A8E4-43B8-961F-71033E9145F2
+set Ip4Config2SetDataFunc1AssertionGuid014  7F717D50-3A7C-4E2A-9F15-0A802E9BAFE6
 
 #
 # Guid for GetData() interface
diff --git a/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
new file mode 100644
index 0000000..0517032
--- /dev/null
+++ b/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
@@ -0,0 +1,714 @@
+# 
+#  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+################################################################################
+CaseLevel         FUNCTION
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        B2AD20DF-2325-42B2-A199-A49ADF04A5DD
+CaseName        SetData.Func1.Case2
+CaseCategory    IP4Config2
+CaseDescription {SetData must succeed When DataSize is 0 and
+                Data is NULL,and existing configuration is cleared.}
+
+################################################################################
+Include IP4Config2/Include/Ip4Config2.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN     R_Status
+UINTN     R_Context
+UINTN     R_DoneEvent
+UINTN     R_Ip4Config2DataSize
+UINT32    R_Ip4Config2DataType
+UINT32    R_Ip4Config2Policy
+
+#
+# Check Point: Call Ip4Config2->SetData to set Static policy
+#
+SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
+SetVar R_Ip4Config2DataSize   [Sizeof UINT32]
+SetVar R_Ip4Config2Policy     $IP4C2P(Static)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid    \
+                "BS.CreateEvent."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2Policy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
+                  "Ip4Config2.SetData - Call SetData to set Static policy."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
+      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
+                  "Ip4Config2.SetData - Call SetData to set Static policy."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+
+Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Policy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid    \
+                        "Ip4Config2.GetData - Call GetData to get policy value."        \
+                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip4Config2Policy
+if { $R_Ip4Config2Policy == $IP4C2P(Static) } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid002    \
+                  "Set Static policy succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip4Config2Policy   $IP4C2DT(Policy)
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid002    \
+                "Set Static policy succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Manual Address
+#
+EFI_IP4_CONFIG2_MANUAL_ADDRESS    R_Temp_Ip4Config2ManualAddress
+EFI_IP4_CONFIG2_MANUAL_ADDRESS    R_Ip4Config2ManualAddress
+SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
+SetVar R_Ip4Config2DataSize   [Sizeof EFI_IP4_CONFIG2_MANUAL_ADDRESS]
+SetIpv4Address R_Temp_Ip4Config2ManualAddress.Address       "10.239.9.15"
+SetIpv4Address R_Temp_Ip4Config2ManualAddress.SubnetMask    "255.255.255.0"
+SetVar R_Ip4Config2ManualAddress @R_Temp_Ip4Config2ManualAddress
+
+SetVar R_Context 0
+Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid    \
+                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+
+Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
+                  "Ip4Config2.SetData - Call SetData to set Manual Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
+      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
+                  "IP4Config2.SetData - Call SetData to set Manual Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+
+Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid    \
+                        "Ip4Config2.GetData - Call GetData to get Manual Address."    \
+                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+
+EFI_IPv4_ADDRESS  R_Addr1
+EFI_IPv4_ADDRESS  R_Addr2
+set R_Addr1 [GetIpv4Address R_Ip4Config2ManualAddress.Address]
+puts "R_Addr1 - $R_Addr1"
+set R_Addr2 [GetIpv4Address R_Ip4Config2ManualAddress.SubnetMask]
+puts "R_Addr1 - $R_Addr2"
+
+if {[string compare -nocase $R_Addr1 10.239.9.15] == 0} {
+  if {[string compare -nocase $R_Addr2 255.255.255.0] == 0} {
+    set assert pass
+  } else {
+    set assert fail
+    RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
+                    "Set ManualAddress succeeds(event is signaled correctly and data correct)."
+    Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+    GetAck
+    BS->CloseEvent {@R_DoneEvent,&@R_Status}
+    GetAck
+    EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+    EndLog
+    return
+  }
+} else {
+  set assert fail
+
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
+                  "Set ManualAddress succeeds(event is signaled correctly and data correct)."
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
+                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Points : Set Gateway
+#
+EFI_IPv4_ADDRESS               R_Ip4Config2Gateway
+SetVar R_Ip4Config2DataType    $IP4C2DT(Gateway)
+SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
+SetIpv4Address R_Ip4Config2Gateway "10.239.9.241"
+
+SetVar R_Context 0
+Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
+                  "Ip4Config2.SetData - Call SetData to set Gateway Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
+                  "Ip4Config2.SetData - Call SetData to set Gateway Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+
+Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid    \
+                        "Ip4Config2.GetData - Call GetData to get Gateway Address."        \
+                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+EFI_IPv4_ADDRESS  R_Addr3
+set R_Addr3 [GetIpv4Address R_Ip4Config2Gateway]
+puts "R_Addr3 - $R_Addr3"
+
+if {[string compare -nocase $R_Addr3 10.239.9.241] == 0} {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid006    \
+                  "Set Gateway succeeds(event is signaled correctly and data correct)."
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid006    \
+                "Set Gateway succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Dns Server
+#
+EFI_IPv4_ADDRESS               R_Ip4Config2DnsServer
+SetVar R_Ip4Config2DataType    $IP4C2DT(DnsServer)
+SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
+SetIpv4Address R_Ip4Config2DnsServer "10.248.2.5"
+
+SetVar R_Context 0
+Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
+                  "Ip4Config2.SetData - Call SetData to set Dns Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
+                  "Ip4Config2.SetData - Call SetData to set Dns Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+
+Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid    \
+                        "Ip4Config2.GetData - Call GetData to get Dns Address."        \
+                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+EFI_IPv4_ADDRESS  R_Addr4
+set R_Addr4 [GetIpv4Address R_Ip4Config2DnsServer]
+puts "R_Addr4 - $R_Addr4"
+
+if {[string compare -nocase $R_Addr4 10.248.2.5] == 0} {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid008    \
+                  "Set Dns succeeds(event is signaled correctly and data correct)."
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid008    \
+                "Set Dns succeeds(event is signaled correctly and data correct)."
+
+
+
+#
+# Clean up - Call SetData when DataSize is 0 and Data is NULL
+#
+
+
+
+#
+# Set Manual Address
+#
+
+SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
+SetVar R_Ip4Config2DataSize   0
+
+
+
+SetVar R_Context 0
+Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid    \
+                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+
+Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
+                  "Ip4Config2.SetData - Call SetData to clear Manual Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
+                      "SetData to clear Manual Address failed.(event hasn't been signaled before TIMEOUT)."    \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
+      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
+                  "IP4Config2.SetData - Call SetData to clear Manual Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+SetVar R_Ip4Config2DataSize   [Sizeof EFI_IP4_CONFIG2_MANUAL_ADDRESS]
+Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $GenericAssertionGuid    \
+                        "Ip4Config2.GetData - Call GetData to get Manual Address."    \
+                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+#
+# Set Gateway Address
+#
+
+
+SetVar R_Ip4Config2DataType    $IP4C2DT(Gateway)
+SetVar R_Ip4Config2DataSize    0
+
+SetVar R_Context 0
+Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
+                  "Ip4Config2.SetData - Call SetData to clear Gateway Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
+                      "SetData to clear Gateway Address failed.(event hasn't been signaled before TIMEOUT)."    \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
+                  "Ip4Config2.SetData - Call SetData to clear Gateway Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
+Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $GenericAssertionGuid    \
+                        "Ip4Config2.GetData - Call GetData to get Gateway Address."        \
+                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+
+#
+# Check Point : Set Dns Server
+#
+
+SetVar R_Ip4Config2DataType    $IP4C2DT(DnsServer)
+SetVar R_Ip4Config2DataSize    0
+
+SetVar R_Context 0
+Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
+                  "Ip4Config2.SetData - Call SetData to clear Dns Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
+                      "SetData to clear Dns Address failed.(event hasn't been signaled before TIMEOUT)."    \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
+                  "Ip4Config2.SetData - Call SetData to clear Dns Address."    \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+  EndLog
+  return
+}
+
+Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
+Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $GenericAssertionGuid    \
+                        "Ip4Config2.GetData - Call GetData to get Dns Address."        \
+                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+
+
+EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
+
+EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
index a6b788d..beeb2fb 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
@@ -1,72 +1,72 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        11FF93B5-8A85-4770-88C2-99E0AF9AE0AA
-CaseName        GetData.Conf1.Case1
-CaseCategory    IP6Config
-CaseDescription {GetData must not succeed when data size is NULL.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_GETDATA_CONF1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                          R_Ip6ConfigPolicy
-UINT32                          R_Ip6ConfigDataType
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
-
-#
-# Check Point: Call Ip6Config->GetData with datasize is NULL.
-#
-SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
-SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,NULL,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigGetDataConf1AssertionGuid001                   \
-                "Ip6Config.GetData - Call GetData with DataSize NULL."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-EndScope _IP6CONFIG_GETDATA_CONF1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        11FF93B5-8A85-4770-88C2-99E0AF9AE0AA
+CaseName        GetData.Conf1.Case1
+CaseCategory    IP6Config
+CaseDescription {GetData must not succeed when data size is NULL.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_GETDATA_CONF1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                          R_Ip6ConfigPolicy
+UINT32                          R_Ip6ConfigDataType
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
+
+#
+# Check Point: Call Ip6Config->GetData with datasize is NULL.
+#
+SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
+SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,NULL,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigGetDataConf1AssertionGuid001                   \
+                "Ip6Config.GetData - Call GetData with DataSize NULL."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+EndScope _IP6CONFIG_GETDATA_CONF1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
index c095756..6f90a9c 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
@@ -1,71 +1,71 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        B4C48D71-EF72-42e0-BD57-4825F7EB7B9F
-CaseName        GetData.Conf2.Case1
-CaseCategory    IP6Config
-CaseDescription {GetData must not succeed when data is NULL if data size is not zero.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_GETDATA_CONF2
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32				  R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
-
-#
-# Check Point: Call Ip6Config->GetData with data is NULL.
-#
-SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
-SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,NULL,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigGetDataConf2AssertionGuid001                   \
-                "Ip6Config.GetData - Call GetData with Data NULL."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-EndScope _IP6CONFIG_GETDATA_CONF2
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        B4C48D71-EF72-42e0-BD57-4825F7EB7B9F
+CaseName        GetData.Conf2.Case1
+CaseCategory    IP6Config
+CaseDescription {GetData must not succeed when data is NULL if data size is not zero.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_GETDATA_CONF2
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32				  R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
+
+#
+# Check Point: Call Ip6Config->GetData with data is NULL.
+#
+SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
+SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,NULL,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigGetDataConf2AssertionGuid001                   \
+                "Ip6Config.GetData - Call GetData with Data NULL."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+EndScope _IP6CONFIG_GETDATA_CONF2
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
index c90d442..5688648 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
@@ -1,395 +1,395 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        7B341FC4-1F10-4851-83AD-103A56B0EC35
-CaseName        GetData.Conf3.Case1
-CaseCategory    IP6Config
-CaseDescription {GetData must not succeed when DataSize is too small for the data type.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_GETDATA_CONF3
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_Context1
-UINTN                            R_DoneEvent
-UINTN                            R_DoneEvent1
-UINTN                            R_Ip6ConfigDataSize
-UINT32                           R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                           R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-    if { $R_Context == 1 } {
-      break
-    } elseif { $i == $L_TimeOut } {
-      set assert fail
-
-      RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent,&@R_Status}
-      GetAck
-      EndScope _IP6CONFIG_GETDATA_CONF3
-      EndLog
-      return
-    }
-    incr i
-    Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual policy."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_CONF3
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get policy value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy failure (event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_CONF3
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point : Set Manual Address with valid value
-#
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
-
-set L_ManualListLen    1
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
-SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
-
-SetVar R_Context1 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
-                &@R_DoneEvent1, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-GetVar  R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData with valid value."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context1
-    if { $R_Context1 == 1 } {
-      break
-    } elseif { $i == $L_TimeOut } {
-      set assert fail
-
-      RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-      SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-      GetAck
-      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent,&@R_Status}
-      GetAck
-      EndScope _IP6CONFIG_GETDATA_CONF3
-      EndLog
-      return
-    }
-    incr i
-    Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual address."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_CONF3
-  EndLog
-  return  
-}
-
-#
-# Check Point : Get Manual Address with datasize too small
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   16
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_BUFFER_TOO_SMALL]
-RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid001                   \
-                "Ip6Config.GetData - Call GetData with the datasize too small."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BUFFER_TOO_SMALL"
-
-GetVar R_Ip6ConfigDataSize
-set L_ObtainedSize [ expr { $R_Ip6ConfigDataSize } ]
-set L_DesiredSize [ Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS ]
-if { [ expr { $L_ObtainedSize % $L_DesiredSize } ] == 0 } {
-  set assert pass
-} else {
-  set assert fail
-}
-RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid002                   \
-                "Ip6Config.GetData - Correctly Modify the DataSize."            \
-                "ReturnSize - $L_ObtainedSize, ExpectedSize - $L_DesiredSize"
-
-#
-# Clean up
-#
-
-#
-# Set automatic policy (this will clean up all address information configured)
-#
-SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
-
-SetVar R_Context 0
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  set assert pass
-  while { 1 > 0 } {
-    GetVar R_Context
-    if { $R_Context == 1 } {
-      break
-    } elseif { $i == $L_TimeOut } {
-      set assert fail
-
-      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent,&@R_Status}
-      GetAck
-      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-      GetAck
-
-      EndScope _IP6CONFIG_GETDATA_CONF3
-      EndLog
-      return
-    }
-    incr i
-    Stall 1
-  }
-} else {
-  set assert fail
-
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-
-  EndScope _IP6CONFIG_GETDATA_CONF3
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-
-  EndScope _IP6CONFIG_GETDATA_CONF3
-  EndLog
-  return
-}
-  
-RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-                
-#
-# Unregister Event for Manual Address and close event
-#
-SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-GetAck
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_GETDATA_CONF3
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        7B341FC4-1F10-4851-83AD-103A56B0EC35
+CaseName        GetData.Conf3.Case1
+CaseCategory    IP6Config
+CaseDescription {GetData must not succeed when DataSize is too small for the data type.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_GETDATA_CONF3
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_Context1
+UINTN                            R_DoneEvent
+UINTN                            R_DoneEvent1
+UINTN                            R_Ip6ConfigDataSize
+UINT32                           R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                           R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+
+      RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP6CONFIG_GETDATA_CONF3
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_CONF3
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get policy value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy failure (event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_CONF3
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Manual Address with valid value
+#
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
+
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+
+SetVar R_Context1 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
+                &@R_DoneEvent1, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+GetVar  R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData with valid value."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context1
+    if { $R_Context1 == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+
+      RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+      GetAck
+      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP6CONFIG_GETDATA_CONF3
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual address."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_CONF3
+  EndLog
+  return  
+}
+
+#
+# Check Point : Get Manual Address with datasize too small
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   16
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_BUFFER_TOO_SMALL]
+RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid001                   \
+                "Ip6Config.GetData - Call GetData with the datasize too small."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BUFFER_TOO_SMALL"
+
+GetVar R_Ip6ConfigDataSize
+set L_ObtainedSize [ expr { $R_Ip6ConfigDataSize } ]
+set L_DesiredSize [ Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS ]
+if { [ expr { $L_ObtainedSize % $L_DesiredSize } ] == 0 } {
+  set assert pass
+} else {
+  set assert fail
+}
+RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid002                   \
+                "Ip6Config.GetData - Correctly Modify the DataSize."            \
+                "ReturnSize - $L_ObtainedSize, ExpectedSize - $L_DesiredSize"
+
+#
+# Clean up
+#
+
+#
+# Set automatic policy (this will clean up all address information configured)
+#
+SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
+
+SetVar R_Context 0
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  set assert pass
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+
+      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+      GetAck
+
+      EndScope _IP6CONFIG_GETDATA_CONF3
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+
+  EndScope _IP6CONFIG_GETDATA_CONF3
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+
+  EndScope _IP6CONFIG_GETDATA_CONF3
+  EndLog
+  return
+}
+  
+RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+                
+#
+# Unregister Event for Manual Address and close event
+#
+SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+GetAck
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_GETDATA_CONF3
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
index e36cdfc..bd38be0 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
@@ -1,73 +1,73 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        F340A957-9345-478d-BE53-5F7C561C1866
-CaseName        GetData.Conf4.Case1
-CaseCategory    IP6Config
-CaseDescription {GetData must not succeed when data type is not found.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_GETDATA_CONF4
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-UINTN                            R_Ip6ConfigMaximumType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
-
-#
-# Check Point: Call Ip6Config->GetData with the date type not existing.
-#
-SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
-SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximumType,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
-RecordAssertion $assert $Ip6ConfigGetDataConf4AssertionGuid001                   \
-                "Ip6Config.GetData - Call GetData with Datatype not existing."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
-
-EndScope _IP6CONFIG_GETDATA_CONF4
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        F340A957-9345-478d-BE53-5F7C561C1866
+CaseName        GetData.Conf4.Case1
+CaseCategory    IP6Config
+CaseDescription {GetData must not succeed when data type is not found.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_GETDATA_CONF4
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+UINTN                            R_Ip6ConfigMaximumType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
+
+#
+# Check Point: Call Ip6Config->GetData with the date type not existing.
+#
+SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
+SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximumType,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $Ip6ConfigGetDataConf4AssertionGuid001                   \
+                "Ip6Config.GetData - Call GetData with Datatype not existing."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+EndScope _IP6CONFIG_GETDATA_CONF4
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
index c39323f..c186520 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
@@ -1,492 +1,492 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        6638523D-470B-4c50-AE75-DE0CE6854DE8
-CaseName        GetData.Conf5.Case1
-CaseCategory    IP6Config
-CaseDescription {GetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_GETDATA_CONF5
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Context1
-UINTN                            R_DoneEvent1
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_GETDATA_CONF5
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual policy."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_CONF5
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get policy value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
-  set assert pass
-} else {
-  set assert fail
-  	
-  RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_CONF5
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-#
-# Check Point: Call Ip6Config->SetData to set DadXmits 20
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
-
-SetVar R_Context1 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
-                &@R_DoneEvent1, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context1
-	if { $R_Context1 == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-
-		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_GETDATA_CONF5
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_CONF5
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
-if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
-  set assert pass
-} else {
-  set assert fail
-  	
-  RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_CONF5
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point : Set Manual Address with valid parameter
-#
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
-
-set L_ManualListLen    1
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
-SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_NOT_READY } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_CONF5
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
-
-#
-# Check Point : Get Manual Address with valid parameter before the former setting finishes
-#
-set L_ManualListLen    1
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_NOT_READY]
-RecordAssertion $assert $Ip6ConfigGetDataConf5AssertionGuid001                   \
-                "Ip6Config.SetData - Call GetData to get manual address before the former setting finishes."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
-
-#
-# Make sure the former configurations succeeds
-# (Eliminate the side-effect to other cases)
-#
-set i 0
-set L_TimeOut 30
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-GetVar R_Status
-set assert pass
-while { $R_Status == $EFI_NOT_READY } {
-  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-  GetAck
-  GetVar R_Status
-  if { $R_Status == $EFI_SUCCESS } {
-    break
-  } elseif { $i == $L_TimeOut } {
-    set assert fail
-		
-    RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - former SetData finishes."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-    GetAck
-    BS->CloseEvent {@R_DoneEvent,&@R_Status}
-    GetAck
-    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-    GetAck
-    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-    GetAck
-    EndScope _IP6CONFIG_GETDATA_CONF5
-    EndLog
-    return
-  }
-  incr i
-  Stall 1
-}
-RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - former SetData finishes."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-
-
-#
-# Set automatic policy (this will clean up all address information configured)
-#
-SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
-
-SetVar R_Context 0
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  set assert pass
-  while { 1 > 0 } {
-       GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		
-              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-		GetAck
-		
-		EndScope _IP6CONFIG_GETDATA_CONF5
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-		
-  EndScope _IP6CONFIG_GETDATA_CONF5
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
-  set assert pass
-} else {
-  set assert fail
-  	
-  RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-                
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-		
-  EndScope _IP6CONFIG_GETDATA_CONF5
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_GETDATA_CONF5
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        6638523D-470B-4c50-AE75-DE0CE6854DE8
+CaseName        GetData.Conf5.Case1
+CaseCategory    IP6Config
+CaseDescription {GetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_GETDATA_CONF5
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Context1
+UINTN                            R_DoneEvent1
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_GETDATA_CONF5
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_CONF5
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get policy value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
+  set assert pass
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_CONF5
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+#
+# Check Point: Call Ip6Config->SetData to set DadXmits 20
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
+
+SetVar R_Context1 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
+                &@R_DoneEvent1, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context1
+	if { $R_Context1 == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_GETDATA_CONF5
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_CONF5
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
+if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
+  set assert pass
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_CONF5
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Manual Address with valid parameter
+#
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
+
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_NOT_READY } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_CONF5
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
+
+#
+# Check Point : Get Manual Address with valid parameter before the former setting finishes
+#
+set L_ManualListLen    1
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_READY]
+RecordAssertion $assert $Ip6ConfigGetDataConf5AssertionGuid001                   \
+                "Ip6Config.SetData - Call GetData to get manual address before the former setting finishes."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
+
+#
+# Make sure the former configurations succeeds
+# (Eliminate the side-effect to other cases)
+#
+set i 0
+set L_TimeOut 30
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+GetVar R_Status
+set assert pass
+while { $R_Status == $EFI_NOT_READY } {
+  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+  GetAck
+  GetVar R_Status
+  if { $R_Status == $EFI_SUCCESS } {
+    break
+  } elseif { $i == $L_TimeOut } {
+    set assert fail
+		
+    RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - former SetData finishes."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+    GetAck
+    BS->CloseEvent {@R_DoneEvent,&@R_Status}
+    GetAck
+    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+    GetAck
+    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+    GetAck
+    EndScope _IP6CONFIG_GETDATA_CONF5
+    EndLog
+    return
+  }
+  incr i
+  Stall 1
+}
+RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - former SetData finishes."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+
+
+#
+# Set automatic policy (this will clean up all address information configured)
+#
+SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
+
+SetVar R_Context 0
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  set assert pass
+  while { 1 > 0 } {
+       GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		
+              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+		GetAck
+		
+		EndScope _IP6CONFIG_GETDATA_CONF5
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+		
+  EndScope _IP6CONFIG_GETDATA_CONF5
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
+  set assert pass
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+                
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+		
+  EndScope _IP6CONFIG_GETDATA_CONF5
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_GETDATA_CONF5
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
index 6c4a72b..a0acc20 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
@@ -1,272 +1,272 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         FUNCTION
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        E4CD5B45-9CF5-4938-A243-7764F1E8CDE9
-CaseName        GetData.Func1.Case1
-CaseCategory    IP6Config
-CaseDescription {GetData must succeed with valid parameters.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_GETDATA_FUNC1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_Context1
-UINTN                            R_DoneEvent
-UINTN                            R_DoneEvent1
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->GetData to set AltInterfaceId
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
-SetVar R_Ip6ConfigInterfaceId.Id(0) 0
-SetVar R_Ip6ConfigInterfaceId.Id(1) 1
-SetVar R_Ip6ConfigInterfaceId.Id(2) 2
-SetVar R_Ip6ConfigInterfaceId.Id(3) 3
-SetVar R_Ip6ConfigInterfaceId.Id(4) 4
-SetVar R_Ip6ConfigInterfaceId.Id(5) 5
-SetVar R_Ip6ConfigInterfaceId.Id(6) 6
-SetVar R_Ip6ConfigInterfaceId.Id(7) 7
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid        \
-                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_GETDATA_FUNC1
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_FUNC1
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid001        \
-                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigInterfaceId
-if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
-  set assert pass
-} else {
-  set assert fail
-}
-RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid002        \
-                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point: Call Ip6Config->SetData to set DadXmits
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
-
-SetVar R_Context1 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
-                &@R_DoneEvent1, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.GetData - Call GetData to set DadXmits."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context1
-	if { $R_Context1 == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_GETDATA_FUNC1
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.GetData - Call GetData to set manual DadXmits."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status" 
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_GETDATA_FUNC1
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid003        \
-                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigDadTransmits
-if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
-  set assert pass
-} else {
-  set assert fail
-}
-RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid004        \
-                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
-
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_GETDATA_FUNC1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         FUNCTION
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        E4CD5B45-9CF5-4938-A243-7764F1E8CDE9
+CaseName        GetData.Func1.Case1
+CaseCategory    IP6Config
+CaseDescription {GetData must succeed with valid parameters.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_GETDATA_FUNC1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_Context1
+UINTN                            R_DoneEvent
+UINTN                            R_DoneEvent1
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->GetData to set AltInterfaceId
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
+SetVar R_Ip6ConfigInterfaceId.Id(0) 0
+SetVar R_Ip6ConfigInterfaceId.Id(1) 1
+SetVar R_Ip6ConfigInterfaceId.Id(2) 2
+SetVar R_Ip6ConfigInterfaceId.Id(3) 3
+SetVar R_Ip6ConfigInterfaceId.Id(4) 4
+SetVar R_Ip6ConfigInterfaceId.Id(5) 5
+SetVar R_Ip6ConfigInterfaceId.Id(6) 6
+SetVar R_Ip6ConfigInterfaceId.Id(7) 7
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid        \
+                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_GETDATA_FUNC1
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_FUNC1
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid001        \
+                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigInterfaceId
+if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
+  set assert pass
+} else {
+  set assert fail
+}
+RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid002        \
+                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point: Call Ip6Config->SetData to set DadXmits
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
+
+SetVar R_Context1 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
+                &@R_DoneEvent1, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.GetData - Call GetData to set DadXmits."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context1
+	if { $R_Context1 == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_GETDATA_FUNC1
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.GetData - Call GetData to set manual DadXmits."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status" 
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_GETDATA_FUNC1
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid003        \
+                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigDadTransmits
+if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
+  set assert pass
+} else {
+  set assert fail
+}
+RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid004        \
+                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
+
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_GETDATA_FUNC1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
index 918038d..9e162e7 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
@@ -1,96 +1,96 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-if {[info exist IP6CONFIG_INC] == 1} {
-  return
-}
-set IP6CONFIG_INC 1
-
-Include Include/EntsProtocolTest.inc.tcl
-Include Include/EntsConfigure.tcl
-Include Include/EfiBootService.inc.tcl
-Include Include/EfiGenericService.inc.tcl
-Include EfiUtil/EfiInclude.tcl
-
-Include IP6/Include/Ip6.inc.tcl
-Include IP6Config/Include/Ip6ConfigDefine.tcl
-Include IP6Config/Include/Ip6Config.proc.tcl
-Include IP6Config/Include/Ip6ConfigAssertionGuid.tcl
-Include Include/GenericAssertionGuid.tcl
-
-###################################################################
-# Function Declaration
-###################################################################
-Func Ip6Config->SetData {
-    UINT32
-    UINTN
-    POINTER
-    POINTER
-}
-
-Func Ip6Config->GetData {
-    UINT32
-    POINTER
-    POINTER
-    POINTER
-}
-
-Func Ip6Config->RegisterDataNotify {
-    UINT32
-    UINTN
-    POINTER
-}
-
-Func Ip6Config->UnregisterDataNotify {
-    UINT32
-    UINTN
-    POINTER
-}
-
-
-###################################################################
-# EFI_IP6_CONFIG_INTERFACE_INFO
-###################################################################
-Struct EFI_IP6_CONFIG_INTERFACE_INFO {
-  CHAR16                Name(32);
-  UINT8                 IfType;
-  UINT32                HwAddressSize;
-  EFI_MAC_ADDRESS       HwAddress;
-  UINT32                AddressInfoCount;
-  POINTER               AddressInfo;
-  UINT32                RouteCount;
-  POINTER               RouteTable;
-}
-
-###################################################################
-# EFI_IP6_CONFIG_INTERFACE_ID
-###################################################################
-Struct EFI_IP6_CONFIG_INTERFACE_ID {
-  UINT8                 Id(8);
-}
-
-###################################################################
-# EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
-###################################################################
-Struct EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS {
-  UINT32                DupAddrDetectTransmits;
-}
-
-###################################################################
-# EFI_IP6_CONFIG_MANUAL_ADDRESS
-###################################################################
-Struct EFI_IP6_CONFIG_MANUAL_ADDRESS {
-  EFI_IPv6_ADDRESS      Address;
-  BOOLEAN               IsAnycast;
-  UINT8                 PrefixLength;
-}
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+if {[info exist IP6CONFIG_INC] == 1} {
+  return
+}
+set IP6CONFIG_INC 1
+
+Include Include/EntsProtocolTest.inc.tcl
+Include Include/EntsConfigure.tcl
+Include Include/EfiBootService.inc.tcl
+Include Include/EfiGenericService.inc.tcl
+Include EfiUtil/EfiInclude.tcl
+
+Include IP6/Include/Ip6.inc.tcl
+Include IP6Config/Include/Ip6ConfigDefine.tcl
+Include IP6Config/Include/Ip6Config.proc.tcl
+Include IP6Config/Include/Ip6ConfigAssertionGuid.tcl
+Include Include/GenericAssertionGuid.tcl
+
+###################################################################
+# Function Declaration
+###################################################################
+Func Ip6Config->SetData {
+    UINT32
+    UINTN
+    POINTER
+    POINTER
+}
+
+Func Ip6Config->GetData {
+    UINT32
+    POINTER
+    POINTER
+    POINTER
+}
+
+Func Ip6Config->RegisterDataNotify {
+    UINT32
+    UINTN
+    POINTER
+}
+
+Func Ip6Config->UnregisterDataNotify {
+    UINT32
+    UINTN
+    POINTER
+}
+
+
+###################################################################
+# EFI_IP6_CONFIG_INTERFACE_INFO
+###################################################################
+Struct EFI_IP6_CONFIG_INTERFACE_INFO {
+  CHAR16                Name(32);
+  UINT8                 IfType;
+  UINT32                HwAddressSize;
+  EFI_MAC_ADDRESS       HwAddress;
+  UINT32                AddressInfoCount;
+  POINTER               AddressInfo;
+  UINT32                RouteCount;
+  POINTER               RouteTable;
+}
+
+###################################################################
+# EFI_IP6_CONFIG_INTERFACE_ID
+###################################################################
+Struct EFI_IP6_CONFIG_INTERFACE_ID {
+  UINT8                 Id(8);
+}
+
+###################################################################
+# EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
+###################################################################
+Struct EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS {
+  UINT32                DupAddrDetectTransmits;
+}
+
+###################################################################
+# EFI_IP6_CONFIG_MANUAL_ADDRESS
+###################################################################
+Struct EFI_IP6_CONFIG_MANUAL_ADDRESS {
+  EFI_IPv6_ADDRESS      Address;
+  BOOLEAN               IsAnycast;
+  UINT8                 PrefixLength;
+}
+
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
index de40066..f2a2dda 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
@@ -1,16 +1,16 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-if {[info exist IP6CONFIG_PROC] == 1} {
-  return
-}
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+if {[info exist IP6CONFIG_PROC] == 1} {
+  return
+}
 set IP6CONFIG_PROC 1
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
index 9356240..da69bf9 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
@@ -1,84 +1,96 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-#
-# Guid for SetData() interface
-#
-set Ip6ConfigSetDataConf1AssertionGuid001  7A224CCE-B79B-472a-9B8C-A47E074D5EEF
-set Ip6ConfigSetDataConf2AssertionGuid001  46F12872-61F2-46e4-A2F9-5F685B419479
-set Ip6ConfigSetDataConf2AssertionGuid002  1CAC93D3-732A-4e30-894D-EE63B6F486A0
-set Ip6ConfigSetDataConf2AssertionGuid003  D005EBF3-CFD6-498a-9005-C2B3702EB4FC
-set Ip6ConfigSetDataConf2AssertionGuid004  389806D5-4506-4319-8D17-9B4FC9D97E25
-set Ip6ConfigSetDataConf2AssertionGuid005  5AEFDB0C-322F-49c3-9DD2-DFE21B66B308
-set Ip6ConfigSetDataConf2AssertionGuid006  D339988F-2595-4fb5-81AE-A94DC470B234
-set Ip6ConfigSetDataConf3AssertionGuid001  4319A43B-7641-47c0-84BB-985C479902A2
-set Ip6ConfigSetDataConf4AssertionGuid001  01F3B344-EB52-4086-B949-55D7E4DC5BDE
-set Ip6ConfigSetDataConf4AssertionGuid002  F612AF26-2519-497c-B205-37A2914AEE05
-set Ip6ConfigSetDataConf4AssertionGuid003  592C1F3D-249E-4654-B4B1-600421624DD1
-set Ip6ConfigSetDataConf5AssertionGuid001  D70BEC29-8026-4e1b-BA8B-36A313B45859
-set Ip6ConfigSetDataConf5AssertionGuid002  FE793490-53F8-4991-8348-E624530E83E9
-set Ip6ConfigSetDataConf5AssertionGuid003  42CCB2EF-D706-4d1a-B247-F42BBA99F707
-set Ip6ConfigSetDataConf5AssertionGuid004  9168CB20-C891-42da-BB9F-7ADBE488B012
-set Ip6ConfigSetDataConf5AssertionGuid005  AD058D87-1015-4b2d-A351-5BD4B0930B7B
-set Ip6ConfigSetDataConf5AssertionGuid006  388BE3F6-D63E-4cbf-A3D9-3D941823259B
-set Ip6ConfigSetDataConf6AssertionGuid001  2886BAE1-383A-400f-8F88-66376B2A0FF5
-set Ip6ConfigSetDataConf7AssertionGuid001  D2C61F06-8822-4a09-89A1-7F0667FCAF0E
-set Ip6ConfigSetDataFunc1AssertionGuid001  0A5902DA-4142-4494-AC66-2B731FFEA671
-set Ip6ConfigSetDataFunc1AssertionGuid002  D9A9EF5E-D819-49d0-BB12-25ADEC52DDB3
-set Ip6ConfigSetDataFunc1AssertionGuid003  14E96019-0815-4486-916C-E440E166628E
-set Ip6ConfigSetDataFunc1AssertionGuid004  3458BBE0-0D7E-48ec-B380-2A885F44E104
-
-
-#
-# Guid for GetData() interface
-#
-set Ip6ConfigGetDataConf1AssertionGuid001  D15E421D-6228-4fea-8D5A-330FFF3F80D2
-set Ip6ConfigGetDataConf2AssertionGuid001  38B36C04-12E9-4e96-B24F-C453851E6C1D
-set Ip6ConfigGetDataConf3AssertionGuid001  D05A6C59-617F-4549-9659-4E0CFC3C3336
-set Ip6ConfigGetDataConf3AssertionGuid002  ED45C2FE-9EC1-4553-AFA4-771E9D4F7611
-set Ip6ConfigGetDataConf4AssertionGuid001  59118C46-2F2A-4029-ABD6-767418920369
-set Ip6ConfigGetDataConf5AssertionGuid001  55955D09-C806-4777-9FF0-95C00E79AC28
-set Ip6ConfigGetDataFunc1AssertionGuid001  FEAAC1A0-95BD-4dcb-91C3-9F08504BEFA1
-set Ip6ConfigGetDataFunc1AssertionGuid002  3649D729-D6D0-456e-84AE-C7E7B8464343
-set Ip6ConfigGetDataFunc1AssertionGuid003  165E79B4-C987-4100-8AA2-8AB115B07FAD
-set Ip6ConfigGetDataFunc1AssertionGuid004  DB420311-17F7-40cf-A0B1-0294D5DCCC92
-
-#
-# Guid for RegisterDataNotify() interface
-#
-set Ip6ConfigRegisterDataNotifyConf1AssertionGuid001  7E3F6157-EC75-4ecd-A79B-4926F3AA1C0D
-set Ip6ConfigRegisterDataNotifyConf2AssertionGuid001  70DC8C71-C54D-4446-8AD9-BAC086E43D17
-set Ip6ConfigRegisterDataNotifyConf3AssertionGuid001  2D88F18B-0BEF-4616-BDE5-CA4E0086E1D3
-set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001  9A98DC85-D018-45aa-B851-34EE2F6716D4
-set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002  39F7FB37-9F9F-485e-8DBC-0F3191DA9909
-set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003  D13DA599-37E7-474a-9343-83C9EFE80893
-set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004  5428BDD5-4332-4e3b-841F-3E60540AA35D
-set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005  1844A7C8-730C-4927-8E02-CE0A6CA08DCC
-set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006  B0E66591-9076-48e3-8DF6-2A1D59A572DB
-
-
-#
-# Guid for UnregisterDataNotify() interface
-#
-set Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001  8AB0E5A2-A4E1-4282-87B5-E377C763AD2F
-set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001  5C68228F-AAAE-4d0b-9927-7664476EF360
-set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002  55D8193E-F58E-4800-924B-73C902098DD8
-set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001  42EB4628-8DF6-4704-81E5-F7EAE6CBB270
-set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002  174CEC07-E573-434b-8E99-77F8AE9C55B5
-set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid003  1F5EF1AF-8A19-48d6-831F-51BE00B32AA5
-set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid004  388C8838-7790-4a1f-9DB7-5017D7AA60DB
-
-
-
-
-
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+#
+# Guid for SetData() interface
+#
+set Ip6ConfigSetDataConf1AssertionGuid001  7A224CCE-B79B-472a-9B8C-A47E074D5EEF
+set Ip6ConfigSetDataConf2AssertionGuid001  46F12872-61F2-46e4-A2F9-5F685B419479
+set Ip6ConfigSetDataConf2AssertionGuid002  1CAC93D3-732A-4e30-894D-EE63B6F486A0
+set Ip6ConfigSetDataConf2AssertionGuid003  D005EBF3-CFD6-498a-9005-C2B3702EB4FC
+set Ip6ConfigSetDataConf2AssertionGuid004  389806D5-4506-4319-8D17-9B4FC9D97E25
+set Ip6ConfigSetDataConf2AssertionGuid005  5AEFDB0C-322F-49c3-9DD2-DFE21B66B308
+set Ip6ConfigSetDataConf2AssertionGuid006  D339988F-2595-4fb5-81AE-A94DC470B234
+set Ip6ConfigSetDataConf3AssertionGuid001  4319A43B-7641-47c0-84BB-985C479902A2
+set Ip6ConfigSetDataConf4AssertionGuid001  01F3B344-EB52-4086-B949-55D7E4DC5BDE
+set Ip6ConfigSetDataConf4AssertionGuid002  F612AF26-2519-497c-B205-37A2914AEE05
+set Ip6ConfigSetDataConf4AssertionGuid003  592C1F3D-249E-4654-B4B1-600421624DD1
+set Ip6ConfigSetDataConf5AssertionGuid001  D70BEC29-8026-4e1b-BA8B-36A313B45859
+set Ip6ConfigSetDataConf5AssertionGuid002  FE793490-53F8-4991-8348-E624530E83E9
+set Ip6ConfigSetDataConf5AssertionGuid003  42CCB2EF-D706-4d1a-B247-F42BBA99F707
+set Ip6ConfigSetDataConf5AssertionGuid004  9168CB20-C891-42da-BB9F-7ADBE488B012
+set Ip6ConfigSetDataConf5AssertionGuid005  AD058D87-1015-4b2d-A351-5BD4B0930B7B
+set Ip6ConfigSetDataConf5AssertionGuid006  388BE3F6-D63E-4cbf-A3D9-3D941823259B
+set Ip6ConfigSetDataConf6AssertionGuid001  2886BAE1-383A-400f-8F88-66376B2A0FF5
+set Ip6ConfigSetDataConf7AssertionGuid001  D2C61F06-8822-4a09-89A1-7F0667FCAF0E
+set Ip6ConfigSetDataFunc1AssertionGuid001  0A5902DA-4142-4494-AC66-2B731FFEA671
+set Ip6ConfigSetDataFunc1AssertionGuid002  D9A9EF5E-D819-49d0-BB12-25ADEC52DDB3
+set Ip6ConfigSetDataFunc1AssertionGuid003  14E96019-0815-4486-916C-E440E166628E
+set Ip6ConfigSetDataFunc1AssertionGuid004  3458BBE0-0D7E-48ec-B380-2A885F44E104
+
+set Ip6ConfigSetDataFunc2AssertionGuid001  B533A7CF-6C27-421A-A816-B075E7EA4573
+set Ip6ConfigSetDataFunc2AssertionGuid002  C816C0EE-52C0-400E-A9CC-25C263E27B04
+set Ip6ConfigSetDataFunc2AssertionGuid003  2CF2435A-C444-4E09-BC8A-56A6F33CED9C
+set Ip6ConfigSetDataFunc2AssertionGuid004  3B673875-4CE8-4F23-8FE1-E440376604FD
+set Ip6ConfigSetDataFunc2AssertionGuid005  05B7BF41-9CE9-481B-B9A4-2E83AD5E89E3
+set Ip6ConfigSetDataFunc2AssertionGuid006  4D49A668-A44D-4D69-9F20-40B7F147988E
+set Ip6ConfigSetDataFunc2AssertionGuid007  23000969-DFDE-4B04-AD44-0844D595AA66
+set Ip6ConfigSetDataFunc2AssertionGuid008  E444B75C-B559-48C4-8D15-8F882AC7F81E
+set Ip6ConfigSetDataFunc2AssertionGuid009  AC649D07-2063-4045-9DAE-29B4E38E46BB
+set Ip6ConfigSetDataFunc2AssertionGuid010  4EDBB740-405F-4E6D-A4A5-D77122D16278
+set Ip6ConfigSetDataFunc2AssertionGuid011  D131A6D9-CCAB-4460-8402-80ED252FEB09
+set Ip6ConfigSetDataFunc2AssertionGuid012  A5D75088-D8D3-47DD-A623-F6098DF70546
+
+#
+# Guid for GetData() interface
+#
+set Ip6ConfigGetDataConf1AssertionGuid001  D15E421D-6228-4fea-8D5A-330FFF3F80D2
+set Ip6ConfigGetDataConf2AssertionGuid001  38B36C04-12E9-4e96-B24F-C453851E6C1D
+set Ip6ConfigGetDataConf3AssertionGuid001  D05A6C59-617F-4549-9659-4E0CFC3C3336
+set Ip6ConfigGetDataConf3AssertionGuid002  ED45C2FE-9EC1-4553-AFA4-771E9D4F7611
+set Ip6ConfigGetDataConf4AssertionGuid001  59118C46-2F2A-4029-ABD6-767418920369
+set Ip6ConfigGetDataConf5AssertionGuid001  55955D09-C806-4777-9FF0-95C00E79AC28
+set Ip6ConfigGetDataFunc1AssertionGuid001  FEAAC1A0-95BD-4dcb-91C3-9F08504BEFA1
+set Ip6ConfigGetDataFunc1AssertionGuid002  3649D729-D6D0-456e-84AE-C7E7B8464343
+set Ip6ConfigGetDataFunc1AssertionGuid003  165E79B4-C987-4100-8AA2-8AB115B07FAD
+set Ip6ConfigGetDataFunc1AssertionGuid004  DB420311-17F7-40cf-A0B1-0294D5DCCC92
+
+#
+# Guid for RegisterDataNotify() interface
+#
+set Ip6ConfigRegisterDataNotifyConf1AssertionGuid001  7E3F6157-EC75-4ecd-A79B-4926F3AA1C0D
+set Ip6ConfigRegisterDataNotifyConf2AssertionGuid001  70DC8C71-C54D-4446-8AD9-BAC086E43D17
+set Ip6ConfigRegisterDataNotifyConf3AssertionGuid001  2D88F18B-0BEF-4616-BDE5-CA4E0086E1D3
+set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001  9A98DC85-D018-45aa-B851-34EE2F6716D4
+set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002  39F7FB37-9F9F-485e-8DBC-0F3191DA9909
+set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003  D13DA599-37E7-474a-9343-83C9EFE80893
+set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004  5428BDD5-4332-4e3b-841F-3E60540AA35D
+set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005  1844A7C8-730C-4927-8E02-CE0A6CA08DCC
+set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006  B0E66591-9076-48e3-8DF6-2A1D59A572DB
+
+
+#
+# Guid for UnregisterDataNotify() interface
+#
+set Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001  8AB0E5A2-A4E1-4282-87B5-E377C763AD2F
+set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001  5C68228F-AAAE-4d0b-9927-7664476EF360
+set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002  55D8193E-F58E-4800-924B-73C902098DD8
+set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001  42EB4628-8DF6-4704-81E5-F7EAE6CBB270
+set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002  174CEC07-E573-434b-8E99-77F8AE9C55B5
+set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid003  1F5EF1AF-8A19-48d6-831F-51BE00B32AA5
+set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid004  388C8838-7790-4a1f-9DB7-5017D7AA60DB
+
+
+
+
+
+
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
index 0d78321..1fcd579 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
@@ -1,51 +1,51 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-if {[info exist IP6CONFIG_DEFINE] == 1} {
-  return
-}
-set IP6CONFIG_DEFINE 1
-
-#
-# EUT/ENTS Connection Definition
-#
-#set DEF_EUT_IP_ADDR   "2002:0000:0000:0000:0000:0000:0000:0001"
-#set DEF_EUT_MAC_ADDR  [GetTargetMac]
-#set DEF_EUT_PRT       0
-
-#set DEF_ENTS_IP_ADDR  "2002:0000:0000:0000:0000:0000:0000:4321"
-#set DEF_ENTS_MAC_ADDR [GetHostMac]
-#set DEF_ENTS_PRT      8888
-
-#
-# EFI_IP6_CONFIG_DATA_TYPE
-#
-set IP6CDT(InterfaceInfo) 0
-set IP6CDT(AltInterfaceId) 1
-set IP6CDT(Policy) 2
-set IP6CDT(DupAddrDetectTransmits) 3
-set IP6CDT(ManualAddress) 4
-set IP6CDT(Gateway) 5
-set IP6CDT(DnsServer) 6
-set IP6CDT(Maximum) 7
-
-#
-# EFI_IP6_CONFIG_POLICY
-#
-set IP6CP(Manual) 0
-set IP6CP(Automatic) 1
-
-#
-# Timers
-#
-set i 0
-set L_TimeOut 30
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+if {[info exist IP6CONFIG_DEFINE] == 1} {
+  return
+}
+set IP6CONFIG_DEFINE 1
+
+#
+# EUT/ENTS Connection Definition
+#
+#set DEF_EUT_IP_ADDR   "2002:0000:0000:0000:0000:0000:0000:0001"
+#set DEF_EUT_MAC_ADDR  [GetTargetMac]
+#set DEF_EUT_PRT       0
+
+#set DEF_ENTS_IP_ADDR  "2002:0000:0000:0000:0000:0000:0000:4321"
+#set DEF_ENTS_MAC_ADDR [GetHostMac]
+#set DEF_ENTS_PRT      8888
+
+#
+# EFI_IP6_CONFIG_DATA_TYPE
+#
+set IP6CDT(InterfaceInfo) 0
+set IP6CDT(AltInterfaceId) 1
+set IP6CDT(Policy) 2
+set IP6CDT(DupAddrDetectTransmits) 3
+set IP6CDT(ManualAddress) 4
+set IP6CDT(Gateway) 5
+set IP6CDT(DnsServer) 6
+set IP6CDT(Maximum) 7
+
+#
+# EFI_IP6_CONFIG_POLICY
+#
+set IP6CP(Manual) 0
+set IP6CP(Automatic) 1
+
+#
+# Timers
+#
+set i 0
+set L_TimeOut 30
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
index f8a97a1..aa60cb8 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
@@ -1,90 +1,90 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        F76B637C-BA5F-4451-8DF4-A13E1CCAB3A0
-CaseName        RegisterDataNotify.Conf1.Case1
-CaseCategory    IP6Config
-CaseDescription {RegisterDataNotify must not succeed when event is NULL.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point: Call Ip6Config->RegisterDataNotify with event NULL
-#
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf1AssertionGuid001     \
-                "Ip6Config.RegisterDataNotify - Register notification event with the event NULL."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-#
-# Clean up
-#
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        F76B637C-BA5F-4451-8DF4-A13E1CCAB3A0
+CaseName        RegisterDataNotify.Conf1.Case1
+CaseCategory    IP6Config
+CaseDescription {RegisterDataNotify must not succeed when event is NULL.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point: Call Ip6Config->RegisterDataNotify with event NULL
+#
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf1AssertionGuid001     \
+                "Ip6Config.RegisterDataNotify - Register notification event with the event NULL."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+#
+# Clean up
+#
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
index 3e72249..38b7431 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
@@ -1,90 +1,90 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        E5221141-97BC-4e5f-9ABA-304BB11EADA0
-CaseName        RegisterDataNotify.Conf2.Case1
-CaseCategory    IP6Config
-CaseDescription {RegisterDataNotify must not succeed when data type is not supported.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-UINTN                            R_Ip6ConfigDataTypeMaximum
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Maximum)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINTN]
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point: Call Ip6Config->RegisterDataNotify with the datatype not supported
-#
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf2AssertionGuid001     \
-                "Ip6Config.RegisterDataNotify - Register notification event with the data type not supported."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
-
-#
-# Clean up
-#
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        E5221141-97BC-4e5f-9ABA-304BB11EADA0
+CaseName        RegisterDataNotify.Conf2.Case1
+CaseCategory    IP6Config
+CaseDescription {RegisterDataNotify must not succeed when data type is not supported.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+UINTN                            R_Ip6ConfigDataTypeMaximum
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Maximum)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINTN]
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point: Call Ip6Config->RegisterDataNotify with the datatype not supported
+#
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf2AssertionGuid001     \
+                "Ip6Config.RegisterDataNotify - Register notification event with the data type not supported."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
+
+#
+# Clean up
+#
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
index 8c8363c..77d9ef5 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
@@ -1,109 +1,109 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        B00EBD2E-F23E-434e-80E8-2A17C3BCFDFE
-CaseName        RegisterDataNotify.Conf3.Case1
-CaseCategory    IP6Config
-CaseDescription {RegisterDataNotify must not succeed when event has already registered.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point: Call Ip6Config->RegisterDataNotify with valid parameters
-#
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event with valid parameters."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-#
-# Check Point : Call RegisterDataNotify() with the same event (has been registered)
-#
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf3AssertionGuid001     \
-                "Ip6Config.RegisterDataNotify - Register notification event with the event registered already."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
-
-
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        B00EBD2E-F23E-434e-80E8-2A17C3BCFDFE
+CaseName        RegisterDataNotify.Conf3.Case1
+CaseCategory    IP6Config
+CaseDescription {RegisterDataNotify must not succeed when event has already registered.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point: Call Ip6Config->RegisterDataNotify with valid parameters
+#
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event with valid parameters."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+#
+# Check Point : Call RegisterDataNotify() with the same event (has been registered)
+#
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf3AssertionGuid001     \
+                "Ip6Config.RegisterDataNotify - Register notification event with the event registered already."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
+
+
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
index 38be04c..b2b777c 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
@@ -1,539 +1,539 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         FUNCTION
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        7D041B9B-4F68-434a-A0C6-63FDC415D078
-CaseName        RegisterDataNotify.Func1.Case1
-CaseCategory    IP6Config
-CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on one data type.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Context1
-UINTN                            R_DoneEvent1
-UINTN                            R_Context2
-UINTN                            R_DoneEvent2
-UINTN                            R_Ip6ConfigDataSize
-UINT32                           R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                           R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-    if { $R_Context == 1 } {
-      break
-    } elseif { $i == $L_TimeOut } {
-      set assert fail
-      RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent,&@R_Status}
-      GetAck
-      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-      EndLog
-      return
-    }
-    incr i
-    Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                  "Ip6Config.SetData - Call SetData to set manual policy."            \
-                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                        "Ip6Config.GetData - Call GetData to get policy value."        \
-                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid        \
-                  "Set manual policy succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                "Set manual policy succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point: Call Ip6Config->SetData to set DadXmits 0
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    0
-
-SetVar R_Context1 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
-                &@R_DoneEvent1, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                 "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
-                 "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context1
-    if { $R_Context1 == 1 } {
-      break
-    } elseif { $i == $L_TimeOut } {
-      set assert fail
-      RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent,&@R_Status}
-      GetAck
-      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-      GetAck
-      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-      EndLog
-      return
-    }
-    incr i
-    Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                  "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
-                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-               
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                "Ip6Config.GetData - Call GetData to get DadXmits value."        \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
-if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 0 } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid        \
-                  "Set DadXmits succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                "Set DadXmits succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point : Set Manual Address with valid parameter
-#
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
-
-set L_ManualListLen    1
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
-SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
-#
-# Register Event for Manual Address
-#
-SetVar R_Context2 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context2,\
-                &@R_DoneEvent2, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                  "Ip6Config.SetData - Call SetData to set manual address."            \
-                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context2
-    if { $R_Context2 == 1 } {
-      break
-    } elseif { $i == $L_TimeOut } {
-      set assert fail
-      RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent,&@R_Status}
-      GetAck
-      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-      GetAck
-      SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
-      GetAck
-      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-      EndLog
-      return
-    }
-    incr i
-    Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                  "Ip6Config.SetData - Call SetData to set manual address."            \
-                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-  EndLog
-  return
-}
-
-#
-# Check Events for registered datatype
-#
-GetVar R_Context2
-if { $R_Context2 == 1 } {
-  set assert pass 
-} else {
-  set assert fail
-}
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002     \
-                "Ip6Config.RegisterDataNotify - Registered event is signaled."
-
-#
-# GetData to verfiy the data setting
-#
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                "Ip6Config.GetData - Call GetData to get manual address."        \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-GetVar R_Ip6ConfigManualAddress.IsAnycast
-if { ${R_Ip6ConfigManualAddress.IsAnycast} == FALSE } {
-  set assert pass
-} else {
-  set assert fail
-}
-GetVar R_Ip6ConfigManualAddress.PrefixLength
-if { ${R_Ip6ConfigManualAddress.PrefixLength} == 64 } {
-  set assert pass
-} else {
-  set assert fail
-}
-GetVar R_Ip6ConfigManualAddress.Address
-set L_ManualAddress "2002:0000:0000:0000:0000:0000:0000:5000"
-set L_RemoteAddress [ GetIpv6Address {R_Ip6ConfigManualAddress.Address} ]
-if { [ string compare $L_RemoteAddress $L_ManualAddress ] == 0 } {
-  set assert pass
-} else {
-  set assert fail
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
-
-#
-# Set automatic policy (this will clean up all address information configured)
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
-
-SetVar R_Context 0
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  set assert pass
-  while { 1 > 0 } {
-    GetVar R_Context
-    if { $R_Context == 1 } {
-      break
-    } elseif { $i == $L_TimeOut } {
-      set assert fail
-
-      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent,&@R_Status}
-      GetAck
-      SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-      GetAck
-      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
-      GetAck
-      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
-      GetAck
-
-      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-      EndLog
-      return
-    }
-    incr i
-    Stall 1
-  }
-} else {
-  set assert fail
-
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
-  GetAck
-
-  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
-  set assert pass
-} else {
-  set assert fail
-}
-  
-RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-                
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-                
-BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-GetAck
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-BS->CloseEvent {@R_DoneEvent2,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         FUNCTION
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        7D041B9B-4F68-434a-A0C6-63FDC415D078
+CaseName        RegisterDataNotify.Func1.Case1
+CaseCategory    IP6Config
+CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on one data type.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Context1
+UINTN                            R_DoneEvent1
+UINTN                            R_Context2
+UINTN                            R_DoneEvent2
+UINTN                            R_Ip6ConfigDataSize
+UINT32                           R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                           R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                  "Ip6Config.SetData - Call SetData to set manual policy."            \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                        "Ip6Config.GetData - Call GetData to get policy value."        \
+                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid        \
+                  "Set manual policy succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                "Set manual policy succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point: Call Ip6Config->SetData to set DadXmits 0
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    0
+
+SetVar R_Context1 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
+                &@R_DoneEvent1, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                 "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
+                 "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context1
+    if { $R_Context1 == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+      GetAck
+      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                  "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+               
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                "Ip6Config.GetData - Call GetData to get DadXmits value."        \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
+if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 0 } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid        \
+                  "Set DadXmits succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                "Set DadXmits succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Manual Address with valid parameter
+#
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
+
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+#
+# Register Event for Manual Address
+#
+SetVar R_Context2 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context2,\
+                &@R_DoneEvent2, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                  "Ip6Config.SetData - Call SetData to set manual address."            \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context2
+    if { $R_Context2 == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+      RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+      GetAck
+      SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
+      GetAck
+      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                  "Ip6Config.SetData - Call SetData to set manual address."            \
+                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+  EndLog
+  return
+}
+
+#
+# Check Events for registered datatype
+#
+GetVar R_Context2
+if { $R_Context2 == 1 } {
+  set assert pass 
+} else {
+  set assert fail
+}
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002     \
+                "Ip6Config.RegisterDataNotify - Registered event is signaled."
+
+#
+# GetData to verfiy the data setting
+#
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                "Ip6Config.GetData - Call GetData to get manual address."        \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+GetVar R_Ip6ConfigManualAddress.IsAnycast
+if { ${R_Ip6ConfigManualAddress.IsAnycast} == FALSE } {
+  set assert pass
+} else {
+  set assert fail
+}
+GetVar R_Ip6ConfigManualAddress.PrefixLength
+if { ${R_Ip6ConfigManualAddress.PrefixLength} == 64 } {
+  set assert pass
+} else {
+  set assert fail
+}
+GetVar R_Ip6ConfigManualAddress.Address
+set L_ManualAddress "2002:0000:0000:0000:0000:0000:0000:5000"
+set L_RemoteAddress [ GetIpv6Address {R_Ip6ConfigManualAddress.Address} ]
+if { [ string compare $L_RemoteAddress $L_ManualAddress ] == 0 } {
+  set assert pass
+} else {
+  set assert fail
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
+
+#
+# Set automatic policy (this will clean up all address information configured)
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
+
+SetVar R_Context 0
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  set assert pass
+  while { 1 > 0 } {
+    GetVar R_Context
+    if { $R_Context == 1 } {
+      break
+    } elseif { $i == $L_TimeOut } {
+      set assert fail
+
+      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent,&@R_Status}
+      GetAck
+      SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+      GetAck
+      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
+      GetAck
+      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
+      GetAck
+
+      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+      EndLog
+      return
+    }
+    incr i
+    Stall 1
+  }
+} else {
+  set assert fail
+
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
+  GetAck
+
+  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
+  set assert pass
+} else {
+  set assert fail
+}
+  
+RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+                
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+                
+BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+GetAck
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+BS->CloseEvent {@R_DoneEvent2,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
index bd52067..6f7e51f 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
@@ -1,266 +1,266 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         FUNCTION
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        886AE98A-5D43-47b4-A339-85FB089F21FA
-CaseName        RegisterDataNotify.Func1.Case2
-CaseCategory    IP6Config
-CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on two data types.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                          R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
-#
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-GetVar R_Context
-set L_Context1 $R_Context
-set L_Context2 [expr { $L_Context1 + 1 }]
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-	if { $R_Context == $L_Context2 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-	    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual policy."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
-  EndLog
-  return
-}
-
-GetVar R_Context
-if { $R_Context == $L_Context2 } {
-  set assert pass
-} else {
-  set assert fail
-}
-
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005                   \
-               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - Policy."
-
-#
-# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
-
-GetVar R_Context
-set L_Context1 $R_Context
-set L_Context2 [expr { $L_Context1 + 1 }]
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-GetVar R_Status
-
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set DadXmits."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-       GetVar R_Context
-	if { $R_Context == $L_Context2 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-
-		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set DadXmits."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
-  EndLog
-  return
-}
-
-GetVar R_Context
-if { $R_Context == $L_Context2 } {
-  set assert pass
-} else {
-  set assert fail
-}
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006                   \
-               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - DadXmits."
-                
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         FUNCTION
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        886AE98A-5D43-47b4-A339-85FB089F21FA
+CaseName        RegisterDataNotify.Func1.Case2
+CaseCategory    IP6Config
+CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on two data types.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                          R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
+#
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+GetVar R_Context
+set L_Context1 $R_Context
+set L_Context2 [expr { $L_Context1 + 1 }]
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == $L_Context2 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+	    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
+  EndLog
+  return
+}
+
+GetVar R_Context
+if { $R_Context == $L_Context2 } {
+  set assert pass
+} else {
+  set assert fail
+}
+
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005                   \
+               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - Policy."
+
+#
+# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
+
+GetVar R_Context
+set L_Context1 $R_Context
+set L_Context2 [expr { $L_Context1 + 1 }]
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set DadXmits."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+       GetVar R_Context
+	if { $R_Context == $L_Context2 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set DadXmits."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
+  EndLog
+  return
+}
+
+GetVar R_Context
+if { $R_Context == $L_Context2 } {
+  set assert pass
+} else {
+  set assert fail
+}
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006                   \
+               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - DadXmits."
+                
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
index 2213ec9..8c33521 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
@@ -1,72 +1,72 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        EF4CCB73-577C-4b8c-96E3-91517F0B7056
-CaseName        SetData.Conf1.Case1
-CaseCategory    IP6Config
-CaseDescription {SetData must not succeed when data is NULL.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_SETDATA_CONF1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                           R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
-
-#
-# Check Point: Call Ip6Config->SetData with data is NULL.
-#
-SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
-SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,NULL,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigSetDataConf1AssertionGuid001                   \
-                "Ip6Config.SetData - Call SetData with Data NULL."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-EndScope _IP6CONFIG_SETDATA_CONF1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        EF4CCB73-577C-4b8c-96E3-91517F0B7056
+CaseName        SetData.Conf1.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData must not succeed when data is NULL.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_CONF1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                           R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
+
+#
+# Check Point: Call Ip6Config->SetData with data is NULL.
+#
+SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
+SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,NULL,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigSetDataConf1AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData with Data NULL."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+EndScope _IP6CONFIG_SETDATA_CONF1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
index f14a5bb..bbf7830 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
@@ -1,299 +1,299 @@
-# 
-#  Copyright 2006 - 2017 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        A9BBCC37-3ED5-4c11-B6B6-BE52A1131568
-CaseName        SetData.Conf2.Case1
-CaseCategory    IP6Config
-CaseDescription {SetData must not succeed when one or more fields in data is invalid.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_SETDATA_CONF2
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_SETDATA_CONF2
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual policy."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF2
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get policy value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF2
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point : Set Manual Address with "::"
-#
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
-
-set L_ManualListLen    1
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "::"
-SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid001                   \
-                "Ip6Config.SetData - Call SetData to set manual address (Not Unicast or Linklocal)."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-DelVar R_Ip6ConfigManualAddress
-
-#
-# Check Point : Set Manual Address with duplication of list entries
-#
-set L_ManualListLen    3
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress($L_ManualListLen)
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
-SetVar R_Ip6ConfigManualAddress(0) @R_Temp_Ip6ConfigManualAddress
-
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
-SetVar R_Ip6ConfigManualAddress(1) @R_Temp_Ip6ConfigManualAddress
-
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
-SetVar R_Ip6ConfigManualAddress(2) @R_Temp_Ip6ConfigManualAddress
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid002                   \
-                "Ip6Config.SetData - Call SetData to set manual address (duplication of list entries)."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-DelVar R_Ip6ConfigManualAddress
-
-#
-# Check Points : Set Gateway with "ff02::1" (multicast address)
-#
-set L_GatewayListLen   1
-EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
-EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
-set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-
-SetIpv6Address R_Temp_Ip6ConfigGateway "ff02::1"
-SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid003                   \
-                "Ip6Config.SetData - Call SetData to set gateway with multicast address."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-DelVar R_Ip6ConfigGateway
-
-#
-# Check Point : Set Gateway with duplication of list entries
-# 
-set L_GatewayListLen   3
-EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway($L_GatewayListLen)
-set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-
-SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
-SetVar R_Ip6ConfigGateway(0) @R_Temp_Ip6ConfigGateway
-SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
-SetVar R_Ip6ConfigGateway(1) @R_Temp_Ip6ConfigGateway
-SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
-SetVar R_Ip6ConfigGateway(2) @R_Temp_Ip6ConfigGateway
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid004                   \
-                "Ip6Config.SetData - Call SetData to set gateway with duplication of list entries."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-DelVar R_Ip6ConfigGateway
-
-#
-# Check Point : Set Dns Server with "ff02::1" (link local address)
-#
-set L_DnsServerListLen 1
-EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
-EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
-set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-
-SetIpv6Address R_Temp_Ip6ConfigDnsServer "ff02::1"
-SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid005                   \
-                "Ip6Config.SetData - Call SetData to set dns server with multicast address."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-DelVar R_Ip6ConfigDnsServer
-
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_SETDATA_CONF2
-
+# 
+#  Copyright 2006 - 2017 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        A9BBCC37-3ED5-4c11-B6B6-BE52A1131568
+CaseName        SetData.Conf2.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData must not succeed when one or more fields in data is invalid.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_CONF2
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_CONF2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF2
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get policy value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF2
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Manual Address with "::"
+#
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
+
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "::"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData to set manual address (Not Unicast or Linklocal)."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+DelVar R_Ip6ConfigManualAddress
+
+#
+# Check Point : Set Manual Address with duplication of list entries
+#
+set L_ManualListLen    3
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress($L_ManualListLen)
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
+SetVar R_Ip6ConfigManualAddress(0) @R_Temp_Ip6ConfigManualAddress
+
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
+SetVar R_Ip6ConfigManualAddress(1) @R_Temp_Ip6ConfigManualAddress
+
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
+SetVar R_Ip6ConfigManualAddress(2) @R_Temp_Ip6ConfigManualAddress
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid002                   \
+                "Ip6Config.SetData - Call SetData to set manual address (duplication of list entries)."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+DelVar R_Ip6ConfigManualAddress
+
+#
+# Check Points : Set Gateway with "ff02::1" (multicast address)
+#
+set L_GatewayListLen   1
+EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
+EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+SetIpv6Address R_Temp_Ip6ConfigGateway "ff02::1"
+SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid003                   \
+                "Ip6Config.SetData - Call SetData to set gateway with multicast address."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+DelVar R_Ip6ConfigGateway
+
+#
+# Check Point : Set Gateway with duplication of list entries
+# 
+set L_GatewayListLen   3
+EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway($L_GatewayListLen)
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
+SetVar R_Ip6ConfigGateway(0) @R_Temp_Ip6ConfigGateway
+SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
+SetVar R_Ip6ConfigGateway(1) @R_Temp_Ip6ConfigGateway
+SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
+SetVar R_Ip6ConfigGateway(2) @R_Temp_Ip6ConfigGateway
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid004                   \
+                "Ip6Config.SetData - Call SetData to set gateway with duplication of list entries."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+DelVar R_Ip6ConfigGateway
+
+#
+# Check Point : Set Dns Server with "ff02::1" (link local address)
+#
+set L_DnsServerListLen 1
+EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
+EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+SetIpv6Address R_Temp_Ip6ConfigDnsServer "ff02::1"
+SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid005                   \
+                "Ip6Config.SetData - Call SetData to set dns server with multicast address."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+DelVar R_Ip6ConfigDnsServer
+
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_SETDATA_CONF2
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
index 84a13c6..1cfc489 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
@@ -1,72 +1,72 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        2FCE7A2D-09F4-4c8e-97CD-68A0045E34B8
-CaseName        SetData.Conf3.Case1
-CaseCategory    IP6Config
-CaseDescription {SetData must not succeed when data is read-only type.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_SETDATA_CONF3
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
-
-#
-# Check Point: Call Ip6Config->SetData with data is read only.
-#
-SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
-SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
-RecordAssertion $assert $Ip6ConfigSetDataConf3AssertionGuid001                   \
-                "Ip6Config.SetData - Call SetData with data is read only."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
-
-EndScope _IP6CONFIG_SETDATA_CONF3
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        2FCE7A2D-09F4-4c8e-97CD-68A0045E34B8
+CaseName        SetData.Conf3.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData must not succeed when data is read-only type.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_CONF3
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
+
+#
+# Check Point: Call Ip6Config->SetData with data is read only.
+#
+SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
+SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
+RecordAssertion $assert $Ip6ConfigSetDataConf3AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData with data is read only."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
+
+EndScope _IP6CONFIG_SETDATA_CONF3
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
index 04235cc..597fdac 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
@@ -1,238 +1,238 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        D0A2D271-0BBF-4092-A61E-96FB23208DE0
-CaseName        SetData.Conf4.Case1
-CaseCategory    IP6Config
-CaseDescription {SetData must not succeed when data is not configurable in current policy.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_SETDATA_CONF4
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_SETDATA_CONF4
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual policy."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF4
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get policy value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF4
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point : Set Manual Address under automatic policy
-#
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
-
-set L_ManualListLen    1
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
-SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
-RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid001                   \
-                "Ip6Config.SetData - Call SetData to set manual address under automatic poilcy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
-
-DelVar R_Ip6ConfigManualAddress
-
-#
-# Check Points : Set Gateway under automatic policy
-#
-set L_GatewayListLen   1
-EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
-EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
-set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-
-SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
-SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
-RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid002                   \
-                "Ip6Config.SetData - Call SetData to set gateway under automatic policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
-
-DelVar R_Ip6ConfigGateway
-
-#
-# Check Point : Set Dns Server under automatic policy
-#
-set L_DnsServerListLen 1
-EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
-EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
-set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-
-SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5001"
-SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
-RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid003                   \
-                "Ip6Config.SetData - Call SetData to set dns server under automatic policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
-
-DelVar R_Ip6ConfigDnsServer
-
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_SETDATA_CONF4
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        D0A2D271-0BBF-4092-A61E-96FB23208DE0
+CaseName        SetData.Conf4.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData must not succeed when data is not configurable in current policy.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_CONF4
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_CONF4
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF4
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get policy value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF4
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Manual Address under automatic policy
+#
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
+
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
+RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData to set manual address under automatic poilcy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
+
+DelVar R_Ip6ConfigManualAddress
+
+#
+# Check Points : Set Gateway under automatic policy
+#
+set L_GatewayListLen   1
+EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
+EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
+SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
+RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid002                   \
+                "Ip6Config.SetData - Call SetData to set gateway under automatic policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
+
+DelVar R_Ip6ConfigGateway
+
+#
+# Check Point : Set Dns Server under automatic policy
+#
+set L_DnsServerListLen 1
+EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
+EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5001"
+SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
+RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid003                   \
+                "Ip6Config.SetData - Call SetData to set dns server under automatic policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
+
+DelVar R_Ip6ConfigDnsServer
+
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_SETDATA_CONF4
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
index 9b7e9c1..5e5a3e1 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
@@ -1,279 +1,279 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        1F1728C3-BB62-4f28-9D75-6E631F7A6833
-CaseName        SetData.Conf5.Case1
-CaseCategory    IP6Config
-CaseDescription {SetData must not succeed when data size does not match the data type.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_SETDATA_CONF5
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_SETDATA_CONF5
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual policy."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF5
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get policy value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF5
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point : Set Manual Address with wrong data size
-#
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
-
-set L_ManualListLen    1
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   16
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
-SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
-RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid001                   \
-                "Ip6Config.SetData - Call SetData to set manual address with wrong data size."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
-DelVar R_Ip6ConfigManualAddress
-
-#
-# Check Points : Set Gateway with wrong data size
-#
-set L_GatewayListLen   1
-EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
-EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
-set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
-SetVar R_Ip6ConfigDataSize   8
-
-SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
-SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
-RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid002                   \
-                "Ip6Config.SetData - Call SetData to set gateway with wrong data size."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
-
-DelVar R_Ip6ConfigGateway
-
-#
-# Check Point : Set Dns Server with wrong data size
-#
-set L_DnsServerListLen 1
-EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
-EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
-set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
-SetVar R_Ip6ConfigDataSize   8
-
-SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
-SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
-RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid003                   \
-                "Ip6Config.SetData - Call SetData to set dns server with wrong data size."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
-
-DelVar R_Ip6ConfigDnsServer
-
-#
-# Check Point : Set Altlfld with wrong data size
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-SetVar R_Ip6ConfigDataSize   1
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
-RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid004                   \
-                "Ip6Config.SetData - Call SetData to set Altlfld with wrong data size."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
-
-#
-# Check Point : Set DadXmits with wrong data size
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   1
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits   3
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
-RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid005                   \
-                "Ip6Config.SetData - Call SetData to set DadXmits with wrong data size."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
-				
-#
-# Check Point : Set Policy with wrong data size
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   1
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
-RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid006                   \
-                "Ip6Config.SetData - Call SetData to set Policy with wrong data size."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
-				
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_SETDATA_CONF5
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        1F1728C3-BB62-4f28-9D75-6E631F7A6833
+CaseName        SetData.Conf5.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData must not succeed when data size does not match the data type.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_CONF5
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_CONF5
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF5
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get policy value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF5
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Manual Address with wrong data size
+#
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
+
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   16
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
+RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData to set manual address with wrong data size."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
+DelVar R_Ip6ConfigManualAddress
+
+#
+# Check Points : Set Gateway with wrong data size
+#
+set L_GatewayListLen   1
+EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
+EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+SetVar R_Ip6ConfigDataSize   8
+
+SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
+SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
+RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid002                   \
+                "Ip6Config.SetData - Call SetData to set gateway with wrong data size."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
+
+DelVar R_Ip6ConfigGateway
+
+#
+# Check Point : Set Dns Server with wrong data size
+#
+set L_DnsServerListLen 1
+EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
+EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+SetVar R_Ip6ConfigDataSize   8
+
+SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
+SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
+RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid003                   \
+                "Ip6Config.SetData - Call SetData to set dns server with wrong data size."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
+
+DelVar R_Ip6ConfigDnsServer
+
+#
+# Check Point : Set Altlfld with wrong data size
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+SetVar R_Ip6ConfigDataSize   1
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
+RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid004                   \
+                "Ip6Config.SetData - Call SetData to set Altlfld with wrong data size."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
+
+#
+# Check Point : Set DadXmits with wrong data size
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   1
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits   3
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
+RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid005                   \
+                "Ip6Config.SetData - Call SetData to set DadXmits with wrong data size."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
+				
+#
+# Check Point : Set Policy with wrong data size
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   1
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
+RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid006                   \
+                "Ip6Config.SetData - Call SetData to set Policy with wrong data size."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
+				
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_SETDATA_CONF5
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
index 0430336..0bc8880 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
@@ -1,72 +1,72 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        6C5FB23E-96A5-475a-8B7E-24B9BBB99C2A
-CaseName        SetData.Conf6.Case1
-CaseCategory    IP6Config
-CaseDescription {SetData must not succeed when data type is not supported.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_SETDATA_CONF6
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
-UINT32                            R_Ip6ConfigMaximum
-#
-# Check Point: Call Ip6Config->SetData when data type is not supported.
-#
-SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
-SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximum,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
-RecordAssertion $assert $Ip6ConfigSetDataConf6AssertionGuid001                   \
-                "Ip6Config.SetData - Call SetData with the data type not supported."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
-
-EndScope _IP6CONFIG_SETDATA_CONF6
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        6C5FB23E-96A5-475a-8B7E-24B9BBB99C2A
+CaseName        SetData.Conf6.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData must not succeed when data type is not supported.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_CONF6
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
+UINT32                            R_Ip6ConfigMaximum
+#
+# Check Point: Call Ip6Config->SetData when data type is not supported.
+#
+SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
+SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximum,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
+RecordAssertion $assert $Ip6ConfigSetDataConf6AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData with the data type not supported."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
+
+EndScope _IP6CONFIG_SETDATA_CONF6
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
index 15e118b..22b5676 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
@@ -1,510 +1,510 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        477D07AC-6FEB-460b-BA92-A98245862D09
-CaseName        SetData.Conf7.Case1
-CaseCategory    IP6Config
-CaseDescription {SetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_SETDATA_CONF7
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Context1
-UINTN                            R_DoneEvent1
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual policy."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-
-		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_SETDATA_CONF7
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual policy."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF7
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get policy value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
-  set assert pass
-} else {
-  set assert fail
-  	
-  RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF7
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set manual policy succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point: Call Ip6Config->SetData to set DadXmits 20
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
-
-SetVar R_Context1 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
-                &@R_DoneEvent1, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context1
-	if { $R_Context1 == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-
-		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_SETDATA_CONF7
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF7
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
-if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
-  set assert pass
-} else {
-  set assert fail
-  	
-  RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF7
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point : Set Manual Address with valid parameter
-#
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
-
-set L_ManualListLen    1
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
-SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_NOT_READY } {
-  set assert pass
-} else {
-  set assert fail
-  	
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_CONF7
-  EndLog
-  return
-}
-RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
-
-DelVar R_Ip6ConfigManualAddress
-
-#
-# Check Point : Set Manual Address with valid parameter before the former setting finishes
-#
-set L_ManualListLen    1
-EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
-set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   $L_ListLen
-SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
-SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
-SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
-SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
-RecordAssertion $assert $Ip6ConfigSetDataConf7AssertionGuid001                   \
-                "Ip6Config.SetData - Call SetData to set manual address with valid parameter before the former setting finishes."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
-
-
-#
-# Make sure the former configurations succeeds
-# (Eliminate the side-effect to other cases)
-#
-set i 0
-set L_TimeOut 30
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-GetAck
-GetVar R_Status
-set assert pass
-while { $R_Status == $EFI_NOT_READY } {
-  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
-  GetAck
-  GetVar R_Status
-  if { $R_Status == $EFI_SUCCESS } {
-    break
-  } elseif { $i == $L_TimeOut } {
-    set assert fail
-
-    RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - former SetData finishes."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-    GetAck
-    BS->CloseEvent {@R_DoneEvent,&@R_Status}
-    GetAck
-    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-    GetAck
-    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-    GetAck
-    EndScope _IP6CONFIG_SETDATA_CONF7
-    EndLog
-    return
-  }
-  incr i
-  Stall 1
-}
-RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - former SetData finishes."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-
-#
-# Set automatic policy (this will clean up all address information configured)
-#
-SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
-
-SetVar R_Context 0
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  set assert pass
-  while { 1 > 0 } {
-       GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-
-		RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-		GetAck
-		
-		EndScope _IP6CONFIG_SETDATA_CONF7
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  	
-  RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-		
-  EndScope _IP6CONFIG_SETDATA_CONF7
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Ip6ConfigPolicy
-if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
-  set assert pass
-} else {
-  set assert fail
-
-  RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-		
-  EndScope _IP6CONFIG_SETDATA_CONF7
-  EndLog
-
-  return
-}
-  
-RecordAssertion $assert $GenericAssertionGuid                     \
-                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
-                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
-                
-
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-				
-BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_SETDATA_CONF7
-
-EndLog
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        477D07AC-6FEB-460b-BA92-A98245862D09
+CaseName        SetData.Conf7.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_CONF7
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Context1
+UINTN                            R_DoneEvent1
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_CONF7
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF7
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get policy value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
+  set assert pass
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF7
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point: Call Ip6Config->SetData to set DadXmits 20
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
+
+SetVar R_Context1 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
+                &@R_DoneEvent1, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context1
+	if { $R_Context1 == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_CONF7
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF7
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
+if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
+  set assert pass
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF7
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point : Set Manual Address with valid parameter
+#
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
+
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_NOT_READY } {
+  set assert pass
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_CONF7
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
+
+DelVar R_Ip6ConfigManualAddress
+
+#
+# Check Point : Set Manual Address with valid parameter before the former setting finishes
+#
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
+RecordAssertion $assert $Ip6ConfigSetDataConf7AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData to set manual address with valid parameter before the former setting finishes."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
+
+
+#
+# Make sure the former configurations succeeds
+# (Eliminate the side-effect to other cases)
+#
+set i 0
+set L_TimeOut 30
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+GetVar R_Status
+set assert pass
+while { $R_Status == $EFI_NOT_READY } {
+  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+  GetAck
+  GetVar R_Status
+  if { $R_Status == $EFI_SUCCESS } {
+    break
+  } elseif { $i == $L_TimeOut } {
+    set assert fail
+
+    RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - former SetData finishes."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+    GetAck
+    BS->CloseEvent {@R_DoneEvent,&@R_Status}
+    GetAck
+    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+    GetAck
+    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+    GetAck
+    EndScope _IP6CONFIG_SETDATA_CONF7
+    EndLog
+    return
+  }
+  incr i
+  Stall 1
+}
+RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - former SetData finishes."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+
+#
+# Set automatic policy (this will clean up all address information configured)
+#
+SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
+
+SetVar R_Context 0
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  set assert pass
+  while { 1 > 0 } {
+       GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+
+		RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+		GetAck
+		
+		EndScope _IP6CONFIG_SETDATA_CONF7
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+		
+  EndScope _IP6CONFIG_SETDATA_CONF7
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
+  set assert pass
+} else {
+  set assert fail
+
+  RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+		
+  EndScope _IP6CONFIG_SETDATA_CONF7
+  EndLog
+
+  return
+}
+  
+RecordAssertion $assert $GenericAssertionGuid                     \
+                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
+                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
+                
+
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+				
+BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_SETDATA_CONF7
+
+EndLog
+
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
index 2053775..d35f104 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
@@ -1,274 +1,274 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         FUNCTION
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        EF8FF5B4-8855-4fbd-87C5-C28C7312302A
-CaseName        SetData.Func1.Case1
-CaseCategory    IP6Config
-CaseDescription {SetData must succeed with valid parameters.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_SETDATA_FUNC1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_Context1
-UINTN                            R_DoneEvent
-UINTN                            R_DoneEvent1
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set AltInterfaceId
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
-SetVar R_Ip6ConfigInterfaceId.Id(0) 0
-SetVar R_Ip6ConfigInterfaceId.Id(1) 1
-SetVar R_Ip6ConfigInterfaceId.Id(2) 2
-SetVar R_Ip6ConfigInterfaceId.Id(3) 3
-SetVar R_Ip6ConfigInterfaceId.Id(4) 4
-SetVar R_Ip6ConfigInterfaceId.Id(5) 5
-SetVar R_Ip6ConfigInterfaceId.Id(6) 6
-SetVar R_Ip6ConfigInterfaceId.Id(7) 7
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
-                "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context
-	if { $R_Context == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-
-		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_SETDATA_FUNC1
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
-               "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_FUNC1
-  EndLog
-  return
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigInterfaceId
-if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
-  set assert pass
-} else {
-  set assert fail
-}
-RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid002        \
-                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
-
-#
-# Check Point: Call Ip6Config->SetData to set DadXmits
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
-
-SetVar R_Context1 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
-                &@R_DoneEvent1, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
-                "Ip6Config.SetData - Call SetData to set DadXmits."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-    GetVar R_Context1
-	if { $R_Context1 == 1 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-
-		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_SETDATA_FUNC1
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
-               "Ip6Config.SetData - Call SetData to set manual DadXmits."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_SETDATA_FUNC1
-  EndLog
-}
-
-Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid        \
-                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
-                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-GetVar R_Ip6ConfigDadTransmits
-if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
-  set assert pass
-} else {
-  set assert fail
-}
-RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid004        \
-                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
-
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-BS->CloseEvent {@R_DoneEvent1,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_SETDATA_FUNC1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         FUNCTION
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        EF8FF5B4-8855-4fbd-87C5-C28C7312302A
+CaseName        SetData.Func1.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData must succeed with valid parameters.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_FUNC1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_Context1
+UINTN                            R_DoneEvent
+UINTN                            R_DoneEvent1
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set AltInterfaceId
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
+SetVar R_Ip6ConfigInterfaceId.Id(0) 0
+SetVar R_Ip6ConfigInterfaceId.Id(1) 1
+SetVar R_Ip6ConfigInterfaceId.Id(2) 2
+SetVar R_Ip6ConfigInterfaceId.Id(3) 3
+SetVar R_Ip6ConfigInterfaceId.Id(4) 4
+SetVar R_Ip6ConfigInterfaceId.Id(5) 5
+SetVar R_Ip6ConfigInterfaceId.Id(6) 6
+SetVar R_Ip6ConfigInterfaceId.Id(7) 7
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC1
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
+               "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC1
+  EndLog
+  return
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigInterfaceId
+if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
+  set assert pass
+} else {
+  set assert fail
+}
+RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid002        \
+                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point: Call Ip6Config->SetData to set DadXmits
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
+
+SetVar R_Context1 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
+                &@R_DoneEvent1, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
+                "Ip6Config.SetData - Call SetData to set DadXmits."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context1
+	if { $R_Context1 == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC1
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
+               "Ip6Config.SetData - Call SetData to set manual DadXmits."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC1
+  EndLog
+}
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigDadTransmits
+if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
+  set assert pass
+} else {
+  set assert fail
+}
+RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid004        \
+                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
+
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+BS->CloseEvent {@R_DoneEvent1,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_SETDATA_FUNC1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
new file mode 100644
index 0000000..4d9ec42
--- /dev/null
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
@@ -0,0 +1,838 @@
+# 
+#  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        79F40434-2684-459C-8EEB-DCFB822D93F7
+CaseName        SetData.Func2.Case1
+CaseCategory    IP6Config
+CaseDescription {SetData to clear the configuration.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_SETDATA_FUNC2
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                           R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                           R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set manual policy."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get policy value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigPolicy
+if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
+  set assert pass
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy fails(event is signaled correctly but data is incorrect)."
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set manual policy succeeds(event is signaled correctly and data correct)."
+
+#
+# Check Point: Call Ip6Config->SetData to set DadXmits 20
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
+if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
+  set assert pass
+} else {
+  set assert fail
+  	
+  RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set DadXmits fails(event is signaled correctly but data is incorrect)."
+
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
+
+Stall 30
+
+#
+# Check Point : Set Manual Address with valid parameter
+#
+
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
+
+set L_ManualListLen    1
+EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
+set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
+SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
+SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
+SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001                   \
+                "Ip6Config.SetData - Call SetData to set MANUAL ADDRESS."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001         \
+                      "SetData to set MANUAL ADDRESS fail.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001                   \
+               "Ip6Config.SetData - Call SetData to set MANUAL ADDRESS."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get Manual Address."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+GetVar R_Ip6ConfigManualAddress
+
+set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigManualAddress.Address}]
+if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5000] != 0  } {
+  puts $L_Proc_Ipv6Address 
+  set assert fail
+
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
+                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)" 
+} elseif {${R_Ip6ConfigManualAddress.PrefixLength} != 64} {
+  set assert fail
+
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
+                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)" 
+
+} elseif {${R_Ip6ConfigManualAddress.IsAnycast} != false} {
+  set assert fail
+
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
+                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)" 
+
+} else {
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
+                "Ip6Config.SetData - Set Gateway success(event is signaled correctly and data is correct.)" 
+}
+
+#
+# Clear the Manual Address
+#
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003                   \
+                "Ip6Config.SetData - Call SetData to clear MANUAL ADDRESS."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003         \
+                      "SetData to clear MANUAL ADDRESS fail.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003                   \
+               "Ip6Config.SetData - Call SetData to clear MANUAL ADDRESS."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid004        \
+                      "Ip6Config.GetData - Call GetData to get Manual Address."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+					  
+#
+# Check Point : Set Gateway with valid parameter
+#
+
+set L_GatewayListLen   1
+EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
+EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
+SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005                   \
+                "Ip6Config.SetData - Call SetData to set Gateway."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005         \
+                      "SetData to set Gateway fail.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005                   \
+               "Ip6Config.SetData - Call SetData to set Gateway."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get Gateway."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+GetVar R_Ip6ConfigGateway
+
+set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigGateway}]
+if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5001] != 0  } {
+  puts $L_Proc_Ipv6Address 
+  set assert fail
+
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid006                     \
+                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)" 
+} else {
+
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid006                     \
+                "Ip6Config.SetData - Set Gateway success(event is signaled correctly and data is correct.)" 
+}
+
+#
+# Clear the Gateway
+#
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007                   \
+                "Ip6Config.SetData - Call SetData to clear Gateway."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007         \
+                      "SetData to clear Gateway fail.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007                   \
+               "Ip6Config.SetData - Call SetData to clear Gateway."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid008        \
+                      "Ip6Config.GetData - Call GetData to get Gateway."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+
+#
+# Check Point : Set DnsServer with valid parameter
+#
+
+set L_DnsServerListLen 1
+EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
+EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
+set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
+set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
+SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+SetVar R_Ip6ConfigDataSize   $L_ListLen
+
+SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
+SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009                   \
+                "Ip6Config.SetData - Call SetData to set DnsServer."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009         \
+                      "SetData to set DnsServer fail.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009                   \
+               "Ip6Config.SetData - Call SetData to set DnsServer."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid        \
+                      "Ip6Config.GetData - Call GetData to get DnsServer."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+GetVar R_Ip6ConfigDnsServer
+
+set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigDnsServer}]
+if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5002] != 0  } {
+  set assert fail
+
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid010                     \
+                  "Ip6Config.SetData - Set DnsServer fail(event is signaled correctly but data is incorrect.)" 
+} else {
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid010                     \
+                "Ip6Config.SetData - Set DnsServer success(event is signaled correctly and data is correct.)" 
+}
+
+#
+# Clear the DnsServer
+#
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011                   \
+                "Ip6Config.SetData - Call SetData to clear DnsServer."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+    GetVar R_Context
+	if { $R_Context == 1 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011         \
+                      "SetData to clear DnsServer fail.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_SETDATA_FUNC2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011                   \
+               "Ip6Config.SetData - Call SetData to clear DnsServer."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_SETDATA_FUNC2
+  EndLog
+  return
+}
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid012        \
+                      "Ip6Config.GetData - Call GetData to get DnsServer."        \
+                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+
+EndScope _IP6CONFIG_SETDATA_FUNC2
+
+EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
index a36469f..35b36ce 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
@@ -1,90 +1,90 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        8B7B6AA6-2DCB-434b-9533-6346ABCC686D
-CaseName        UnregisterDataNotify.Conf1.Case1
-CaseCategory    IP6Config
-CaseDescription {UnregisterDataNotify must not succeed when event is NULL.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Call Ip6Config->SetData to set manual policy
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point: Call Ip6Config->UnregisterDataNotify with the event NULL
-#
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
-RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event NULL."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
-
-#
-# Clean up
-#
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        8B7B6AA6-2DCB-434b-9533-6346ABCC686D
+CaseName        UnregisterDataNotify.Conf1.Case1
+CaseCategory    IP6Config
+CaseDescription {UnregisterDataNotify must not succeed when event is NULL.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Call Ip6Config->SetData to set manual policy
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point: Call Ip6Config->UnregisterDataNotify with the event NULL
+#
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
+RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event NULL."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
+
+#
+# Clean up
+#
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
index d41f141..7eb5808 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
@@ -1,83 +1,83 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        9CE66A42-FADC-4d44-B577-B58CED8E984B
-CaseName        UnregisterDataNotify.Conf2.Case1
-CaseCategory    IP6Config
-CaseDescription {UnregisterDataNotify must not succeed when then event has not been registered for the data type ever.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                          R_Ip6ConfigDataType
-
-#
-# Check Point: Call Ip6Config->UnregisterDataNotify with the event not registered
-#
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
-RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event not registered."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
-
-#
-# Clean up
-#
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        9CE66A42-FADC-4d44-B577-B58CED8E984B
+CaseName        UnregisterDataNotify.Conf2.Case1
+CaseCategory    IP6Config
+CaseDescription {UnregisterDataNotify must not succeed when then event has not been registered for the data type ever.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                          R_Ip6ConfigDataType
+
+#
+# Check Point: Call Ip6Config->UnregisterDataNotify with the event not registered
+#
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event not registered."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+#
+# Clean up
+#
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
index 5608dbe..e56d26a 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
@@ -1,99 +1,99 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         CONFORMANCE
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        EB679CF9-9A56-4a9f-B5CF-2D845B044560
-CaseName        UnregisterDataNotify.Conf2.Case2
-CaseCategory    IP6Config
-CaseDescription {UnregisterDataNotify must not succeed when the event was registered and then unregistered for the data type.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                           R_Ip6ConfigDataType
-
-#
-# Check Point: Register event for Datatype - ManualAddress and then unregister it
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event with correct parameters."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point: Unregister the event again
-#
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
-RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event has been unregistered."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
-
-#
-# Clean up
-#
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         CONFORMANCE
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        EB679CF9-9A56-4a9f-B5CF-2D845B044560
+CaseName        UnregisterDataNotify.Conf2.Case2
+CaseCategory    IP6Config
+CaseDescription {UnregisterDataNotify must not succeed when the event was registered and then unregistered for the data type.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                           R_Ip6ConfigDataType
+
+#
+# Check Point: Register event for Datatype - ManualAddress and then unregister it
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event with correct parameters."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point: Unregister the event again
+#
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
+RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event has been unregistered."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
+
+#
+# Clean up
+#
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
index 5b88510..6315fa7 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
@@ -1,98 +1,98 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         FUNCTION
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        769658B4-3397-4367-8E10-C4513407FFB8
-CaseName        UnregisterDataNotify.Func1.Case1
-CaseCategory    IP6Config
-CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling signal datatype.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                            R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                            R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Create Event and RegisterDataNotify
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "IfConfig6.RegisterDataNotify() with valid parameter."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point : Call Ip6Config->UnregisterDataNotify with valid parameter
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001    \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Close event
-#
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         FUNCTION
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        769658B4-3397-4367-8E10-C4513407FFB8
+CaseName        UnregisterDataNotify.Func1.Case1
+CaseCategory    IP6Config
+CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling signal datatype.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                            R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                            R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Create Event and RegisterDataNotify
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "IfConfig6.RegisterDataNotify() with valid parameter."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point : Call Ip6Config->UnregisterDataNotify with valid parameter
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001    \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Close event
+#
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
+
 EndLog
\ No newline at end of file
diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
index 9f30136..cf1a374 100644
--- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
+++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
@@ -1,237 +1,237 @@
-# 
-#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
-# 
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD License
-#  which accompanies this distribution.  The full text of the license may be found at 
-#  http://opensource.org/licenses/bsd-license.php
-# 
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-# 
-################################################################################
-CaseLevel         FUNCTION
-CaseAttribute     AUTO
-CaseVerboseLevel  DEFAULT
-set reportfile    report.csv
-
-#
-# test case Name, category, description, GUID...
-#
-CaseGuid        C206AA15-2F53-4860-BD78-453C4EA463B6
-CaseName        UnregisterDataNotify.Func1.Case2
-CaseCategory    IP6Config
-CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling multiple datatype.}
-
-################################################################################
-Include IP6Config/Include/Ip6Config.inc.tcl
-
-
-#
-# Begin log ...
-#
-BeginLog
-
-#
-# BeginScope
-#
-BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
-
-#
-# Parameter Definition
-# R_ represents "Remote EFI Side Parameter"
-# L_ represents "Local ENTS Side Parameter"
-#
-UINTN                            R_Status
-UINTN                            R_Context
-UINTN                            R_DoneEvent
-UINTN                            R_Ip6ConfigDataSize
-UINT32                           R_Ip6ConfigDataType
-EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
-EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
-UINT32                           R_Ip6ConfigPolicy
-EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
-
-#
-# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
-#
-SetVar R_Context 0
-BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
-                &@R_DoneEvent, &@R_Status"
-GetAck
-set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid                      \
-                "BS.CreateEvent."                                      \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
-
-Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point: Unregister the event on Datatype [Policy]
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002    \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for Datatype - Policy."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-#
-# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
-SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
-
-GetVar R_Context
-set L_Context1 $R_Context
-set L_Context2 $L_Context1
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
-GetAck
-GetVar R_Status
-if { $R_Status == $EFI_SUCCESS } {
-  Stall 5
-  GetVar R_Context
-  if { $R_Context == $L_Context2 } {
-    set assert pass
-  } else {
-    set assert fail
-  }
-  RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003                   \
-               "Ip6Config.UnregisterDataNotify - Event should not be signaled for DataType - Policy."
-} else {
-  set assert fail
-  
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set manual policy."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
-  EndLog
-  return
-}
-
-#
-# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
-SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
-
-GetVar R_Context
-set L_Context1 $R_Context
-set L_Context2 [expr { $L_Context1 + 1 }]
-
-Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
-GetAck
-GetVar R_Status
-
-if { $R_Status == $EFI_SUCCESS } {
-  set assert pass
-  RecordAssertion $assert $GenericAssertionGuid                   \
-                "Ip6Config.SetData - Call SetData to set DadXmits."            \
-                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-} elseif { $R_Status == $EFI_NOT_READY } {
-  set i 0
-  set L_TimeOut 30
-  while { 1 > 0 } {
-       GetVar R_Context
-	if { $R_Context == $L_Context2 } {
-		break
-	} elseif { $i == $L_TimeOut } {
-		set assert fail
-		RecordAssertion $assert $GenericAssertionGuid         \
-                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
-                      "TIMEOUT value is $L_TimeOut (sec), "
-
-		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-		GetAck
-		BS->CloseEvent {@R_DoneEvent,&@R_Status}
-		GetAck
-		EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
-		EndLog
-		return
-	}
-	incr i
-	Stall 1
-  }
-} else {
-  set assert fail
-  RecordAssertion $assert $GenericAssertionGuid                   \
-               "Ip6Config.SetData - Call SetData to set DadXmits."            \
-               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-  GetAck
-  BS->CloseEvent {@R_DoneEvent,&@R_Status}
-  GetAck
-  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
-  EndLog
-  return
-}
-
-GetVar R_Context
-if { $R_Context == $L_Context2 } {
-  set assert pass
-} else {
-  set assert fail
-}
-RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004                   \
-               "Ip6Config.RegisterDataNotify - Event should be signaled for DataType - DadXmits."
-                
-#
-# Clean up
-#
-SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
-Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
-GetAck
-set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
-RecordAssertion $assert $GenericAssertionGuid     \
-                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
-				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
-
-BS->CloseEvent {@R_DoneEvent,&@R_Status}
-GetAck
-
-EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
-
+# 
+#  Copyright 2006 - 2010 Unified EFI, Inc.<BR> 
+#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# 
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at 
+#  http://opensource.org/licenses/bsd-license.php
+# 
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+# 
+################################################################################
+CaseLevel         FUNCTION
+CaseAttribute     AUTO
+CaseVerboseLevel  DEFAULT
+set reportfile    report.csv
+
+#
+# test case Name, category, description, GUID...
+#
+CaseGuid        C206AA15-2F53-4860-BD78-453C4EA463B6
+CaseName        UnregisterDataNotify.Func1.Case2
+CaseCategory    IP6Config
+CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling multiple datatype.}
+
+################################################################################
+Include IP6Config/Include/Ip6Config.inc.tcl
+
+
+#
+# Begin log ...
+#
+BeginLog
+
+#
+# BeginScope
+#
+BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
+
+#
+# Parameter Definition
+# R_ represents "Remote EFI Side Parameter"
+# L_ represents "Local ENTS Side Parameter"
+#
+UINTN                            R_Status
+UINTN                            R_Context
+UINTN                            R_DoneEvent
+UINTN                            R_Ip6ConfigDataSize
+UINT32                           R_Ip6ConfigDataType
+EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
+EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
+UINT32                           R_Ip6ConfigPolicy
+EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
+
+#
+# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
+#
+SetVar R_Context 0
+BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
+                &@R_DoneEvent, &@R_Status"
+GetAck
+set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid                      \
+                "BS.CreateEvent."                                      \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
+
+Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point: Unregister the event on Datatype [Policy]
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002    \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for Datatype - Policy."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+#
+# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
+SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
+
+GetVar R_Context
+set L_Context1 $R_Context
+set L_Context2 $L_Context1
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
+GetAck
+GetVar R_Status
+if { $R_Status == $EFI_SUCCESS } {
+  Stall 5
+  GetVar R_Context
+  if { $R_Context == $L_Context2 } {
+    set assert pass
+  } else {
+    set assert fail
+  }
+  RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003                   \
+               "Ip6Config.UnregisterDataNotify - Event should not be signaled for DataType - Policy."
+} else {
+  set assert fail
+  
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set manual policy."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
+  EndLog
+  return
+}
+
+#
+# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
+SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
+
+GetVar R_Context
+set L_Context1 $R_Context
+set L_Context2 [expr { $L_Context1 + 1 }]
+
+Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
+GetAck
+GetVar R_Status
+
+if { $R_Status == $EFI_SUCCESS } {
+  set assert pass
+  RecordAssertion $assert $GenericAssertionGuid                   \
+                "Ip6Config.SetData - Call SetData to set DadXmits."            \
+                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+} elseif { $R_Status == $EFI_NOT_READY } {
+  set i 0
+  set L_TimeOut 30
+  while { 1 > 0 } {
+       GetVar R_Context
+	if { $R_Context == $L_Context2 } {
+		break
+	} elseif { $i == $L_TimeOut } {
+		set assert fail
+		RecordAssertion $assert $GenericAssertionGuid         \
+                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
+                      "TIMEOUT value is $L_TimeOut (sec), "
+
+		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+		GetAck
+		BS->CloseEvent {@R_DoneEvent,&@R_Status}
+		GetAck
+		EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
+		EndLog
+		return
+	}
+	incr i
+	Stall 1
+  }
+} else {
+  set assert fail
+  RecordAssertion $assert $GenericAssertionGuid                   \
+               "Ip6Config.SetData - Call SetData to set DadXmits."            \
+               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+  GetAck
+  BS->CloseEvent {@R_DoneEvent,&@R_Status}
+  GetAck
+  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
+  EndLog
+  return
+}
+
+GetVar R_Context
+if { $R_Context == $L_Context2 } {
+  set assert pass
+} else {
+  set assert fail
+}
+RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004                   \
+               "Ip6Config.RegisterDataNotify - Event should be signaled for DataType - DadXmits."
+                
+#
+# Clean up
+#
+SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
+Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
+GetAck
+set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
+RecordAssertion $assert $GenericAssertionGuid     \
+                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
+				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
+
+BS->CloseEvent {@R_DoneEvent,&@R_Status}
+GetAck
+
+EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
+
 EndLog
\ No newline at end of file
-- 
2.9.0.windows.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData
  2018-10-12  8:20 [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData Eric Jin
@ 2018-10-12  8:57 ` Supreeth Venkatesh
  2018-10-12 17:01   ` Jin, Eric
  2018-10-13  1:55 ` Wu, Jiaxin
  1 sibling, 1 reply; 4+ messages in thread
From: Supreeth Venkatesh @ 2018-10-12  8:57 UTC (permalink / raw)
  To: Eric Jin, edk2-devel

Eric,

We don't have EMS support in AARCH64, Can someone from Intel review this?

Thanks,

Supreeth


On 10/12/2018 09:20 AM, Eric Jin wrote:
> Spec clarifies the configuration clearance behavior
> Correct the end line
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Eric Jin <eric.jin@intel.com>
> Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
> ---
>   .../IP4Config2/Include/Ip4Config2AssertionGuid.tcl |    5 +-
>   .../TestCase/IP4Config2/SetData.Func1.Case2.tcl    |  714 +++++++++++++
>   .../Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl |  142 +--
>   .../Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl |  140 +--
>   .../Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl |  788 +++++++-------
>   .../Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl |  144 +--
>   .../Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl |  982 +++++++++---------
>   .../Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl |  542 +++++-----
>   .../TestCase/IP6Config/Include/Ip6Config.inc.tcl   |  192 ++--
>   .../TestCase/IP6Config/Include/Ip6Config.proc.tcl  |   30 +-
>   .../IP6Config/Include/Ip6ConfigAssertionGuid.tcl   |  180 ++--
>   .../TestCase/IP6Config/Include/Ip6ConfigDefine.tcl |  102 +-
>   .../IP6Config/RegisterDataNotify.Conf1.Case1.tcl   |  178 ++--
>   .../IP6Config/RegisterDataNotify.Conf2.Case1.tcl   |  178 ++--
>   .../IP6Config/RegisterDataNotify.Conf3.Case1.tcl   |  216 ++--
>   .../IP6Config/RegisterDataNotify.Func1.Case1.tcl   | 1076 ++++++++++----------
>   .../IP6Config/RegisterDataNotify.Func1.Case2.tcl   |  530 +++++-----
>   .../Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl |  142 +--
>   .../Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl |  596 +++++------
>   .../Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl |  142 +--
>   .../Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl |  474 ++++-----
>   .../Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl |  556 +++++-----
>   .../Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl |  142 +--
>   .../Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl | 1020 +++++++++----------
>   .../Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl |  546 +++++-----
>   .../Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl |  838 +++++++++++++++
>   .../IP6Config/UnregisterDataNotify.Conf1.Case1.tcl |  178 ++--
>   .../IP6Config/UnregisterDataNotify.Conf2.Case1.tcl |  164 +--
>   .../IP6Config/UnregisterDataNotify.Conf2.Case2.tcl |  196 ++--
>   .../IP6Config/UnregisterDataNotify.Func1.Case1.tcl |  194 ++--
>   .../IP6Config/UnregisterDataNotify.Func1.Case2.tcl |  472 ++++-----
>   31 files changed, 6683 insertions(+), 5116 deletions(-)
>   create mode 100644 uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
>   create mode 100644 uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
>
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl b/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> index 91a4fd1..e0604b2 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> @@ -1,6 +1,6 @@
>   #
>   #  Copyright 2017 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>
>   #
>   #  This program and the accompanying materials
>   #  are licensed and made available under the terms and conditions of the BSD License
> @@ -39,6 +39,9 @@ set Ip4Config2SetDataFunc1AssertionGuid008  00FBB58A-4BB3-499F-AE6B-744B6B9932E6
>   set Ip4Config2SetDataFunc1AssertionGuid009  DB8EF05C-085F-45D1-A0B1-DC2F307B6F1E
>   set Ip4Config2SetDataFunc1AssertionGuid010  29143621-896C-4FB9-9E70-7A4D2DA6BEE0
>   set Ip4Config2SetDataFunc1AssertionGuid011  72FEDF83-6755-4212-AF0F-780F457EFAA7
> +set Ip4Config2SetDataFunc1AssertionGuid012  EB7769D1-A31F-4F37-86F3-2BBF54834785
> +set Ip4Config2SetDataFunc1AssertionGuid013  78F3A664-A8E4-43B8-961F-71033E9145F2
> +set Ip4Config2SetDataFunc1AssertionGuid014  7F717D50-3A7C-4E2A-9F15-0A802E9BAFE6
>   
>   #
>   # Guid for GetData() interface
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
> new file mode 100644
> index 0000000..0517032
> --- /dev/null
> +++ b/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
> @@ -0,0 +1,714 @@
> +#
> +#  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B2AD20DF-2325-42B2-A199-A49ADF04A5DD
> +CaseName        SetData.Func1.Case2
> +CaseCategory    IP4Config2
> +CaseDescription {SetData must succeed When DataSize is 0 and
> +                Data is NULL,and existing configuration is cleared.}
> +
> +################################################################################
> +Include IP4Config2/Include/Ip4Config2.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN     R_Status
> +UINTN     R_Context
> +UINTN     R_DoneEvent
> +UINTN     R_Ip4Config2DataSize
> +UINT32    R_Ip4Config2DataType
> +UINT32    R_Ip4Config2Policy
> +
> +#
> +# Check Point: Call Ip4Config2->SetData to set Static policy
> +#
> +SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +SetVar R_Ip4Config2DataSize   [Sizeof UINT32]
> +SetVar R_Ip4Config2Policy     $IP4C2P(Static)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "BS.CreateEvent."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2Policy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                  "Ip4Config2.SetData - Call SetData to set Static policy."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                  "Ip4Config2.SetData - Call SetData to set Static policy."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Policy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get policy value."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip4Config2Policy
> +if { $R_Ip4Config2Policy == $IP4C2P(Static) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid002    \
> +                  "Set Static policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip4Config2Policy   $IP4C2DT(Policy)
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid002    \
> +                "Set Static policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address
> +#
> +EFI_IP4_CONFIG2_MANUAL_ADDRESS    R_Temp_Ip4Config2ManualAddress
> +EFI_IP4_CONFIG2_MANUAL_ADDRESS    R_Ip4Config2ManualAddress
> +SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +SetVar R_Ip4Config2DataSize   [Sizeof EFI_IP4_CONFIG2_MANUAL_ADDRESS]
> +SetIpv4Address R_Temp_Ip4Config2ManualAddress.Address       "10.239.9.15"
> +SetIpv4Address R_Temp_Ip4Config2ManualAddress.SubnetMask    "255.255.255.0"
> +SetVar R_Ip4Config2ManualAddress @R_Temp_Ip4Config2ManualAddress
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                  "Ip4Config2.SetData - Call SetData to set Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                  "IP4Config2.SetData - Call SetData to set Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Manual Address."    \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +EFI_IPv4_ADDRESS  R_Addr1
> +EFI_IPv4_ADDRESS  R_Addr2
> +set R_Addr1 [GetIpv4Address R_Ip4Config2ManualAddress.Address]
> +puts "R_Addr1 - $R_Addr1"
> +set R_Addr2 [GetIpv4Address R_Ip4Config2ManualAddress.SubnetMask]
> +puts "R_Addr1 - $R_Addr2"
> +
> +if {[string compare -nocase $R_Addr1 10.239.9.15] == 0} {
> +  if {[string compare -nocase $R_Addr2 255.255.255.0] == 0} {
> +    set assert pass
> +  } else {
> +    set assert fail
> +    RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                    "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> +    Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +    EndLog
> +    return
> +  }
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                  "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Points : Set Gateway
> +#
> +EFI_IPv4_ADDRESS               R_Ip4Config2Gateway
> +SetVar R_Ip4Config2DataType    $IP4C2DT(Gateway)
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +SetIpv4Address R_Ip4Config2Gateway "10.239.9.241"
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                  "Ip4Config2.SetData - Call SetData to set Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                  "Ip4Config2.SetData - Call SetData to set Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Gateway Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +EFI_IPv4_ADDRESS  R_Addr3
> +set R_Addr3 [GetIpv4Address R_Ip4Config2Gateway]
> +puts "R_Addr3 - $R_Addr3"
> +
> +if {[string compare -nocase $R_Addr3 10.239.9.241] == 0} {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid006    \
> +                  "Set Gateway succeeds(event is signaled correctly and data correct)."
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid006    \
> +                "Set Gateway succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Dns Server
> +#
> +EFI_IPv4_ADDRESS               R_Ip4Config2DnsServer
> +SetVar R_Ip4Config2DataType    $IP4C2DT(DnsServer)
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +SetIpv4Address R_Ip4Config2DnsServer "10.248.2.5"
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                  "Ip4Config2.SetData - Call SetData to set Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                  "Ip4Config2.SetData - Call SetData to set Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Dns Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +EFI_IPv4_ADDRESS  R_Addr4
> +set R_Addr4 [GetIpv4Address R_Ip4Config2DnsServer]
> +puts "R_Addr4 - $R_Addr4"
> +
> +if {[string compare -nocase $R_Addr4 10.248.2.5] == 0} {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid008    \
> +                  "Set Dns succeeds(event is signaled correctly and data correct)."
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid008    \
> +                "Set Dns succeeds(event is signaled correctly and data correct)."
> +
> +
> +
> +#
> +# Clean up - Call SetData when DataSize is 0 and Data is NULL
> +#
> +
> +
> +
> +#
> +# Set Manual Address
> +#
> +
> +SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +SetVar R_Ip4Config2DataSize   0
> +
> +
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                  "Ip4Config2.SetData - Call SetData to clear Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                      "SetData to clear Manual Address failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                  "IP4Config2.SetData - Call SetData to clear Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize   [Sizeof EFI_IP4_CONFIG2_MANUAL_ADDRESS]
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Manual Address."    \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +#
> +# Set Gateway Address
> +#
> +
> +
> +SetVar R_Ip4Config2DataType    $IP4C2DT(Gateway)
> +SetVar R_Ip4Config2DataSize    0
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                  "Ip4Config2.SetData - Call SetData to clear Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                      "SetData to clear Gateway Address failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                  "Ip4Config2.SetData - Call SetData to clear Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Gateway Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +#
> +# Check Point : Set Dns Server
> +#
> +
> +SetVar R_Ip4Config2DataType    $IP4C2DT(DnsServer)
> +SetVar R_Ip4Config2DataSize    0
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                  "Ip4Config2.SetData - Call SetData to clear Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                      "SetData to clear Dns Address failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                  "Ip4Config2.SetData - Call SetData to clear Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Dns Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +
> +EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +
> +EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> index a6b788d..beeb2fb 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        11FF93B5-8A85-4770-88C2-99E0AF9AE0AA
> -CaseName        GetData.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data size is NULL.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                          R_Ip6ConfigPolicy
> -UINT32                          R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with datasize is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,NULL,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigGetDataConf1AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with DataSize NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        11FF93B5-8A85-4770-88C2-99E0AF9AE0AA
> +CaseName        GetData.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data size is NULL.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                          R_Ip6ConfigPolicy
> +UINT32                          R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with datasize is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,NULL,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigGetDataConf1AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with DataSize NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> index c095756..6f90a9c 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> @@ -1,71 +1,71 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        B4C48D71-EF72-42e0-BD57-4825F7EB7B9F
> -CaseName        GetData.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data is NULL if data size is not zero.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32				  R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with data is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,NULL,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigGetDataConf2AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with Data NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B4C48D71-EF72-42e0-BD57-4825F7EB7B9F
> +CaseName        GetData.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data is NULL if data size is not zero.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32				  R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with data is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,NULL,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigGetDataConf2AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with Data NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> index c90d442..5688648 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> @@ -1,395 +1,395 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        7B341FC4-1F10-4851-83AD-103A56B0EC35
> -CaseName        GetData.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when DataSize is too small for the data type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy failure (event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid value
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar  R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData with valid value."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -    if { $R_Context1 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual address."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Point : Get Manual Address with datasize too small
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   16
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BUFFER_TOO_SMALL]
> -RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with the datasize too small."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BUFFER_TOO_SMALL"
> -
> -GetVar R_Ip6ConfigDataSize
> -set L_ObtainedSize [ expr { $R_Ip6ConfigDataSize } ]
> -set L_DesiredSize [ Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS ]
> -if { [ expr { $L_ObtainedSize % $L_DesiredSize } ] == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid002                   \
> -                "Ip6Config.GetData - Correctly Modify the DataSize."            \
> -                "ReturnSize - $L_ObtainedSize, ExpectedSize - $L_DesiredSize"
> -
> -#
> -# Clean up
> -#
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Unregister Event for Manual Address and close event
> -#
> -SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        7B341FC4-1F10-4851-83AD-103A56B0EC35
> +CaseName        GetData.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when DataSize is too small for the data type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy failure (event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid value
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar  R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData with valid value."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +    if { $R_Context1 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual address."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Point : Get Manual Address with datasize too small
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   16
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BUFFER_TOO_SMALL]
> +RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with the datasize too small."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BUFFER_TOO_SMALL"
> +
> +GetVar R_Ip6ConfigDataSize
> +set L_ObtainedSize [ expr { $R_Ip6ConfigDataSize } ]
> +set L_DesiredSize [ Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS ]
> +if { [ expr { $L_ObtainedSize % $L_DesiredSize } ] == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid002                   \
> +                "Ip6Config.GetData - Correctly Modify the DataSize."            \
> +                "ReturnSize - $L_ObtainedSize, ExpectedSize - $L_DesiredSize"
> +
> +#
> +# Clean up
> +#
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Unregister Event for Manual Address and close event
> +#
> +SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_CONF3
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> index e36cdfc..bd38be0 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> @@ -1,73 +1,73 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        F340A957-9345-478d-BE53-5F7C561C1866
> -CaseName        GetData.Conf4.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data type is not found.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF4
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -UINTN                            R_Ip6ConfigMaximumType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with the date type not existing.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximumType,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert $Ip6ConfigGetDataConf4AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with Datatype not existing."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF4
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        F340A957-9345-478d-BE53-5F7C561C1866
> +CaseName        GetData.Conf4.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data type is not found.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF4
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +UINTN                            R_Ip6ConfigMaximumType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with the date type not existing.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximumType,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigGetDataConf4AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with Datatype not existing."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF4
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> index c39323f..c186520 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> @@ -1,492 +1,492 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        6638523D-470B-4c50-AE75-DE0CE6854DE8
> -CaseName        GetData.Conf5.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF5
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 20
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_NOT_READY } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -#
> -# Check Point : Get Manual Address with valid parameter before the former setting finishes
> -#
> -set L_ManualListLen    1
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_READY]
> -RecordAssertion $assert $Ip6ConfigGetDataConf5AssertionGuid001                   \
> -                "Ip6Config.SetData - Call GetData to get manual address before the former setting finishes."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -#
> -# Make sure the former configurations succeeds
> -# (Eliminate the side-effect to other cases)
> -#
> -set i 0
> -set L_TimeOut 30
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -set assert pass
> -while { $R_Status == $EFI_NOT_READY } {
> -  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -  GetAck
> -  GetVar R_Status
> -  if { $R_Status == $EFI_SUCCESS } {
> -    break
> -  } elseif { $i == $L_TimeOut } {
> -    set assert fail
> -		
> -    RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -    GetAck
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -    GetAck
> -    EndScope _IP6CONFIG_GETDATA_CONF5
> -    EndLog
> -    return
> -  }
> -  incr i
> -  Stall 1
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		
> -              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -		
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -		
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_CONF5
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        6638523D-470B-4c50-AE75-DE0CE6854DE8
> +CaseName        GetData.Conf5.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF5
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_NOT_READY } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +#
> +# Check Point : Get Manual Address with valid parameter before the former setting finishes
> +#
> +set L_ManualListLen    1
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_READY]
> +RecordAssertion $assert $Ip6ConfigGetDataConf5AssertionGuid001                   \
> +                "Ip6Config.SetData - Call GetData to get manual address before the former setting finishes."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +#
> +# Make sure the former configurations succeeds
> +# (Eliminate the side-effect to other cases)
> +#
> +set i 0
> +set L_TimeOut 30
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +set assert pass
> +while { $R_Status == $EFI_NOT_READY } {
> +  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +  GetAck
> +  GetVar R_Status
> +  if { $R_Status == $EFI_SUCCESS } {
> +    break
> +  } elseif { $i == $L_TimeOut } {
> +    set assert fail
> +		
> +    RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +    GetAck
> +    EndScope _IP6CONFIG_GETDATA_CONF5
> +    EndLog
> +    return
> +  }
> +  incr i
> +  Stall 1
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		
> +              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +		
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +		
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_CONF5
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> index 6c4a72b..a0acc20 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> @@ -1,272 +1,272 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        E4CD5B45-9CF5-4938-A243-7764F1E8CDE9
> -CaseName        GetData.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must succeed with valid parameters.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_FUNC1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->GetData to set AltInterfaceId
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> -SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> -SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> -SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> -SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> -SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> -SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> -SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> -SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid        \
> -                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid001        \
> -                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigInterfaceId
> -if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid002        \
> -                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.GetData - Call GetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.GetData - Call GetData to set manual DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid003        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid004        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_FUNC1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        E4CD5B45-9CF5-4938-A243-7764F1E8CDE9
> +CaseName        GetData.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must succeed with valid parameters.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_FUNC1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->GetData to set AltInterfaceId
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> +SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> +SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> +SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> +SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> +SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> +SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> +SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> +SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid        \
> +                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid001        \
> +                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigInterfaceId
> +if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid002        \
> +                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.GetData - Call GetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.GetData - Call GetData to set manual DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid003        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid004        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_FUNC1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> index 918038d..9e162e7 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> @@ -1,96 +1,96 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_INC] == 1} {
> -  return
> -}
> -set IP6CONFIG_INC 1
> -
> -Include Include/EntsProtocolTest.inc.tcl
> -Include Include/EntsConfigure.tcl
> -Include Include/EfiBootService.inc.tcl
> -Include Include/EfiGenericService.inc.tcl
> -Include EfiUtil/EfiInclude.tcl
> -
> -Include IP6/Include/Ip6.inc.tcl
> -Include IP6Config/Include/Ip6ConfigDefine.tcl
> -Include IP6Config/Include/Ip6Config.proc.tcl
> -Include IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> -Include Include/GenericAssertionGuid.tcl
> -
> -###################################################################
> -# Function Declaration
> -###################################################################
> -Func Ip6Config->SetData {
> -    UINT32
> -    UINTN
> -    POINTER
> -    POINTER
> -}
> -
> -Func Ip6Config->GetData {
> -    UINT32
> -    POINTER
> -    POINTER
> -    POINTER
> -}
> -
> -Func Ip6Config->RegisterDataNotify {
> -    UINT32
> -    UINTN
> -    POINTER
> -}
> -
> -Func Ip6Config->UnregisterDataNotify {
> -    UINT32
> -    UINTN
> -    POINTER
> -}
> -
> -
> -###################################################################
> -# EFI_IP6_CONFIG_INTERFACE_INFO
> -###################################################################
> -Struct EFI_IP6_CONFIG_INTERFACE_INFO {
> -  CHAR16                Name(32);
> -  UINT8                 IfType;
> -  UINT32                HwAddressSize;
> -  EFI_MAC_ADDRESS       HwAddress;
> -  UINT32                AddressInfoCount;
> -  POINTER               AddressInfo;
> -  UINT32                RouteCount;
> -  POINTER               RouteTable;
> -}
> -
> -###################################################################
> -# EFI_IP6_CONFIG_INTERFACE_ID
> -###################################################################
> -Struct EFI_IP6_CONFIG_INTERFACE_ID {
> -  UINT8                 Id(8);
> -}
> -
> -###################################################################
> -# EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> -###################################################################
> -Struct EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS {
> -  UINT32                DupAddrDetectTransmits;
> -}
> -
> -###################################################################
> -# EFI_IP6_CONFIG_MANUAL_ADDRESS
> -###################################################################
> -Struct EFI_IP6_CONFIG_MANUAL_ADDRESS {
> -  EFI_IPv6_ADDRESS      Address;
> -  BOOLEAN               IsAnycast;
> -  UINT8                 PrefixLength;
> -}
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_INC] == 1} {
> +  return
> +}
> +set IP6CONFIG_INC 1
> +
> +Include Include/EntsProtocolTest.inc.tcl
> +Include Include/EntsConfigure.tcl
> +Include Include/EfiBootService.inc.tcl
> +Include Include/EfiGenericService.inc.tcl
> +Include EfiUtil/EfiInclude.tcl
> +
> +Include IP6/Include/Ip6.inc.tcl
> +Include IP6Config/Include/Ip6ConfigDefine.tcl
> +Include IP6Config/Include/Ip6Config.proc.tcl
> +Include IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> +Include Include/GenericAssertionGuid.tcl
> +
> +###################################################################
> +# Function Declaration
> +###################################################################
> +Func Ip6Config->SetData {
> +    UINT32
> +    UINTN
> +    POINTER
> +    POINTER
> +}
> +
> +Func Ip6Config->GetData {
> +    UINT32
> +    POINTER
> +    POINTER
> +    POINTER
> +}
> +
> +Func Ip6Config->RegisterDataNotify {
> +    UINT32
> +    UINTN
> +    POINTER
> +}
> +
> +Func Ip6Config->UnregisterDataNotify {
> +    UINT32
> +    UINTN
> +    POINTER
> +}
> +
> +
> +###################################################################
> +# EFI_IP6_CONFIG_INTERFACE_INFO
> +###################################################################
> +Struct EFI_IP6_CONFIG_INTERFACE_INFO {
> +  CHAR16                Name(32);
> +  UINT8                 IfType;
> +  UINT32                HwAddressSize;
> +  EFI_MAC_ADDRESS       HwAddress;
> +  UINT32                AddressInfoCount;
> +  POINTER               AddressInfo;
> +  UINT32                RouteCount;
> +  POINTER               RouteTable;
> +}
> +
> +###################################################################
> +# EFI_IP6_CONFIG_INTERFACE_ID
> +###################################################################
> +Struct EFI_IP6_CONFIG_INTERFACE_ID {
> +  UINT8                 Id(8);
> +}
> +
> +###################################################################
> +# EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> +###################################################################
> +Struct EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS {
> +  UINT32                DupAddrDetectTransmits;
> +}
> +
> +###################################################################
> +# EFI_IP6_CONFIG_MANUAL_ADDRESS
> +###################################################################
> +Struct EFI_IP6_CONFIG_MANUAL_ADDRESS {
> +  EFI_IPv6_ADDRESS      Address;
> +  BOOLEAN               IsAnycast;
> +  UINT8                 PrefixLength;
> +}
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> index de40066..f2a2dda 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> @@ -1,16 +1,16 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_PROC] == 1} {
> -  return
> -}
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_PROC] == 1} {
> +  return
> +}
>   set IP6CONFIG_PROC 1
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> index 9356240..da69bf9 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> @@ -1,84 +1,96 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -#
> -# Guid for SetData() interface
> -#
> -set Ip6ConfigSetDataConf1AssertionGuid001  7A224CCE-B79B-472a-9B8C-A47E074D5EEF
> -set Ip6ConfigSetDataConf2AssertionGuid001  46F12872-61F2-46e4-A2F9-5F685B419479
> -set Ip6ConfigSetDataConf2AssertionGuid002  1CAC93D3-732A-4e30-894D-EE63B6F486A0
> -set Ip6ConfigSetDataConf2AssertionGuid003  D005EBF3-CFD6-498a-9005-C2B3702EB4FC
> -set Ip6ConfigSetDataConf2AssertionGuid004  389806D5-4506-4319-8D17-9B4FC9D97E25
> -set Ip6ConfigSetDataConf2AssertionGuid005  5AEFDB0C-322F-49c3-9DD2-DFE21B66B308
> -set Ip6ConfigSetDataConf2AssertionGuid006  D339988F-2595-4fb5-81AE-A94DC470B234
> -set Ip6ConfigSetDataConf3AssertionGuid001  4319A43B-7641-47c0-84BB-985C479902A2
> -set Ip6ConfigSetDataConf4AssertionGuid001  01F3B344-EB52-4086-B949-55D7E4DC5BDE
> -set Ip6ConfigSetDataConf4AssertionGuid002  F612AF26-2519-497c-B205-37A2914AEE05
> -set Ip6ConfigSetDataConf4AssertionGuid003  592C1F3D-249E-4654-B4B1-600421624DD1
> -set Ip6ConfigSetDataConf5AssertionGuid001  D70BEC29-8026-4e1b-BA8B-36A313B45859
> -set Ip6ConfigSetDataConf5AssertionGuid002  FE793490-53F8-4991-8348-E624530E83E9
> -set Ip6ConfigSetDataConf5AssertionGuid003  42CCB2EF-D706-4d1a-B247-F42BBA99F707
> -set Ip6ConfigSetDataConf5AssertionGuid004  9168CB20-C891-42da-BB9F-7ADBE488B012
> -set Ip6ConfigSetDataConf5AssertionGuid005  AD058D87-1015-4b2d-A351-5BD4B0930B7B
> -set Ip6ConfigSetDataConf5AssertionGuid006  388BE3F6-D63E-4cbf-A3D9-3D941823259B
> -set Ip6ConfigSetDataConf6AssertionGuid001  2886BAE1-383A-400f-8F88-66376B2A0FF5
> -set Ip6ConfigSetDataConf7AssertionGuid001  D2C61F06-8822-4a09-89A1-7F0667FCAF0E
> -set Ip6ConfigSetDataFunc1AssertionGuid001  0A5902DA-4142-4494-AC66-2B731FFEA671
> -set Ip6ConfigSetDataFunc1AssertionGuid002  D9A9EF5E-D819-49d0-BB12-25ADEC52DDB3
> -set Ip6ConfigSetDataFunc1AssertionGuid003  14E96019-0815-4486-916C-E440E166628E
> -set Ip6ConfigSetDataFunc1AssertionGuid004  3458BBE0-0D7E-48ec-B380-2A885F44E104
> -
> -
> -#
> -# Guid for GetData() interface
> -#
> -set Ip6ConfigGetDataConf1AssertionGuid001  D15E421D-6228-4fea-8D5A-330FFF3F80D2
> -set Ip6ConfigGetDataConf2AssertionGuid001  38B36C04-12E9-4e96-B24F-C453851E6C1D
> -set Ip6ConfigGetDataConf3AssertionGuid001  D05A6C59-617F-4549-9659-4E0CFC3C3336
> -set Ip6ConfigGetDataConf3AssertionGuid002  ED45C2FE-9EC1-4553-AFA4-771E9D4F7611
> -set Ip6ConfigGetDataConf4AssertionGuid001  59118C46-2F2A-4029-ABD6-767418920369
> -set Ip6ConfigGetDataConf5AssertionGuid001  55955D09-C806-4777-9FF0-95C00E79AC28
> -set Ip6ConfigGetDataFunc1AssertionGuid001  FEAAC1A0-95BD-4dcb-91C3-9F08504BEFA1
> -set Ip6ConfigGetDataFunc1AssertionGuid002  3649D729-D6D0-456e-84AE-C7E7B8464343
> -set Ip6ConfigGetDataFunc1AssertionGuid003  165E79B4-C987-4100-8AA2-8AB115B07FAD
> -set Ip6ConfigGetDataFunc1AssertionGuid004  DB420311-17F7-40cf-A0B1-0294D5DCCC92
> -
> -#
> -# Guid for RegisterDataNotify() interface
> -#
> -set Ip6ConfigRegisterDataNotifyConf1AssertionGuid001  7E3F6157-EC75-4ecd-A79B-4926F3AA1C0D
> -set Ip6ConfigRegisterDataNotifyConf2AssertionGuid001  70DC8C71-C54D-4446-8AD9-BAC086E43D17
> -set Ip6ConfigRegisterDataNotifyConf3AssertionGuid001  2D88F18B-0BEF-4616-BDE5-CA4E0086E1D3
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001  9A98DC85-D018-45aa-B851-34EE2F6716D4
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002  39F7FB37-9F9F-485e-8DBC-0F3191DA9909
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003  D13DA599-37E7-474a-9343-83C9EFE80893
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004  5428BDD5-4332-4e3b-841F-3E60540AA35D
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005  1844A7C8-730C-4927-8E02-CE0A6CA08DCC
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006  B0E66591-9076-48e3-8DF6-2A1D59A572DB
> -
> -
> -#
> -# Guid for UnregisterDataNotify() interface
> -#
> -set Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001  8AB0E5A2-A4E1-4282-87B5-E377C763AD2F
> -set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001  5C68228F-AAAE-4d0b-9927-7664476EF360
> -set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002  55D8193E-F58E-4800-924B-73C902098DD8
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001  42EB4628-8DF6-4704-81E5-F7EAE6CBB270
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002  174CEC07-E573-434b-8E99-77F8AE9C55B5
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid003  1F5EF1AF-8A19-48d6-831F-51BE00B32AA5
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid004  388C8838-7790-4a1f-9DB7-5017D7AA60DB
> -
> -
> -
> -
> -
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +#
> +# Guid for SetData() interface
> +#
> +set Ip6ConfigSetDataConf1AssertionGuid001  7A224CCE-B79B-472a-9B8C-A47E074D5EEF
> +set Ip6ConfigSetDataConf2AssertionGuid001  46F12872-61F2-46e4-A2F9-5F685B419479
> +set Ip6ConfigSetDataConf2AssertionGuid002  1CAC93D3-732A-4e30-894D-EE63B6F486A0
> +set Ip6ConfigSetDataConf2AssertionGuid003  D005EBF3-CFD6-498a-9005-C2B3702EB4FC
> +set Ip6ConfigSetDataConf2AssertionGuid004  389806D5-4506-4319-8D17-9B4FC9D97E25
> +set Ip6ConfigSetDataConf2AssertionGuid005  5AEFDB0C-322F-49c3-9DD2-DFE21B66B308
> +set Ip6ConfigSetDataConf2AssertionGuid006  D339988F-2595-4fb5-81AE-A94DC470B234
> +set Ip6ConfigSetDataConf3AssertionGuid001  4319A43B-7641-47c0-84BB-985C479902A2
> +set Ip6ConfigSetDataConf4AssertionGuid001  01F3B344-EB52-4086-B949-55D7E4DC5BDE
> +set Ip6ConfigSetDataConf4AssertionGuid002  F612AF26-2519-497c-B205-37A2914AEE05
> +set Ip6ConfigSetDataConf4AssertionGuid003  592C1F3D-249E-4654-B4B1-600421624DD1
> +set Ip6ConfigSetDataConf5AssertionGuid001  D70BEC29-8026-4e1b-BA8B-36A313B45859
> +set Ip6ConfigSetDataConf5AssertionGuid002  FE793490-53F8-4991-8348-E624530E83E9
> +set Ip6ConfigSetDataConf5AssertionGuid003  42CCB2EF-D706-4d1a-B247-F42BBA99F707
> +set Ip6ConfigSetDataConf5AssertionGuid004  9168CB20-C891-42da-BB9F-7ADBE488B012
> +set Ip6ConfigSetDataConf5AssertionGuid005  AD058D87-1015-4b2d-A351-5BD4B0930B7B
> +set Ip6ConfigSetDataConf5AssertionGuid006  388BE3F6-D63E-4cbf-A3D9-3D941823259B
> +set Ip6ConfigSetDataConf6AssertionGuid001  2886BAE1-383A-400f-8F88-66376B2A0FF5
> +set Ip6ConfigSetDataConf7AssertionGuid001  D2C61F06-8822-4a09-89A1-7F0667FCAF0E
> +set Ip6ConfigSetDataFunc1AssertionGuid001  0A5902DA-4142-4494-AC66-2B731FFEA671
> +set Ip6ConfigSetDataFunc1AssertionGuid002  D9A9EF5E-D819-49d0-BB12-25ADEC52DDB3
> +set Ip6ConfigSetDataFunc1AssertionGuid003  14E96019-0815-4486-916C-E440E166628E
> +set Ip6ConfigSetDataFunc1AssertionGuid004  3458BBE0-0D7E-48ec-B380-2A885F44E104
> +
> +set Ip6ConfigSetDataFunc2AssertionGuid001  B533A7CF-6C27-421A-A816-B075E7EA4573
> +set Ip6ConfigSetDataFunc2AssertionGuid002  C816C0EE-52C0-400E-A9CC-25C263E27B04
> +set Ip6ConfigSetDataFunc2AssertionGuid003  2CF2435A-C444-4E09-BC8A-56A6F33CED9C
> +set Ip6ConfigSetDataFunc2AssertionGuid004  3B673875-4CE8-4F23-8FE1-E440376604FD
> +set Ip6ConfigSetDataFunc2AssertionGuid005  05B7BF41-9CE9-481B-B9A4-2E83AD5E89E3
> +set Ip6ConfigSetDataFunc2AssertionGuid006  4D49A668-A44D-4D69-9F20-40B7F147988E
> +set Ip6ConfigSetDataFunc2AssertionGuid007  23000969-DFDE-4B04-AD44-0844D595AA66
> +set Ip6ConfigSetDataFunc2AssertionGuid008  E444B75C-B559-48C4-8D15-8F882AC7F81E
> +set Ip6ConfigSetDataFunc2AssertionGuid009  AC649D07-2063-4045-9DAE-29B4E38E46BB
> +set Ip6ConfigSetDataFunc2AssertionGuid010  4EDBB740-405F-4E6D-A4A5-D77122D16278
> +set Ip6ConfigSetDataFunc2AssertionGuid011  D131A6D9-CCAB-4460-8402-80ED252FEB09
> +set Ip6ConfigSetDataFunc2AssertionGuid012  A5D75088-D8D3-47DD-A623-F6098DF70546
> +
> +#
> +# Guid for GetData() interface
> +#
> +set Ip6ConfigGetDataConf1AssertionGuid001  D15E421D-6228-4fea-8D5A-330FFF3F80D2
> +set Ip6ConfigGetDataConf2AssertionGuid001  38B36C04-12E9-4e96-B24F-C453851E6C1D
> +set Ip6ConfigGetDataConf3AssertionGuid001  D05A6C59-617F-4549-9659-4E0CFC3C3336
> +set Ip6ConfigGetDataConf3AssertionGuid002  ED45C2FE-9EC1-4553-AFA4-771E9D4F7611
> +set Ip6ConfigGetDataConf4AssertionGuid001  59118C46-2F2A-4029-ABD6-767418920369
> +set Ip6ConfigGetDataConf5AssertionGuid001  55955D09-C806-4777-9FF0-95C00E79AC28
> +set Ip6ConfigGetDataFunc1AssertionGuid001  FEAAC1A0-95BD-4dcb-91C3-9F08504BEFA1
> +set Ip6ConfigGetDataFunc1AssertionGuid002  3649D729-D6D0-456e-84AE-C7E7B8464343
> +set Ip6ConfigGetDataFunc1AssertionGuid003  165E79B4-C987-4100-8AA2-8AB115B07FAD
> +set Ip6ConfigGetDataFunc1AssertionGuid004  DB420311-17F7-40cf-A0B1-0294D5DCCC92
> +
> +#
> +# Guid for RegisterDataNotify() interface
> +#
> +set Ip6ConfigRegisterDataNotifyConf1AssertionGuid001  7E3F6157-EC75-4ecd-A79B-4926F3AA1C0D
> +set Ip6ConfigRegisterDataNotifyConf2AssertionGuid001  70DC8C71-C54D-4446-8AD9-BAC086E43D17
> +set Ip6ConfigRegisterDataNotifyConf3AssertionGuid001  2D88F18B-0BEF-4616-BDE5-CA4E0086E1D3
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001  9A98DC85-D018-45aa-B851-34EE2F6716D4
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002  39F7FB37-9F9F-485e-8DBC-0F3191DA9909
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003  D13DA599-37E7-474a-9343-83C9EFE80893
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004  5428BDD5-4332-4e3b-841F-3E60540AA35D
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005  1844A7C8-730C-4927-8E02-CE0A6CA08DCC
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006  B0E66591-9076-48e3-8DF6-2A1D59A572DB
> +
> +
> +#
> +# Guid for UnregisterDataNotify() interface
> +#
> +set Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001  8AB0E5A2-A4E1-4282-87B5-E377C763AD2F
> +set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001  5C68228F-AAAE-4d0b-9927-7664476EF360
> +set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002  55D8193E-F58E-4800-924B-73C902098DD8
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001  42EB4628-8DF6-4704-81E5-F7EAE6CBB270
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002  174CEC07-E573-434b-8E99-77F8AE9C55B5
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid003  1F5EF1AF-8A19-48d6-831F-51BE00B32AA5
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid004  388C8838-7790-4a1f-9DB7-5017D7AA60DB
> +
> +
> +
> +
> +
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> index 0d78321..1fcd579 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> @@ -1,51 +1,51 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_DEFINE] == 1} {
> -  return
> -}
> -set IP6CONFIG_DEFINE 1
> -
> -#
> -# EUT/ENTS Connection Definition
> -#
> -#set DEF_EUT_IP_ADDR   "2002:0000:0000:0000:0000:0000:0000:0001"
> -#set DEF_EUT_MAC_ADDR  [GetTargetMac]
> -#set DEF_EUT_PRT       0
> -
> -#set DEF_ENTS_IP_ADDR  "2002:0000:0000:0000:0000:0000:0000:4321"
> -#set DEF_ENTS_MAC_ADDR [GetHostMac]
> -#set DEF_ENTS_PRT      8888
> -
> -#
> -# EFI_IP6_CONFIG_DATA_TYPE
> -#
> -set IP6CDT(InterfaceInfo) 0
> -set IP6CDT(AltInterfaceId) 1
> -set IP6CDT(Policy) 2
> -set IP6CDT(DupAddrDetectTransmits) 3
> -set IP6CDT(ManualAddress) 4
> -set IP6CDT(Gateway) 5
> -set IP6CDT(DnsServer) 6
> -set IP6CDT(Maximum) 7
> -
> -#
> -# EFI_IP6_CONFIG_POLICY
> -#
> -set IP6CP(Manual) 0
> -set IP6CP(Automatic) 1
> -
> -#
> -# Timers
> -#
> -set i 0
> -set L_TimeOut 30
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_DEFINE] == 1} {
> +  return
> +}
> +set IP6CONFIG_DEFINE 1
> +
> +#
> +# EUT/ENTS Connection Definition
> +#
> +#set DEF_EUT_IP_ADDR   "2002:0000:0000:0000:0000:0000:0000:0001"
> +#set DEF_EUT_MAC_ADDR  [GetTargetMac]
> +#set DEF_EUT_PRT       0
> +
> +#set DEF_ENTS_IP_ADDR  "2002:0000:0000:0000:0000:0000:0000:4321"
> +#set DEF_ENTS_MAC_ADDR [GetHostMac]
> +#set DEF_ENTS_PRT      8888
> +
> +#
> +# EFI_IP6_CONFIG_DATA_TYPE
> +#
> +set IP6CDT(InterfaceInfo) 0
> +set IP6CDT(AltInterfaceId) 1
> +set IP6CDT(Policy) 2
> +set IP6CDT(DupAddrDetectTransmits) 3
> +set IP6CDT(ManualAddress) 4
> +set IP6CDT(Gateway) 5
> +set IP6CDT(DnsServer) 6
> +set IP6CDT(Maximum) 7
> +
> +#
> +# EFI_IP6_CONFIG_POLICY
> +#
> +set IP6CP(Manual) 0
> +set IP6CP(Automatic) 1
> +
> +#
> +# Timers
> +#
> +set i 0
> +set L_TimeOut 30
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> index f8a97a1..aa60cb8 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        F76B637C-BA5F-4451-8DF4-A13E1CCAB3A0
> -CaseName        RegisterDataNotify.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when event is NULL.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with event NULL
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf1AssertionGuid001     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the event NULL."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        F76B637C-BA5F-4451-8DF4-A13E1CCAB3A0
> +CaseName        RegisterDataNotify.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when event is NULL.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with event NULL
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf1AssertionGuid001     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the event NULL."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> index 3e72249..38b7431 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        E5221141-97BC-4e5f-9ABA-304BB11EADA0
> -CaseName        RegisterDataNotify.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when data type is not supported.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -UINTN                            R_Ip6ConfigDataTypeMaximum
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINTN]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with the datatype not supported
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf2AssertionGuid001     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the data type not supported."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        E5221141-97BC-4e5f-9ABA-304BB11EADA0
> +CaseName        RegisterDataNotify.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when data type is not supported.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +UINTN                            R_Ip6ConfigDataTypeMaximum
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINTN]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with the datatype not supported
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf2AssertionGuid001     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the data type not supported."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> index 8c8363c..77d9ef5 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> @@ -1,109 +1,109 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        B00EBD2E-F23E-434e-80E8-2A17C3BCFDFE
> -CaseName        RegisterDataNotify.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when event has already registered.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with valid parameters
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with valid parameters."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -#
> -# Check Point : Call RegisterDataNotify() with the same event (has been registered)
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf3AssertionGuid001     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the event registered already."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> -
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B00EBD2E-F23E-434e-80E8-2A17C3BCFDFE
> +CaseName        RegisterDataNotify.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when event has already registered.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with valid parameters
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with valid parameters."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +#
> +# Check Point : Call RegisterDataNotify() with the same event (has been registered)
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf3AssertionGuid001     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the event registered already."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> +
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> index 38be04c..b2b777c 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> @@ -1,539 +1,539 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        7D041B9B-4F68-434a-A0C6-63FDC415D078
> -CaseName        RegisterDataNotify.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on one data type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Context2
> -UINTN                            R_DoneEvent2
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                        "Ip6Config.GetData - Call GetData to get policy value."        \
> -                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                  "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 0
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    0
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                 "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> -                 "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -    if { $R_Context1 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                  "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -#
> -# Register Event for Manual Address
> -#
> -SetVar R_Context2 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context2,\
> -                &@R_DoneEvent2, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual address."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context2
> -    if { $R_Context2 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual address."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Events for registered datatype
> -#
> -GetVar R_Context2
> -if { $R_Context2 == 1 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002     \
> -                "Ip6Config.RegisterDataNotify - Registered event is signaled."
> -
> -#
> -# GetData to verfiy the data setting
> -#
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Ip6Config.GetData - Call GetData to get manual address."        \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -GetVar R_Ip6ConfigManualAddress.IsAnycast
> -if { ${R_Ip6ConfigManualAddress.IsAnycast} == FALSE } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -GetVar R_Ip6ConfigManualAddress.PrefixLength
> -if { ${R_Ip6ConfigManualAddress.PrefixLength} == 64 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -GetVar R_Ip6ConfigManualAddress.Address
> -set L_ManualAddress "2002:0000:0000:0000:0000:0000:0000:5000"
> -set L_RemoteAddress [ GetIpv6Address {R_Ip6ConfigManualAddress.Address} ]
> -if { [ string compare $L_RemoteAddress $L_ManualAddress ] == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -      GetAck
> -
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        7D041B9B-4F68-434a-A0C6-63FDC415D078
> +CaseName        RegisterDataNotify.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on one data type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Context2
> +UINTN                            R_DoneEvent2
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                        "Ip6Config.GetData - Call GetData to get policy value."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                  "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 0
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    0
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                 "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> +                 "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +    if { $R_Context1 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                  "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +#
> +# Register Event for Manual Address
> +#
> +SetVar R_Context2 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context2,\
> +                &@R_DoneEvent2, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual address."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context2
> +    if { $R_Context2 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual address."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Events for registered datatype
> +#
> +GetVar R_Context2
> +if { $R_Context2 == 1 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002     \
> +                "Ip6Config.RegisterDataNotify - Registered event is signaled."
> +
> +#
> +# GetData to verfiy the data setting
> +#
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Ip6Config.GetData - Call GetData to get manual address."        \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigManualAddress.IsAnycast
> +if { ${R_Ip6ConfigManualAddress.IsAnycast} == FALSE } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +GetVar R_Ip6ConfigManualAddress.PrefixLength
> +if { ${R_Ip6ConfigManualAddress.PrefixLength} == 64 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +GetVar R_Ip6ConfigManualAddress.Address
> +set L_ManualAddress "2002:0000:0000:0000:0000:0000:0000:5000"
> +set L_RemoteAddress [ GetIpv6Address {R_Ip6ConfigManualAddress.Address} ]
> +if { [ string compare $L_RemoteAddress $L_ManualAddress ] == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +      GetAck
> +
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> index bd52067..6f7e51f 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> @@ -1,266 +1,266 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        886AE98A-5D43-47b4-A339-85FB089F21FA
> -CaseName        RegisterDataNotify.Func1.Case2
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on two data types.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                          R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
> -#
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005                   \
> -               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - Policy."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006                   \
> -               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - DadXmits."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        886AE98A-5D43-47b4-A339-85FB089F21FA
> +CaseName        RegisterDataNotify.Func1.Case2
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on two data types.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                          R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005                   \
> +               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - Policy."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006                   \
> +               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - DadXmits."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> index 2213ec9..8c33521 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EF4CCB73-577C-4b8c-96E3-91517F0B7056
> -CaseName        SetData.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is NULL.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->SetData with data is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,NULL,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf1AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with Data NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EF4CCB73-577C-4b8c-96E3-91517F0B7056
> +CaseName        SetData.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is NULL.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->SetData with data is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,NULL,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf1AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with Data NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> index f14a5bb..bbf7830 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> @@ -1,299 +1,299 @@
> -#
> -#  Copyright 2006 - 2017 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        A9BBCC37-3ED5-4c11-B6B6-BE52A1131568
> -CaseName        SetData.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when one or more fields in data is invalid.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF2
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF2
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with "::"
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "::"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address (Not Unicast or Linklocal)."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point : Set Manual Address with duplication of list entries
> -#
> -set L_ManualListLen    3
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress($L_ManualListLen)
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress(0) @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress(1) @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress(2) @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set manual address (duplication of list entries)."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway with "ff02::1" (multicast address)
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "ff02::1"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with multicast address."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Gateway with duplication of list entries
> -#
> -set L_GatewayListLen   3
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway($L_GatewayListLen)
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> -SetVar R_Ip6ConfigGateway(0) @R_Temp_Ip6ConfigGateway
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway(1) @R_Temp_Ip6ConfigGateway
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> -SetVar R_Ip6ConfigGateway(2) @R_Temp_Ip6ConfigGateway
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid004                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with duplication of list entries."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server with "ff02::1" (link local address)
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "ff02::1"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid005                   \
> -                "Ip6Config.SetData - Call SetData to set dns server with multicast address."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF2
> -
> +#
> +#  Copyright 2006 - 2017 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        A9BBCC37-3ED5-4c11-B6B6-BE52A1131568
> +CaseName        SetData.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when one or more fields in data is invalid.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF2
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with "::"
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "::"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address (Not Unicast or Linklocal)."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point : Set Manual Address with duplication of list entries
> +#
> +set L_ManualListLen    3
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress($L_ManualListLen)
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress(0) @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress(1) @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress(2) @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set manual address (duplication of list entries)."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway with "ff02::1" (multicast address)
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "ff02::1"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with multicast address."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Gateway with duplication of list entries
> +#
> +set L_GatewayListLen   3
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway($L_GatewayListLen)
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> +SetVar R_Ip6ConfigGateway(0) @R_Temp_Ip6ConfigGateway
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway(1) @R_Temp_Ip6ConfigGateway
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> +SetVar R_Ip6ConfigGateway(2) @R_Temp_Ip6ConfigGateway
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid004                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with duplication of list entries."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server with "ff02::1" (link local address)
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "ff02::1"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid005                   \
> +                "Ip6Config.SetData - Call SetData to set dns server with multicast address."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> index 84a13c6..1cfc489 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        2FCE7A2D-09F4-4c8e-97CD-68A0045E34B8
> -CaseName        SetData.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is read-only type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->SetData with data is read only.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf3AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with data is read only."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        2FCE7A2D-09F4-4c8e-97CD-68A0045E34B8
> +CaseName        SetData.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is read-only type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->SetData with data is read only.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf3AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with data is read only."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF3
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> index 04235cc..597fdac 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> @@ -1,238 +1,238 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        D0A2D271-0BBF-4092-A61E-96FB23208DE0
> -CaseName        SetData.Conf4.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is not configurable in current policy.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF4
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF4
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF4
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF4
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address under automatic policy
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address under automatic poilcy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway under automatic policy
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set gateway under automatic policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server under automatic policy
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5001"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set dns server under automatic policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF4
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        D0A2D271-0BBF-4092-A61E-96FB23208DE0
> +CaseName        SetData.Conf4.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is not configurable in current policy.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF4
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF4
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF4
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF4
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address under automatic policy
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address under automatic poilcy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway under automatic policy
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set gateway under automatic policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server under automatic policy
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5001"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set dns server under automatic policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF4
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> index 9b7e9c1..5e5a3e1 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> @@ -1,279 +1,279 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        1F1728C3-BB62-4f28-9D75-6E631F7A6833
> -CaseName        SetData.Conf5.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data size does not match the data type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF5
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with wrong data size
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   16
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway with wrong data size
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   8
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server with wrong data size
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   8
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set dns server with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Check Point : Set Altlfld with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   1
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid004                   \
> -                "Ip6Config.SetData - Call SetData to set Altlfld with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -#
> -# Check Point : Set DadXmits with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   1
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits   3
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid005                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -				
> -#
> -# Check Point : Set Policy with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   1
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid006                   \
> -                "Ip6Config.SetData - Call SetData to set Policy with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -				
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF5
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        1F1728C3-BB62-4f28-9D75-6E631F7A6833
> +CaseName        SetData.Conf5.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data size does not match the data type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF5
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with wrong data size
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   16
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway with wrong data size
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   8
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server with wrong data size
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   8
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set dns server with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Check Point : Set Altlfld with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   1
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid004                   \
> +                "Ip6Config.SetData - Call SetData to set Altlfld with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +#
> +# Check Point : Set DadXmits with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   1
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits   3
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid005                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +				
> +#
> +# Check Point : Set Policy with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   1
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid006                   \
> +                "Ip6Config.SetData - Call SetData to set Policy with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +				
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF5
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> index 0430336..0bc8880 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        6C5FB23E-96A5-475a-8B7E-24B9BBB99C2A
> -CaseName        SetData.Conf6.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data type is not supported.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF6
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -UINT32                            R_Ip6ConfigMaximum
> -#
> -# Check Point: Call Ip6Config->SetData when data type is not supported.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximum,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf6AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with the data type not supported."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF6
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        6C5FB23E-96A5-475a-8B7E-24B9BBB99C2A
> +CaseName        SetData.Conf6.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data type is not supported.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF6
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +UINT32                            R_Ip6ConfigMaximum
> +#
> +# Check Point: Call Ip6Config->SetData when data type is not supported.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximum,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf6AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with the data type not supported."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF6
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> index 15e118b..22b5676 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> @@ -1,510 +1,510 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        477D07AC-6FEB-460b-BA92-A98245862D09
> -CaseName        SetData.Conf7.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF7
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 20
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_NOT_READY } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point : Set Manual Address with valid parameter before the former setting finishes
> -#
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf7AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter before the former setting finishes."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> -
> -
> -#
> -# Make sure the former configurations succeeds
> -# (Eliminate the side-effect to other cases)
> -#
> -set i 0
> -set L_TimeOut 30
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -set assert pass
> -while { $R_Status == $EFI_NOT_READY } {
> -  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -  GetAck
> -  GetVar R_Status
> -  if { $R_Status == $EFI_SUCCESS } {
> -    break
> -  } elseif { $i == $L_TimeOut } {
> -    set assert fail
> -
> -    RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -    GetAck
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -    GetAck
> -    EndScope _IP6CONFIG_SETDATA_CONF7
> -    EndLog
> -    return
> -  }
> -  incr i
> -  Stall 1
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -
> -		RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -		
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -		
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -
> -  return
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF7
> -
> -EndLog
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        477D07AC-6FEB-460b-BA92-A98245862D09
> +CaseName        SetData.Conf7.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF7
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_NOT_READY } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point : Set Manual Address with valid parameter before the former setting finishes
> +#
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf7AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter before the former setting finishes."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> +
> +
> +#
> +# Make sure the former configurations succeeds
> +# (Eliminate the side-effect to other cases)
> +#
> +set i 0
> +set L_TimeOut 30
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +set assert pass
> +while { $R_Status == $EFI_NOT_READY } {
> +  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +  GetAck
> +  GetVar R_Status
> +  if { $R_Status == $EFI_SUCCESS } {
> +    break
> +  } elseif { $i == $L_TimeOut } {
> +    set assert fail
> +
> +    RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +    GetAck
> +    EndScope _IP6CONFIG_SETDATA_CONF7
> +    EndLog
> +    return
> +  }
> +  incr i
> +  Stall 1
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +
> +		RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +		
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +		
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +
> +  return
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF7
> +
> +EndLog
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> index 2053775..d35f104 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> @@ -1,274 +1,274 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EF8FF5B4-8855-4fbd-87C5-C28C7312302A
> -CaseName        SetData.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must succeed with valid parameters.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_FUNC1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set AltInterfaceId
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> -SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> -SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> -SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> -SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> -SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> -SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> -SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> -SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> -               "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigInterfaceId
> -if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid002        \
> -                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> -               "Ip6Config.SetData - Call SetData to set manual DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_FUNC1
> -  EndLog
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid004        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_FUNC1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EF8FF5B4-8855-4fbd-87C5-C28C7312302A
> +CaseName        SetData.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must succeed with valid parameters.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_FUNC1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set AltInterfaceId
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> +SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> +SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> +SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> +SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> +SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> +SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> +SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> +SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> +               "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigInterfaceId
> +if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid002        \
> +                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> +               "Ip6Config.SetData - Call SetData to set manual DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC1
> +  EndLog
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid004        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_FUNC1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
> new file mode 100644
> index 0000000..4d9ec42
> --- /dev/null
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
> @@ -0,0 +1,838 @@
> +#
> +#  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        79F40434-2684-459C-8EEB-DCFB822D93F7
> +CaseName        SetData.Func2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData to clear the configuration.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_FUNC2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy fails(event is signaled correctly but data is incorrect)."
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits fails(event is signaled correctly but data is incorrect)."
> +
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +Stall 30
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set MANUAL ADDRESS."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001         \
> +                      "SetData to set MANUAL ADDRESS fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001                   \
> +               "Ip6Config.SetData - Call SetData to set MANUAL ADDRESS."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get Manual Address."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigManualAddress
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigManualAddress.Address}]
> +if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5000] != 0  } {
> +  puts $L_Proc_Ipv6Address
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)"
> +} elseif {${R_Ip6ConfigManualAddress.PrefixLength} != 64} {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)"
> +
> +} elseif {${R_Ip6ConfigManualAddress.IsAnycast} != false} {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)"
> +
> +} else {
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
> +                "Ip6Config.SetData - Set Gateway success(event is signaled correctly and data is correct.)"
> +}
> +
> +#
> +# Clear the Manual Address
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to clear MANUAL ADDRESS."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003         \
> +                      "SetData to clear MANUAL ADDRESS fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003                   \
> +               "Ip6Config.SetData - Call SetData to clear MANUAL ADDRESS."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid004        \
> +                      "Ip6Config.GetData - Call GetData to get Manual Address."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +					
> +#
> +# Check Point : Set Gateway with valid parameter
> +#
> +
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005                   \
> +                "Ip6Config.SetData - Call SetData to set Gateway."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005         \
> +                      "SetData to set Gateway fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005                   \
> +               "Ip6Config.SetData - Call SetData to set Gateway."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get Gateway."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigGateway
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigGateway}]
> +if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5001] != 0  } {
> +  puts $L_Proc_Ipv6Address
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid006                     \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)"
> +} else {
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid006                     \
> +                "Ip6Config.SetData - Set Gateway success(event is signaled correctly and data is correct.)"
> +}
> +
> +#
> +# Clear the Gateway
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007                   \
> +                "Ip6Config.SetData - Call SetData to clear Gateway."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007         \
> +                      "SetData to clear Gateway fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007                   \
> +               "Ip6Config.SetData - Call SetData to clear Gateway."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid008        \
> +                      "Ip6Config.GetData - Call GetData to get Gateway."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +#
> +# Check Point : Set DnsServer with valid parameter
> +#
> +
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009                   \
> +                "Ip6Config.SetData - Call SetData to set DnsServer."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009         \
> +                      "SetData to set DnsServer fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009                   \
> +               "Ip6Config.SetData - Call SetData to set DnsServer."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DnsServer."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigDnsServer
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigDnsServer}]
> +if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5002] != 0  } {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid010                     \
> +                  "Ip6Config.SetData - Set DnsServer fail(event is signaled correctly but data is incorrect.)"
> +} else {
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid010                     \
> +                "Ip6Config.SetData - Set DnsServer success(event is signaled correctly and data is correct.)"
> +}
> +
> +#
> +# Clear the DnsServer
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011                   \
> +                "Ip6Config.SetData - Call SetData to clear DnsServer."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011         \
> +                      "SetData to clear DnsServer fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011                   \
> +               "Ip6Config.SetData - Call SetData to clear DnsServer."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid012        \
> +                      "Ip6Config.GetData - Call GetData to get DnsServer."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +EndScope _IP6CONFIG_SETDATA_FUNC2
> +
> +EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> index a36469f..35b36ce 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        8B7B6AA6-2DCB-434b-9533-6346ABCC686D
> -CaseName        UnregisterDataNotify.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when event is NULL.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->UnregisterDataNotify with the event NULL
> -#
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event NULL."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        8B7B6AA6-2DCB-434b-9533-6346ABCC686D
> +CaseName        UnregisterDataNotify.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when event is NULL.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->UnregisterDataNotify with the event NULL
> +#
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event NULL."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> index d41f141..7eb5808 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> @@ -1,83 +1,83 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        9CE66A42-FADC-4d44-B577-B58CED8E984B
> -CaseName        UnregisterDataNotify.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when then event has not been registered for the data type ever.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                          R_Ip6ConfigDataType
> -
> -#
> -# Check Point: Call Ip6Config->UnregisterDataNotify with the event not registered
> -#
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event not registered."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        9CE66A42-FADC-4d44-B577-B58CED8E984B
> +CaseName        UnregisterDataNotify.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when then event has not been registered for the data type ever.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                          R_Ip6ConfigDataType
> +
> +#
> +# Check Point: Call Ip6Config->UnregisterDataNotify with the event not registered
> +#
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event not registered."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> index 5608dbe..e56d26a 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> @@ -1,99 +1,99 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EB679CF9-9A56-4a9f-B5CF-2D845B044560
> -CaseName        UnregisterDataNotify.Conf2.Case2
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when the event was registered and then unregistered for the data type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -
> -#
> -# Check Point: Register event for Datatype - ManualAddress and then unregister it
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with correct parameters."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Unregister the event again
> -#
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event has been unregistered."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EB679CF9-9A56-4a9f-B5CF-2D845B044560
> +CaseName        UnregisterDataNotify.Conf2.Case2
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when the event was registered and then unregistered for the data type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +
> +#
> +# Check Point: Register event for Datatype - ManualAddress and then unregister it
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with correct parameters."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Unregister the event again
> +#
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event has been unregistered."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> index 5b88510..6315fa7 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> @@ -1,98 +1,98 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        769658B4-3397-4367-8E10-C4513407FFB8
> -CaseName        UnregisterDataNotify.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling signal datatype.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Create Event and RegisterDataNotify
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "IfConfig6.RegisterDataNotify() with valid parameter."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point : Call Ip6Config->UnregisterDataNotify with valid parameter
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001    \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Close event
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        769658B4-3397-4367-8E10-C4513407FFB8
> +CaseName        UnregisterDataNotify.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling signal datatype.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Create Event and RegisterDataNotify
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "IfConfig6.RegisterDataNotify() with valid parameter."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point : Call Ip6Config->UnregisterDataNotify with valid parameter
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001    \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Close event
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> index 9f30136..cf1a374 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> @@ -1,237 +1,237 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        C206AA15-2F53-4860-BD78-453C4EA463B6
> -CaseName        UnregisterDataNotify.Func1.Case2
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling multiple datatype.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
> -#
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Unregister the event on Datatype [Policy]
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002    \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for Datatype - Policy."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 $L_Context1
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  Stall 5
> -  GetVar R_Context
> -  if { $R_Context == $L_Context2 } {
> -    set assert pass
> -  } else {
> -    set assert fail
> -  }
> -  RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003                   \
> -               "Ip6Config.UnregisterDataNotify - Event should not be signaled for DataType - Policy."
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004                   \
> -               "Ip6Config.RegisterDataNotify - Event should be signaled for DataType - DadXmits."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        C206AA15-2F53-4860-BD78-453C4EA463B6
> +CaseName        UnregisterDataNotify.Func1.Case2
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling multiple datatype.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Unregister the event on Datatype [Policy]
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002    \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for Datatype - Policy."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 $L_Context1
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  Stall 5
> +  GetVar R_Context
> +  if { $R_Context == $L_Context2 } {
> +    set assert pass
> +  } else {
> +    set assert fail
> +  }
> +  RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003                   \
> +               "Ip6Config.UnregisterDataNotify - Event should not be signaled for DataType - Policy."
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004                   \
> +               "Ip6Config.RegisterDataNotify - Event should be signaled for DataType - DadXmits."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +
>   EndLog
> \ No newline at end of file



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData
  2018-10-12  8:57 ` Supreeth Venkatesh
@ 2018-10-12 17:01   ` Jin, Eric
  0 siblings, 0 replies; 4+ messages in thread
From: Jin, Eric @ 2018-10-12 17:01 UTC (permalink / raw)
  To: Supreeth Venkatesh, edk2-devel@lists.01.org; +Cc: Wu, Jiaxin

Cc: Jiaxin Wu <jiaxin.wu@intel.com>

Jiaxin, could you please review the patch? Thanks

Best Regards
Eric

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Supreeth Venkatesh
Sent: Friday, October 12, 2018 4:57 PM
To: Jin, Eric <eric.jin@intel.com>; edk2-devel@lists.01.org
Subject: Re: [edk2] [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData

Eric,

We don't have EMS support in AARCH64, Can someone from Intel review this?

Thanks,

Supreeth


On 10/12/2018 09:20 AM, Eric Jin wrote:
> Spec clarifies the configuration clearance behavior
> Correct the end line
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Eric Jin <eric.jin@intel.com>
> Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
> ---
>   .../IP4Config2/Include/Ip4Config2AssertionGuid.tcl |    5 +-
>   .../TestCase/IP4Config2/SetData.Func1.Case2.tcl    |  714 +++++++++++++
>   .../Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl |  142 +--
>   .../Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl |  140 +--
>   .../Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl |  788 +++++++-------
>   .../Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl |  144 +--
>   .../Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl |  982 +++++++++---------
>   .../Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl |  542 +++++-----
>   .../TestCase/IP6Config/Include/Ip6Config.inc.tcl   |  192 ++--
>   .../TestCase/IP6Config/Include/Ip6Config.proc.tcl  |   30 +-
>   .../IP6Config/Include/Ip6ConfigAssertionGuid.tcl   |  180 ++--
>   .../TestCase/IP6Config/Include/Ip6ConfigDefine.tcl |  102 +-
>   .../IP6Config/RegisterDataNotify.Conf1.Case1.tcl   |  178 ++--
>   .../IP6Config/RegisterDataNotify.Conf2.Case1.tcl   |  178 ++--
>   .../IP6Config/RegisterDataNotify.Conf3.Case1.tcl   |  216 ++--
>   .../IP6Config/RegisterDataNotify.Func1.Case1.tcl   | 1076 ++++++++++----------
>   .../IP6Config/RegisterDataNotify.Func1.Case2.tcl   |  530 +++++-----
>   .../Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl |  142 +--
>   .../Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl |  596 +++++------
>   .../Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl |  142 +--
>   .../Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl |  474 ++++-----
>   .../Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl |  556 +++++-----
>   .../Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl |  142 +--
>   .../Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl | 1020 +++++++++----------
>   .../Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl |  546 +++++-----
>   .../Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl |  838 +++++++++++++++
>   .../IP6Config/UnregisterDataNotify.Conf1.Case1.tcl |  178 ++--
>   .../IP6Config/UnregisterDataNotify.Conf2.Case1.tcl |  164 +--
>   .../IP6Config/UnregisterDataNotify.Conf2.Case2.tcl |  196 ++--
>   .../IP6Config/UnregisterDataNotify.Func1.Case1.tcl |  194 ++--
>   .../IP6Config/UnregisterDataNotify.Func1.Case2.tcl |  472 ++++-----
>   31 files changed, 6683 insertions(+), 5116 deletions(-)
>   create mode 100644 uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
>   create mode 100644 uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
>
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl b/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> index 91a4fd1..e0604b2 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> @@ -1,6 +1,6 @@
>   #
>   #  Copyright 2017 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>
>   #
>   #  This program and the accompanying materials
>   #  are licensed and made available under the terms and conditions of the BSD License
> @@ -39,6 +39,9 @@ set Ip4Config2SetDataFunc1AssertionGuid008  00FBB58A-4BB3-499F-AE6B-744B6B9932E6
>   set Ip4Config2SetDataFunc1AssertionGuid009  DB8EF05C-085F-45D1-A0B1-DC2F307B6F1E
>   set Ip4Config2SetDataFunc1AssertionGuid010  29143621-896C-4FB9-9E70-7A4D2DA6BEE0
>   set Ip4Config2SetDataFunc1AssertionGuid011  72FEDF83-6755-4212-AF0F-780F457EFAA7
> +set Ip4Config2SetDataFunc1AssertionGuid012  EB7769D1-A31F-4F37-86F3-2BBF54834785
> +set Ip4Config2SetDataFunc1AssertionGuid013  78F3A664-A8E4-43B8-961F-71033E9145F2
> +set Ip4Config2SetDataFunc1AssertionGuid014  7F717D50-3A7C-4E2A-9F15-0A802E9BAFE6
>   
>   #
>   # Guid for GetData() interface
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
> new file mode 100644
> index 0000000..0517032
> --- /dev/null
> +++ b/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
> @@ -0,0 +1,714 @@
> +#
> +#  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B2AD20DF-2325-42B2-A199-A49ADF04A5DD
> +CaseName        SetData.Func1.Case2
> +CaseCategory    IP4Config2
> +CaseDescription {SetData must succeed When DataSize is 0 and
> +                Data is NULL,and existing configuration is cleared.}
> +
> +################################################################################
> +Include IP4Config2/Include/Ip4Config2.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN     R_Status
> +UINTN     R_Context
> +UINTN     R_DoneEvent
> +UINTN     R_Ip4Config2DataSize
> +UINT32    R_Ip4Config2DataType
> +UINT32    R_Ip4Config2Policy
> +
> +#
> +# Check Point: Call Ip4Config2->SetData to set Static policy
> +#
> +SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +SetVar R_Ip4Config2DataSize   [Sizeof UINT32]
> +SetVar R_Ip4Config2Policy     $IP4C2P(Static)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "BS.CreateEvent."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2Policy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                  "Ip4Config2.SetData - Call SetData to set Static policy."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                  "Ip4Config2.SetData - Call SetData to set Static policy."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Policy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get policy value."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip4Config2Policy
> +if { $R_Ip4Config2Policy == $IP4C2P(Static) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid002    \
> +                  "Set Static policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip4Config2Policy   $IP4C2DT(Policy)
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid002    \
> +                "Set Static policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address
> +#
> +EFI_IP4_CONFIG2_MANUAL_ADDRESS    R_Temp_Ip4Config2ManualAddress
> +EFI_IP4_CONFIG2_MANUAL_ADDRESS    R_Ip4Config2ManualAddress
> +SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +SetVar R_Ip4Config2DataSize   [Sizeof EFI_IP4_CONFIG2_MANUAL_ADDRESS]
> +SetIpv4Address R_Temp_Ip4Config2ManualAddress.Address       "10.239.9.15"
> +SetIpv4Address R_Temp_Ip4Config2ManualAddress.SubnetMask    "255.255.255.0"
> +SetVar R_Ip4Config2ManualAddress @R_Temp_Ip4Config2ManualAddress
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                  "Ip4Config2.SetData - Call SetData to set Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                  "IP4Config2.SetData - Call SetData to set Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Manual Address."    \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +EFI_IPv4_ADDRESS  R_Addr1
> +EFI_IPv4_ADDRESS  R_Addr2
> +set R_Addr1 [GetIpv4Address R_Ip4Config2ManualAddress.Address]
> +puts "R_Addr1 - $R_Addr1"
> +set R_Addr2 [GetIpv4Address R_Ip4Config2ManualAddress.SubnetMask]
> +puts "R_Addr1 - $R_Addr2"
> +
> +if {[string compare -nocase $R_Addr1 10.239.9.15] == 0} {
> +  if {[string compare -nocase $R_Addr2 255.255.255.0] == 0} {
> +    set assert pass
> +  } else {
> +    set assert fail
> +    RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                    "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> +    Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +    EndLog
> +    return
> +  }
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                  "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Points : Set Gateway
> +#
> +EFI_IPv4_ADDRESS               R_Ip4Config2Gateway
> +SetVar R_Ip4Config2DataType    $IP4C2DT(Gateway)
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +SetIpv4Address R_Ip4Config2Gateway "10.239.9.241"
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                  "Ip4Config2.SetData - Call SetData to set Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                  "Ip4Config2.SetData - Call SetData to set Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Gateway Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +EFI_IPv4_ADDRESS  R_Addr3
> +set R_Addr3 [GetIpv4Address R_Ip4Config2Gateway]
> +puts "R_Addr3 - $R_Addr3"
> +
> +if {[string compare -nocase $R_Addr3 10.239.9.241] == 0} {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid006    \
> +                  "Set Gateway succeeds(event is signaled correctly and data correct)."
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid006    \
> +                "Set Gateway succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Dns Server
> +#
> +EFI_IPv4_ADDRESS               R_Ip4Config2DnsServer
> +SetVar R_Ip4Config2DataType    $IP4C2DT(DnsServer)
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +SetIpv4Address R_Ip4Config2DnsServer "10.248.2.5"
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                  "Ip4Config2.SetData - Call SetData to set Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                  "Ip4Config2.SetData - Call SetData to set Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Dns Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +EFI_IPv4_ADDRESS  R_Addr4
> +set R_Addr4 [GetIpv4Address R_Ip4Config2DnsServer]
> +puts "R_Addr4 - $R_Addr4"
> +
> +if {[string compare -nocase $R_Addr4 10.248.2.5] == 0} {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid008    \
> +                  "Set Dns succeeds(event is signaled correctly and data correct)."
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid008    \
> +                "Set Dns succeeds(event is signaled correctly and data correct)."
> +
> +
> +
> +#
> +# Clean up - Call SetData when DataSize is 0 and Data is NULL
> +#
> +
> +
> +
> +#
> +# Set Manual Address
> +#
> +
> +SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +SetVar R_Ip4Config2DataSize   0
> +
> +
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                  "Ip4Config2.SetData - Call SetData to clear Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                      "SetData to clear Manual Address failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                  "IP4Config2.SetData - Call SetData to clear Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize   [Sizeof EFI_IP4_CONFIG2_MANUAL_ADDRESS]
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Manual Address."    \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +#
> +# Set Gateway Address
> +#
> +
> +
> +SetVar R_Ip4Config2DataType    $IP4C2DT(Gateway)
> +SetVar R_Ip4Config2DataSize    0
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                  "Ip4Config2.SetData - Call SetData to clear Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                      "SetData to clear Gateway Address failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                  "Ip4Config2.SetData - Call SetData to clear Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Gateway Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +#
> +# Check Point : Set Dns Server
> +#
> +
> +SetVar R_Ip4Config2DataType    $IP4C2DT(DnsServer)
> +SetVar R_Ip4Config2DataSize    0
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                  "Ip4Config2.SetData - Call SetData to clear Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                      "SetData to clear Dns Address failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                  "Ip4Config2.SetData - Call SetData to clear Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +Ip4Config2->GetData "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Dns Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +
> +EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +
> +EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> index a6b788d..beeb2fb 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        11FF93B5-8A85-4770-88C2-99E0AF9AE0AA
> -CaseName        GetData.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data size is NULL.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                          R_Ip6ConfigPolicy
> -UINT32                          R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with datasize is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,NULL,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigGetDataConf1AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with DataSize NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        11FF93B5-8A85-4770-88C2-99E0AF9AE0AA
> +CaseName        GetData.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data size is NULL.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                          R_Ip6ConfigPolicy
> +UINT32                          R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with datasize is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,NULL,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigGetDataConf1AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with DataSize NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> index c095756..6f90a9c 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> @@ -1,71 +1,71 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        B4C48D71-EF72-42e0-BD57-4825F7EB7B9F
> -CaseName        GetData.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data is NULL if data size is not zero.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32				  R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with data is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,NULL,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigGetDataConf2AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with Data NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B4C48D71-EF72-42e0-BD57-4825F7EB7B9F
> +CaseName        GetData.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data is NULL if data size is not zero.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32				  R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with data is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,NULL,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigGetDataConf2AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with Data NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> index c90d442..5688648 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> @@ -1,395 +1,395 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        7B341FC4-1F10-4851-83AD-103A56B0EC35
> -CaseName        GetData.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when DataSize is too small for the data type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy failure (event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid value
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar  R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData with valid value."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -    if { $R_Context1 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual address."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Point : Get Manual Address with datasize too small
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   16
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BUFFER_TOO_SMALL]
> -RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with the datasize too small."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BUFFER_TOO_SMALL"
> -
> -GetVar R_Ip6ConfigDataSize
> -set L_ObtainedSize [ expr { $R_Ip6ConfigDataSize } ]
> -set L_DesiredSize [ Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS ]
> -if { [ expr { $L_ObtainedSize % $L_DesiredSize } ] == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid002                   \
> -                "Ip6Config.GetData - Correctly Modify the DataSize."            \
> -                "ReturnSize - $L_ObtainedSize, ExpectedSize - $L_DesiredSize"
> -
> -#
> -# Clean up
> -#
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Unregister Event for Manual Address and close event
> -#
> -SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        7B341FC4-1F10-4851-83AD-103A56B0EC35
> +CaseName        GetData.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when DataSize is too small for the data type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy failure (event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid value
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar  R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData with valid value."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +    if { $R_Context1 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual address."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Point : Get Manual Address with datasize too small
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   16
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BUFFER_TOO_SMALL]
> +RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with the datasize too small."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BUFFER_TOO_SMALL"
> +
> +GetVar R_Ip6ConfigDataSize
> +set L_ObtainedSize [ expr { $R_Ip6ConfigDataSize } ]
> +set L_DesiredSize [ Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS ]
> +if { [ expr { $L_ObtainedSize % $L_DesiredSize } ] == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid002                   \
> +                "Ip6Config.GetData - Correctly Modify the DataSize."            \
> +                "ReturnSize - $L_ObtainedSize, ExpectedSize - $L_DesiredSize"
> +
> +#
> +# Clean up
> +#
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Unregister Event for Manual Address and close event
> +#
> +SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_CONF3
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> index e36cdfc..bd38be0 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> @@ -1,73 +1,73 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        F340A957-9345-478d-BE53-5F7C561C1866
> -CaseName        GetData.Conf4.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data type is not found.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF4
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -UINTN                            R_Ip6ConfigMaximumType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with the date type not existing.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximumType,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert $Ip6ConfigGetDataConf4AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with Datatype not existing."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF4
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        F340A957-9345-478d-BE53-5F7C561C1866
> +CaseName        GetData.Conf4.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data type is not found.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF4
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +UINTN                            R_Ip6ConfigMaximumType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with the date type not existing.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximumType,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigGetDataConf4AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with Datatype not existing."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF4
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> index c39323f..c186520 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> @@ -1,492 +1,492 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        6638523D-470B-4c50-AE75-DE0CE6854DE8
> -CaseName        GetData.Conf5.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF5
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 20
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_NOT_READY } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -#
> -# Check Point : Get Manual Address with valid parameter before the former setting finishes
> -#
> -set L_ManualListLen    1
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_READY]
> -RecordAssertion $assert $Ip6ConfigGetDataConf5AssertionGuid001                   \
> -                "Ip6Config.SetData - Call GetData to get manual address before the former setting finishes."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -#
> -# Make sure the former configurations succeeds
> -# (Eliminate the side-effect to other cases)
> -#
> -set i 0
> -set L_TimeOut 30
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -set assert pass
> -while { $R_Status == $EFI_NOT_READY } {
> -  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -  GetAck
> -  GetVar R_Status
> -  if { $R_Status == $EFI_SUCCESS } {
> -    break
> -  } elseif { $i == $L_TimeOut } {
> -    set assert fail
> -		
> -    RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -    GetAck
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -    GetAck
> -    EndScope _IP6CONFIG_GETDATA_CONF5
> -    EndLog
> -    return
> -  }
> -  incr i
> -  Stall 1
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		
> -              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -		
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -		
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_CONF5
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        6638523D-470B-4c50-AE75-DE0CE6854DE8
> +CaseName        GetData.Conf5.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF5
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_NOT_READY } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +#
> +# Check Point : Get Manual Address with valid parameter before the former setting finishes
> +#
> +set L_ManualListLen    1
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_READY]
> +RecordAssertion $assert $Ip6ConfigGetDataConf5AssertionGuid001                   \
> +                "Ip6Config.SetData - Call GetData to get manual address before the former setting finishes."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +#
> +# Make sure the former configurations succeeds
> +# (Eliminate the side-effect to other cases)
> +#
> +set i 0
> +set L_TimeOut 30
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +set assert pass
> +while { $R_Status == $EFI_NOT_READY } {
> +  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +  GetAck
> +  GetVar R_Status
> +  if { $R_Status == $EFI_SUCCESS } {
> +    break
> +  } elseif { $i == $L_TimeOut } {
> +    set assert fail
> +		
> +    RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +    GetAck
> +    EndScope _IP6CONFIG_GETDATA_CONF5
> +    EndLog
> +    return
> +  }
> +  incr i
> +  Stall 1
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		
> +              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +		
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +		
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_CONF5
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> index 6c4a72b..a0acc20 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> @@ -1,272 +1,272 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        E4CD5B45-9CF5-4938-A243-7764F1E8CDE9
> -CaseName        GetData.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must succeed with valid parameters.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_FUNC1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->GetData to set AltInterfaceId
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> -SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> -SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> -SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> -SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> -SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> -SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> -SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> -SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid        \
> -                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid001        \
> -                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigInterfaceId
> -if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid002        \
> -                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.GetData - Call GetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.GetData - Call GetData to set manual DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid003        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid004        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_FUNC1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        E4CD5B45-9CF5-4938-A243-7764F1E8CDE9
> +CaseName        GetData.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must succeed with valid parameters.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_FUNC1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->GetData to set AltInterfaceId
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> +SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> +SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> +SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> +SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> +SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> +SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> +SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> +SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid        \
> +                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid001        \
> +                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigInterfaceId
> +if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid002        \
> +                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.GetData - Call GetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.GetData - Call GetData to set manual DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid003        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid004        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_FUNC1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> index 918038d..9e162e7 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> @@ -1,96 +1,96 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_INC] == 1} {
> -  return
> -}
> -set IP6CONFIG_INC 1
> -
> -Include Include/EntsProtocolTest.inc.tcl
> -Include Include/EntsConfigure.tcl
> -Include Include/EfiBootService.inc.tcl
> -Include Include/EfiGenericService.inc.tcl
> -Include EfiUtil/EfiInclude.tcl
> -
> -Include IP6/Include/Ip6.inc.tcl
> -Include IP6Config/Include/Ip6ConfigDefine.tcl
> -Include IP6Config/Include/Ip6Config.proc.tcl
> -Include IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> -Include Include/GenericAssertionGuid.tcl
> -
> -###################################################################
> -# Function Declaration
> -###################################################################
> -Func Ip6Config->SetData {
> -    UINT32
> -    UINTN
> -    POINTER
> -    POINTER
> -}
> -
> -Func Ip6Config->GetData {
> -    UINT32
> -    POINTER
> -    POINTER
> -    POINTER
> -}
> -
> -Func Ip6Config->RegisterDataNotify {
> -    UINT32
> -    UINTN
> -    POINTER
> -}
> -
> -Func Ip6Config->UnregisterDataNotify {
> -    UINT32
> -    UINTN
> -    POINTER
> -}
> -
> -
> -###################################################################
> -# EFI_IP6_CONFIG_INTERFACE_INFO
> -###################################################################
> -Struct EFI_IP6_CONFIG_INTERFACE_INFO {
> -  CHAR16                Name(32);
> -  UINT8                 IfType;
> -  UINT32                HwAddressSize;
> -  EFI_MAC_ADDRESS       HwAddress;
> -  UINT32                AddressInfoCount;
> -  POINTER               AddressInfo;
> -  UINT32                RouteCount;
> -  POINTER               RouteTable;
> -}
> -
> -###################################################################
> -# EFI_IP6_CONFIG_INTERFACE_ID
> -###################################################################
> -Struct EFI_IP6_CONFIG_INTERFACE_ID {
> -  UINT8                 Id(8);
> -}
> -
> -###################################################################
> -# EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> -###################################################################
> -Struct EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS {
> -  UINT32                DupAddrDetectTransmits;
> -}
> -
> -###################################################################
> -# EFI_IP6_CONFIG_MANUAL_ADDRESS
> -###################################################################
> -Struct EFI_IP6_CONFIG_MANUAL_ADDRESS {
> -  EFI_IPv6_ADDRESS      Address;
> -  BOOLEAN               IsAnycast;
> -  UINT8                 PrefixLength;
> -}
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_INC] == 1} {
> +  return
> +}
> +set IP6CONFIG_INC 1
> +
> +Include Include/EntsProtocolTest.inc.tcl
> +Include Include/EntsConfigure.tcl
> +Include Include/EfiBootService.inc.tcl
> +Include Include/EfiGenericService.inc.tcl
> +Include EfiUtil/EfiInclude.tcl
> +
> +Include IP6/Include/Ip6.inc.tcl
> +Include IP6Config/Include/Ip6ConfigDefine.tcl
> +Include IP6Config/Include/Ip6Config.proc.tcl
> +Include IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> +Include Include/GenericAssertionGuid.tcl
> +
> +###################################################################
> +# Function Declaration
> +###################################################################
> +Func Ip6Config->SetData {
> +    UINT32
> +    UINTN
> +    POINTER
> +    POINTER
> +}
> +
> +Func Ip6Config->GetData {
> +    UINT32
> +    POINTER
> +    POINTER
> +    POINTER
> +}
> +
> +Func Ip6Config->RegisterDataNotify {
> +    UINT32
> +    UINTN
> +    POINTER
> +}
> +
> +Func Ip6Config->UnregisterDataNotify {
> +    UINT32
> +    UINTN
> +    POINTER
> +}
> +
> +
> +###################################################################
> +# EFI_IP6_CONFIG_INTERFACE_INFO
> +###################################################################
> +Struct EFI_IP6_CONFIG_INTERFACE_INFO {
> +  CHAR16                Name(32);
> +  UINT8                 IfType;
> +  UINT32                HwAddressSize;
> +  EFI_MAC_ADDRESS       HwAddress;
> +  UINT32                AddressInfoCount;
> +  POINTER               AddressInfo;
> +  UINT32                RouteCount;
> +  POINTER               RouteTable;
> +}
> +
> +###################################################################
> +# EFI_IP6_CONFIG_INTERFACE_ID
> +###################################################################
> +Struct EFI_IP6_CONFIG_INTERFACE_ID {
> +  UINT8                 Id(8);
> +}
> +
> +###################################################################
> +# EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> +###################################################################
> +Struct EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS {
> +  UINT32                DupAddrDetectTransmits;
> +}
> +
> +###################################################################
> +# EFI_IP6_CONFIG_MANUAL_ADDRESS
> +###################################################################
> +Struct EFI_IP6_CONFIG_MANUAL_ADDRESS {
> +  EFI_IPv6_ADDRESS      Address;
> +  BOOLEAN               IsAnycast;
> +  UINT8                 PrefixLength;
> +}
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> index de40066..f2a2dda 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> @@ -1,16 +1,16 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_PROC] == 1} {
> -  return
> -}
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_PROC] == 1} {
> +  return
> +}
>   set IP6CONFIG_PROC 1
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> index 9356240..da69bf9 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> @@ -1,84 +1,96 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -#
> -# Guid for SetData() interface
> -#
> -set Ip6ConfigSetDataConf1AssertionGuid001  7A224CCE-B79B-472a-9B8C-A47E074D5EEF
> -set Ip6ConfigSetDataConf2AssertionGuid001  46F12872-61F2-46e4-A2F9-5F685B419479
> -set Ip6ConfigSetDataConf2AssertionGuid002  1CAC93D3-732A-4e30-894D-EE63B6F486A0
> -set Ip6ConfigSetDataConf2AssertionGuid003  D005EBF3-CFD6-498a-9005-C2B3702EB4FC
> -set Ip6ConfigSetDataConf2AssertionGuid004  389806D5-4506-4319-8D17-9B4FC9D97E25
> -set Ip6ConfigSetDataConf2AssertionGuid005  5AEFDB0C-322F-49c3-9DD2-DFE21B66B308
> -set Ip6ConfigSetDataConf2AssertionGuid006  D339988F-2595-4fb5-81AE-A94DC470B234
> -set Ip6ConfigSetDataConf3AssertionGuid001  4319A43B-7641-47c0-84BB-985C479902A2
> -set Ip6ConfigSetDataConf4AssertionGuid001  01F3B344-EB52-4086-B949-55D7E4DC5BDE
> -set Ip6ConfigSetDataConf4AssertionGuid002  F612AF26-2519-497c-B205-37A2914AEE05
> -set Ip6ConfigSetDataConf4AssertionGuid003  592C1F3D-249E-4654-B4B1-600421624DD1
> -set Ip6ConfigSetDataConf5AssertionGuid001  D70BEC29-8026-4e1b-BA8B-36A313B45859
> -set Ip6ConfigSetDataConf5AssertionGuid002  FE793490-53F8-4991-8348-E624530E83E9
> -set Ip6ConfigSetDataConf5AssertionGuid003  42CCB2EF-D706-4d1a-B247-F42BBA99F707
> -set Ip6ConfigSetDataConf5AssertionGuid004  9168CB20-C891-42da-BB9F-7ADBE488B012
> -set Ip6ConfigSetDataConf5AssertionGuid005  AD058D87-1015-4b2d-A351-5BD4B0930B7B
> -set Ip6ConfigSetDataConf5AssertionGuid006  388BE3F6-D63E-4cbf-A3D9-3D941823259B
> -set Ip6ConfigSetDataConf6AssertionGuid001  2886BAE1-383A-400f-8F88-66376B2A0FF5
> -set Ip6ConfigSetDataConf7AssertionGuid001  D2C61F06-8822-4a09-89A1-7F0667FCAF0E
> -set Ip6ConfigSetDataFunc1AssertionGuid001  0A5902DA-4142-4494-AC66-2B731FFEA671
> -set Ip6ConfigSetDataFunc1AssertionGuid002  D9A9EF5E-D819-49d0-BB12-25ADEC52DDB3
> -set Ip6ConfigSetDataFunc1AssertionGuid003  14E96019-0815-4486-916C-E440E166628E
> -set Ip6ConfigSetDataFunc1AssertionGuid004  3458BBE0-0D7E-48ec-B380-2A885F44E104
> -
> -
> -#
> -# Guid for GetData() interface
> -#
> -set Ip6ConfigGetDataConf1AssertionGuid001  D15E421D-6228-4fea-8D5A-330FFF3F80D2
> -set Ip6ConfigGetDataConf2AssertionGuid001  38B36C04-12E9-4e96-B24F-C453851E6C1D
> -set Ip6ConfigGetDataConf3AssertionGuid001  D05A6C59-617F-4549-9659-4E0CFC3C3336
> -set Ip6ConfigGetDataConf3AssertionGuid002  ED45C2FE-9EC1-4553-AFA4-771E9D4F7611
> -set Ip6ConfigGetDataConf4AssertionGuid001  59118C46-2F2A-4029-ABD6-767418920369
> -set Ip6ConfigGetDataConf5AssertionGuid001  55955D09-C806-4777-9FF0-95C00E79AC28
> -set Ip6ConfigGetDataFunc1AssertionGuid001  FEAAC1A0-95BD-4dcb-91C3-9F08504BEFA1
> -set Ip6ConfigGetDataFunc1AssertionGuid002  3649D729-D6D0-456e-84AE-C7E7B8464343
> -set Ip6ConfigGetDataFunc1AssertionGuid003  165E79B4-C987-4100-8AA2-8AB115B07FAD
> -set Ip6ConfigGetDataFunc1AssertionGuid004  DB420311-17F7-40cf-A0B1-0294D5DCCC92
> -
> -#
> -# Guid for RegisterDataNotify() interface
> -#
> -set Ip6ConfigRegisterDataNotifyConf1AssertionGuid001  7E3F6157-EC75-4ecd-A79B-4926F3AA1C0D
> -set Ip6ConfigRegisterDataNotifyConf2AssertionGuid001  70DC8C71-C54D-4446-8AD9-BAC086E43D17
> -set Ip6ConfigRegisterDataNotifyConf3AssertionGuid001  2D88F18B-0BEF-4616-BDE5-CA4E0086E1D3
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001  9A98DC85-D018-45aa-B851-34EE2F6716D4
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002  39F7FB37-9F9F-485e-8DBC-0F3191DA9909
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003  D13DA599-37E7-474a-9343-83C9EFE80893
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004  5428BDD5-4332-4e3b-841F-3E60540AA35D
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005  1844A7C8-730C-4927-8E02-CE0A6CA08DCC
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006  B0E66591-9076-48e3-8DF6-2A1D59A572DB
> -
> -
> -#
> -# Guid for UnregisterDataNotify() interface
> -#
> -set Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001  8AB0E5A2-A4E1-4282-87B5-E377C763AD2F
> -set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001  5C68228F-AAAE-4d0b-9927-7664476EF360
> -set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002  55D8193E-F58E-4800-924B-73C902098DD8
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001  42EB4628-8DF6-4704-81E5-F7EAE6CBB270
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002  174CEC07-E573-434b-8E99-77F8AE9C55B5
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid003  1F5EF1AF-8A19-48d6-831F-51BE00B32AA5
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid004  388C8838-7790-4a1f-9DB7-5017D7AA60DB
> -
> -
> -
> -
> -
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +#
> +# Guid for SetData() interface
> +#
> +set Ip6ConfigSetDataConf1AssertionGuid001  7A224CCE-B79B-472a-9B8C-A47E074D5EEF
> +set Ip6ConfigSetDataConf2AssertionGuid001  46F12872-61F2-46e4-A2F9-5F685B419479
> +set Ip6ConfigSetDataConf2AssertionGuid002  1CAC93D3-732A-4e30-894D-EE63B6F486A0
> +set Ip6ConfigSetDataConf2AssertionGuid003  D005EBF3-CFD6-498a-9005-C2B3702EB4FC
> +set Ip6ConfigSetDataConf2AssertionGuid004  389806D5-4506-4319-8D17-9B4FC9D97E25
> +set Ip6ConfigSetDataConf2AssertionGuid005  5AEFDB0C-322F-49c3-9DD2-DFE21B66B308
> +set Ip6ConfigSetDataConf2AssertionGuid006  D339988F-2595-4fb5-81AE-A94DC470B234
> +set Ip6ConfigSetDataConf3AssertionGuid001  4319A43B-7641-47c0-84BB-985C479902A2
> +set Ip6ConfigSetDataConf4AssertionGuid001  01F3B344-EB52-4086-B949-55D7E4DC5BDE
> +set Ip6ConfigSetDataConf4AssertionGuid002  F612AF26-2519-497c-B205-37A2914AEE05
> +set Ip6ConfigSetDataConf4AssertionGuid003  592C1F3D-249E-4654-B4B1-600421624DD1
> +set Ip6ConfigSetDataConf5AssertionGuid001  D70BEC29-8026-4e1b-BA8B-36A313B45859
> +set Ip6ConfigSetDataConf5AssertionGuid002  FE793490-53F8-4991-8348-E624530E83E9
> +set Ip6ConfigSetDataConf5AssertionGuid003  42CCB2EF-D706-4d1a-B247-F42BBA99F707
> +set Ip6ConfigSetDataConf5AssertionGuid004  9168CB20-C891-42da-BB9F-7ADBE488B012
> +set Ip6ConfigSetDataConf5AssertionGuid005  AD058D87-1015-4b2d-A351-5BD4B0930B7B
> +set Ip6ConfigSetDataConf5AssertionGuid006  388BE3F6-D63E-4cbf-A3D9-3D941823259B
> +set Ip6ConfigSetDataConf6AssertionGuid001  2886BAE1-383A-400f-8F88-66376B2A0FF5
> +set Ip6ConfigSetDataConf7AssertionGuid001  D2C61F06-8822-4a09-89A1-7F0667FCAF0E
> +set Ip6ConfigSetDataFunc1AssertionGuid001  0A5902DA-4142-4494-AC66-2B731FFEA671
> +set Ip6ConfigSetDataFunc1AssertionGuid002  D9A9EF5E-D819-49d0-BB12-25ADEC52DDB3
> +set Ip6ConfigSetDataFunc1AssertionGuid003  14E96019-0815-4486-916C-E440E166628E
> +set Ip6ConfigSetDataFunc1AssertionGuid004  3458BBE0-0D7E-48ec-B380-2A885F44E104
> +
> +set Ip6ConfigSetDataFunc2AssertionGuid001  B533A7CF-6C27-421A-A816-B075E7EA4573
> +set Ip6ConfigSetDataFunc2AssertionGuid002  C816C0EE-52C0-400E-A9CC-25C263E27B04
> +set Ip6ConfigSetDataFunc2AssertionGuid003  2CF2435A-C444-4E09-BC8A-56A6F33CED9C
> +set Ip6ConfigSetDataFunc2AssertionGuid004  3B673875-4CE8-4F23-8FE1-E440376604FD
> +set Ip6ConfigSetDataFunc2AssertionGuid005  05B7BF41-9CE9-481B-B9A4-2E83AD5E89E3
> +set Ip6ConfigSetDataFunc2AssertionGuid006  4D49A668-A44D-4D69-9F20-40B7F147988E
> +set Ip6ConfigSetDataFunc2AssertionGuid007  23000969-DFDE-4B04-AD44-0844D595AA66
> +set Ip6ConfigSetDataFunc2AssertionGuid008  E444B75C-B559-48C4-8D15-8F882AC7F81E
> +set Ip6ConfigSetDataFunc2AssertionGuid009  AC649D07-2063-4045-9DAE-29B4E38E46BB
> +set Ip6ConfigSetDataFunc2AssertionGuid010  4EDBB740-405F-4E6D-A4A5-D77122D16278
> +set Ip6ConfigSetDataFunc2AssertionGuid011  D131A6D9-CCAB-4460-8402-80ED252FEB09
> +set Ip6ConfigSetDataFunc2AssertionGuid012  A5D75088-D8D3-47DD-A623-F6098DF70546
> +
> +#
> +# Guid for GetData() interface
> +#
> +set Ip6ConfigGetDataConf1AssertionGuid001  D15E421D-6228-4fea-8D5A-330FFF3F80D2
> +set Ip6ConfigGetDataConf2AssertionGuid001  38B36C04-12E9-4e96-B24F-C453851E6C1D
> +set Ip6ConfigGetDataConf3AssertionGuid001  D05A6C59-617F-4549-9659-4E0CFC3C3336
> +set Ip6ConfigGetDataConf3AssertionGuid002  ED45C2FE-9EC1-4553-AFA4-771E9D4F7611
> +set Ip6ConfigGetDataConf4AssertionGuid001  59118C46-2F2A-4029-ABD6-767418920369
> +set Ip6ConfigGetDataConf5AssertionGuid001  55955D09-C806-4777-9FF0-95C00E79AC28
> +set Ip6ConfigGetDataFunc1AssertionGuid001  FEAAC1A0-95BD-4dcb-91C3-9F08504BEFA1
> +set Ip6ConfigGetDataFunc1AssertionGuid002  3649D729-D6D0-456e-84AE-C7E7B8464343
> +set Ip6ConfigGetDataFunc1AssertionGuid003  165E79B4-C987-4100-8AA2-8AB115B07FAD
> +set Ip6ConfigGetDataFunc1AssertionGuid004  DB420311-17F7-40cf-A0B1-0294D5DCCC92
> +
> +#
> +# Guid for RegisterDataNotify() interface
> +#
> +set Ip6ConfigRegisterDataNotifyConf1AssertionGuid001  7E3F6157-EC75-4ecd-A79B-4926F3AA1C0D
> +set Ip6ConfigRegisterDataNotifyConf2AssertionGuid001  70DC8C71-C54D-4446-8AD9-BAC086E43D17
> +set Ip6ConfigRegisterDataNotifyConf3AssertionGuid001  2D88F18B-0BEF-4616-BDE5-CA4E0086E1D3
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001  9A98DC85-D018-45aa-B851-34EE2F6716D4
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002  39F7FB37-9F9F-485e-8DBC-0F3191DA9909
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003  D13DA599-37E7-474a-9343-83C9EFE80893
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004  5428BDD5-4332-4e3b-841F-3E60540AA35D
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005  1844A7C8-730C-4927-8E02-CE0A6CA08DCC
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006  B0E66591-9076-48e3-8DF6-2A1D59A572DB
> +
> +
> +#
> +# Guid for UnregisterDataNotify() interface
> +#
> +set Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001  8AB0E5A2-A4E1-4282-87B5-E377C763AD2F
> +set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001  5C68228F-AAAE-4d0b-9927-7664476EF360
> +set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002  55D8193E-F58E-4800-924B-73C902098DD8
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001  42EB4628-8DF6-4704-81E5-F7EAE6CBB270
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002  174CEC07-E573-434b-8E99-77F8AE9C55B5
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid003  1F5EF1AF-8A19-48d6-831F-51BE00B32AA5
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid004  388C8838-7790-4a1f-9DB7-5017D7AA60DB
> +
> +
> +
> +
> +
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> index 0d78321..1fcd579 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> @@ -1,51 +1,51 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_DEFINE] == 1} {
> -  return
> -}
> -set IP6CONFIG_DEFINE 1
> -
> -#
> -# EUT/ENTS Connection Definition
> -#
> -#set DEF_EUT_IP_ADDR   "2002:0000:0000:0000:0000:0000:0000:0001"
> -#set DEF_EUT_MAC_ADDR  [GetTargetMac]
> -#set DEF_EUT_PRT       0
> -
> -#set DEF_ENTS_IP_ADDR  "2002:0000:0000:0000:0000:0000:0000:4321"
> -#set DEF_ENTS_MAC_ADDR [GetHostMac]
> -#set DEF_ENTS_PRT      8888
> -
> -#
> -# EFI_IP6_CONFIG_DATA_TYPE
> -#
> -set IP6CDT(InterfaceInfo) 0
> -set IP6CDT(AltInterfaceId) 1
> -set IP6CDT(Policy) 2
> -set IP6CDT(DupAddrDetectTransmits) 3
> -set IP6CDT(ManualAddress) 4
> -set IP6CDT(Gateway) 5
> -set IP6CDT(DnsServer) 6
> -set IP6CDT(Maximum) 7
> -
> -#
> -# EFI_IP6_CONFIG_POLICY
> -#
> -set IP6CP(Manual) 0
> -set IP6CP(Automatic) 1
> -
> -#
> -# Timers
> -#
> -set i 0
> -set L_TimeOut 30
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_DEFINE] == 1} {
> +  return
> +}
> +set IP6CONFIG_DEFINE 1
> +
> +#
> +# EUT/ENTS Connection Definition
> +#
> +#set DEF_EUT_IP_ADDR   "2002:0000:0000:0000:0000:0000:0000:0001"
> +#set DEF_EUT_MAC_ADDR  [GetTargetMac]
> +#set DEF_EUT_PRT       0
> +
> +#set DEF_ENTS_IP_ADDR  "2002:0000:0000:0000:0000:0000:0000:4321"
> +#set DEF_ENTS_MAC_ADDR [GetHostMac]
> +#set DEF_ENTS_PRT      8888
> +
> +#
> +# EFI_IP6_CONFIG_DATA_TYPE
> +#
> +set IP6CDT(InterfaceInfo) 0
> +set IP6CDT(AltInterfaceId) 1
> +set IP6CDT(Policy) 2
> +set IP6CDT(DupAddrDetectTransmits) 3
> +set IP6CDT(ManualAddress) 4
> +set IP6CDT(Gateway) 5
> +set IP6CDT(DnsServer) 6
> +set IP6CDT(Maximum) 7
> +
> +#
> +# EFI_IP6_CONFIG_POLICY
> +#
> +set IP6CP(Manual) 0
> +set IP6CP(Automatic) 1
> +
> +#
> +# Timers
> +#
> +set i 0
> +set L_TimeOut 30
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> index f8a97a1..aa60cb8 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        F76B637C-BA5F-4451-8DF4-A13E1CCAB3A0
> -CaseName        RegisterDataNotify.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when event is NULL.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with event NULL
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf1AssertionGuid001     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the event NULL."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        F76B637C-BA5F-4451-8DF4-A13E1CCAB3A0
> +CaseName        RegisterDataNotify.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when event is NULL.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with event NULL
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf1AssertionGuid001     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the event NULL."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> index 3e72249..38b7431 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        E5221141-97BC-4e5f-9ABA-304BB11EADA0
> -CaseName        RegisterDataNotify.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when data type is not supported.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -UINTN                            R_Ip6ConfigDataTypeMaximum
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINTN]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with the datatype not supported
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf2AssertionGuid001     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the data type not supported."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        E5221141-97BC-4e5f-9ABA-304BB11EADA0
> +CaseName        RegisterDataNotify.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when data type is not supported.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +UINTN                            R_Ip6ConfigDataTypeMaximum
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINTN]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with the datatype not supported
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf2AssertionGuid001     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the data type not supported."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> index 8c8363c..77d9ef5 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> @@ -1,109 +1,109 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        B00EBD2E-F23E-434e-80E8-2A17C3BCFDFE
> -CaseName        RegisterDataNotify.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when event has already registered.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with valid parameters
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with valid parameters."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -#
> -# Check Point : Call RegisterDataNotify() with the same event (has been registered)
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf3AssertionGuid001     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the event registered already."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> -
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B00EBD2E-F23E-434e-80E8-2A17C3BCFDFE
> +CaseName        RegisterDataNotify.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when event has already registered.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with valid parameters
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with valid parameters."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +#
> +# Check Point : Call RegisterDataNotify() with the same event (has been registered)
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf3AssertionGuid001     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the event registered already."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> +
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> index 38be04c..b2b777c 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> @@ -1,539 +1,539 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        7D041B9B-4F68-434a-A0C6-63FDC415D078
> -CaseName        RegisterDataNotify.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on one data type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Context2
> -UINTN                            R_DoneEvent2
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                        "Ip6Config.GetData - Call GetData to get policy value."        \
> -                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                  "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 0
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    0
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                 "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> -                 "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -    if { $R_Context1 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                  "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -#
> -# Register Event for Manual Address
> -#
> -SetVar R_Context2 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context2,\
> -                &@R_DoneEvent2, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual address."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context2
> -    if { $R_Context2 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual address."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Events for registered datatype
> -#
> -GetVar R_Context2
> -if { $R_Context2 == 1 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002     \
> -                "Ip6Config.RegisterDataNotify - Registered event is signaled."
> -
> -#
> -# GetData to verfiy the data setting
> -#
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Ip6Config.GetData - Call GetData to get manual address."        \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -GetVar R_Ip6ConfigManualAddress.IsAnycast
> -if { ${R_Ip6ConfigManualAddress.IsAnycast} == FALSE } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -GetVar R_Ip6ConfigManualAddress.PrefixLength
> -if { ${R_Ip6ConfigManualAddress.PrefixLength} == 64 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -GetVar R_Ip6ConfigManualAddress.Address
> -set L_ManualAddress "2002:0000:0000:0000:0000:0000:0000:5000"
> -set L_RemoteAddress [ GetIpv6Address {R_Ip6ConfigManualAddress.Address} ]
> -if { [ string compare $L_RemoteAddress $L_ManualAddress ] == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -      GetAck
> -
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        7D041B9B-4F68-434a-A0C6-63FDC415D078
> +CaseName        RegisterDataNotify.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on one data type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Context2
> +UINTN                            R_DoneEvent2
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                        "Ip6Config.GetData - Call GetData to get policy value."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                  "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 0
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    0
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                 "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> +                 "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +    if { $R_Context1 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                  "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +#
> +# Register Event for Manual Address
> +#
> +SetVar R_Context2 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context2,\
> +                &@R_DoneEvent2, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual address."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context2
> +    if { $R_Context2 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual address."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Events for registered datatype
> +#
> +GetVar R_Context2
> +if { $R_Context2 == 1 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002     \
> +                "Ip6Config.RegisterDataNotify - Registered event is signaled."
> +
> +#
> +# GetData to verfiy the data setting
> +#
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Ip6Config.GetData - Call GetData to get manual address."        \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigManualAddress.IsAnycast
> +if { ${R_Ip6ConfigManualAddress.IsAnycast} == FALSE } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +GetVar R_Ip6ConfigManualAddress.PrefixLength
> +if { ${R_Ip6ConfigManualAddress.PrefixLength} == 64 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +GetVar R_Ip6ConfigManualAddress.Address
> +set L_ManualAddress "2002:0000:0000:0000:0000:0000:0000:5000"
> +set L_RemoteAddress [ GetIpv6Address {R_Ip6ConfigManualAddress.Address} ]
> +if { [ string compare $L_RemoteAddress $L_ManualAddress ] == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set ManualAddress succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +      GetAck
> +
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> index bd52067..6f7e51f 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> @@ -1,266 +1,266 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        886AE98A-5D43-47b4-A339-85FB089F21FA
> -CaseName        RegisterDataNotify.Func1.Case2
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on two data types.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                          R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
> -#
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005                   \
> -               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - Policy."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006                   \
> -               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - DadXmits."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        886AE98A-5D43-47b4-A339-85FB089F21FA
> +CaseName        RegisterDataNotify.Func1.Case2
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must succeed with valid parameters when one event registered on two data types.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                          R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005                   \
> +               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - Policy."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006                   \
> +               "Ip6Config.RegisterDataNotify - Event is signaled for DataType - DadXmits."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> index 2213ec9..8c33521 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EF4CCB73-577C-4b8c-96E3-91517F0B7056
> -CaseName        SetData.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is NULL.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->SetData with data is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,NULL,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf1AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with Data NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EF4CCB73-577C-4b8c-96E3-91517F0B7056
> +CaseName        SetData.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is NULL.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->SetData with data is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,NULL,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf1AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with Data NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> index f14a5bb..bbf7830 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> @@ -1,299 +1,299 @@
> -#
> -#  Copyright 2006 - 2017 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        A9BBCC37-3ED5-4c11-B6B6-BE52A1131568
> -CaseName        SetData.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when one or more fields in data is invalid.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF2
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF2
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with "::"
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "::"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address (Not Unicast or Linklocal)."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point : Set Manual Address with duplication of list entries
> -#
> -set L_ManualListLen    3
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress($L_ManualListLen)
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress(0) @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress(1) @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress(2) @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set manual address (duplication of list entries)."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway with "ff02::1" (multicast address)
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "ff02::1"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with multicast address."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Gateway with duplication of list entries
> -#
> -set L_GatewayListLen   3
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway($L_GatewayListLen)
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> -SetVar R_Ip6ConfigGateway(0) @R_Temp_Ip6ConfigGateway
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway(1) @R_Temp_Ip6ConfigGateway
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> -SetVar R_Ip6ConfigGateway(2) @R_Temp_Ip6ConfigGateway
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid004                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with duplication of list entries."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server with "ff02::1" (link local address)
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "ff02::1"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid005                   \
> -                "Ip6Config.SetData - Call SetData to set dns server with multicast address."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF2
> -
> +#
> +#  Copyright 2006 - 2017 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        A9BBCC37-3ED5-4c11-B6B6-BE52A1131568
> +CaseName        SetData.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when one or more fields in data is invalid.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF2
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with "::"
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "::"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address (Not Unicast or Linklocal)."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point : Set Manual Address with duplication of list entries
> +#
> +set L_ManualListLen    3
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress($L_ManualListLen)
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress(0) @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress(1) @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress(2) @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set manual address (duplication of list entries)."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway with "ff02::1" (multicast address)
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "ff02::1"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with multicast address."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Gateway with duplication of list entries
> +#
> +set L_GatewayListLen   3
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway($L_GatewayListLen)
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> +SetVar R_Ip6ConfigGateway(0) @R_Temp_Ip6ConfigGateway
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway(1) @R_Temp_Ip6ConfigGateway
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> +SetVar R_Ip6ConfigGateway(2) @R_Temp_Ip6ConfigGateway
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid004                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with duplication of list entries."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server with "ff02::1" (link local address)
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "ff02::1"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid005                   \
> +                "Ip6Config.SetData - Call SetData to set dns server with multicast address."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> index 84a13c6..1cfc489 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        2FCE7A2D-09F4-4c8e-97CD-68A0045E34B8
> -CaseName        SetData.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is read-only type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->SetData with data is read only.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf3AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with data is read only."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        2FCE7A2D-09F4-4c8e-97CD-68A0045E34B8
> +CaseName        SetData.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is read-only type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->SetData with data is read only.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf3AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with data is read only."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF3
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> index 04235cc..597fdac 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> @@ -1,238 +1,238 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        D0A2D271-0BBF-4092-A61E-96FB23208DE0
> -CaseName        SetData.Conf4.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is not configurable in current policy.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF4
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF4
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF4
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF4
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address under automatic policy
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address under automatic poilcy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway under automatic policy
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set gateway under automatic policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server under automatic policy
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5001"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set dns server under automatic policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF4
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        D0A2D271-0BBF-4092-A61E-96FB23208DE0
> +CaseName        SetData.Conf4.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is not configurable in current policy.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF4
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF4
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF4
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF4
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set automatic policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address under automatic policy
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address under automatic poilcy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway under automatic policy
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set gateway under automatic policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server under automatic policy
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5001"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set dns server under automatic policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF4
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> index 9b7e9c1..5e5a3e1 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> @@ -1,279 +1,279 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        1F1728C3-BB62-4f28-9D75-6E631F7A6833
> -CaseName        SetData.Conf5.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data size does not match the data type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF5
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with wrong data size
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   16
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway with wrong data size
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   8
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server with wrong data size
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   8
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set dns server with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Check Point : Set Altlfld with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   1
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid004                   \
> -                "Ip6Config.SetData - Call SetData to set Altlfld with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -#
> -# Check Point : Set DadXmits with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   1
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits   3
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid005                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -				
> -#
> -# Check Point : Set Policy with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   1
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid006                   \
> -                "Ip6Config.SetData - Call SetData to set Policy with wrong data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -				
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF5
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        1F1728C3-BB62-4f28-9D75-6E631F7A6833
> +CaseName        SetData.Conf5.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data size does not match the data type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF5
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with wrong data size
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   16
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway with wrong data size
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   8
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server with wrong data size
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   8
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set dns server with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Check Point : Set Altlfld with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   1
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid004                   \
> +                "Ip6Config.SetData - Call SetData to set Altlfld with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +#
> +# Check Point : Set DadXmits with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   1
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits   3
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid005                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +				
> +#
> +# Check Point : Set Policy with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   1
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid006                   \
> +                "Ip6Config.SetData - Call SetData to set Policy with wrong data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +				
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF5
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> index 0430336..0bc8880 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        6C5FB23E-96A5-475a-8B7E-24B9BBB99C2A
> -CaseName        SetData.Conf6.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data type is not supported.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF6
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -UINT32                            R_Ip6ConfigMaximum
> -#
> -# Check Point: Call Ip6Config->SetData when data type is not supported.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximum,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf6AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with the data type not supported."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF6
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        6C5FB23E-96A5-475a-8B7E-24B9BBB99C2A
> +CaseName        SetData.Conf6.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data type is not supported.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF6
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +UINT32                            R_Ip6ConfigMaximum
> +#
> +# Check Point: Call Ip6Config->SetData when data type is not supported.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximum,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf6AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with the data type not supported."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF6
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> index 15e118b..22b5676 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> @@ -1,510 +1,510 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        477D07AC-6FEB-460b-BA92-A98245862D09
> -CaseName        SetData.Conf7.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF7
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 20
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_NOT_READY } {
> -  set assert pass
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point : Set Manual Address with valid parameter before the former setting finishes
> -#
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf7AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid parameter before the former setting finishes."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> -
> -
> -#
> -# Make sure the former configurations succeeds
> -# (Eliminate the side-effect to other cases)
> -#
> -set i 0
> -set L_TimeOut 30
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -GetAck
> -GetVar R_Status
> -set assert pass
> -while { $R_Status == $EFI_NOT_READY } {
> -  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> -  GetAck
> -  GetVar R_Status
> -  if { $R_Status == $EFI_SUCCESS } {
> -    break
> -  } elseif { $i == $L_TimeOut } {
> -    set assert fail
> -
> -    RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -    GetAck
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -    GetAck
> -    EndScope _IP6CONFIG_SETDATA_CONF7
> -    EndLog
> -    return
> -  }
> -  incr i
> -  Stall 1
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -
> -		RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  	
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -		
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -		
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -
> -  return
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -				
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF7
> -
> -EndLog
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        477D07AC-6FEB-460b-BA92-A98245862D09
> +CaseName        SetData.Conf7.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when the last asynchronous process for the data type has not been finished yet.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF7
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_NOT_READY } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point : Set Manual Address with valid parameter before the former setting finishes
> +#
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf7AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid parameter before the former setting finishes."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> +
> +
> +#
> +# Make sure the former configurations succeeds
> +# (Eliminate the side-effect to other cases)
> +#
> +set i 0
> +set L_TimeOut 30
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +set assert pass
> +while { $R_Status == $EFI_NOT_READY } {
> +  Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +  GetAck
> +  GetVar R_Status
> +  if { $R_Status == $EFI_SUCCESS } {
> +    break
> +  } elseif { $i == $L_TimeOut } {
> +    set assert fail
> +
> +    RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +    Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +    GetAck
> +    EndScope _IP6CONFIG_SETDATA_CONF7
> +    EndLog
> +    return
> +  }
> +  incr i
> +  Stall 1
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +
> +		RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +		
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +		
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +
> +  return
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +				
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF7
> +
> +EndLog
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> index 2053775..d35f104 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> @@ -1,274 +1,274 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EF8FF5B4-8855-4fbd-87C5-C28C7312302A
> -CaseName        SetData.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must succeed with valid parameters.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_FUNC1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set AltInterfaceId
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> -SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> -SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> -SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> -SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> -SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> -SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> -SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> -SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> -               "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigInterfaceId
> -if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid002        \
> -                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> -               "Ip6Config.SetData - Call SetData to set manual DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_FUNC1
> -  EndLog
> -}
> -
> -Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid004        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_FUNC1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EF8FF5B4-8855-4fbd-87C5-C28C7312302A
> +CaseName        SetData.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must succeed with valid parameters.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_FUNC1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set AltInterfaceId
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> +SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> +SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> +SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> +SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> +SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> +SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> +SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> +SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> +               "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigInterfaceId
> +if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} == 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)} == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)} == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)} == 7} {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid002        \
> +                      "Set AltInterfaceId succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> +               "Ip6Config.SetData - Call SetData to set manual DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC1
> +  EndLog
> +}
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid004        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_FUNC1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
> new file mode 100644
> index 0000000..4d9ec42
> --- /dev/null
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
> @@ -0,0 +1,838 @@
> +#
> +#  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        79F40434-2684-459C-8EEB-DCFB822D93F7
> +CaseName        SetData.Func2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData to clear the configuration.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_FUNC2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy fails(event is signaled correctly but data is incorrect)."
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +  	
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits fails(event is signaled correctly but data is incorrect)."
> +
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +Stall 30
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set MANUAL ADDRESS."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001         \
> +                      "SetData to set MANUAL ADDRESS fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001                   \
> +               "Ip6Config.SetData - Call SetData to set MANUAL ADDRESS."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get Manual Address."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigManualAddress
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigManualAddress.Address}]
> +if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5000] != 0  } {
> +  puts $L_Proc_Ipv6Address
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)"
> +} elseif {${R_Ip6ConfigManualAddress.PrefixLength} != 64} {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)"
> +
> +} elseif {${R_Ip6ConfigManualAddress.IsAnycast} != false} {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)"
> +
> +} else {
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002                     \
> +                "Ip6Config.SetData - Set Gateway success(event is signaled correctly and data is correct.)"
> +}
> +
> +#
> +# Clear the Manual Address
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to clear MANUAL ADDRESS."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003         \
> +                      "SetData to clear MANUAL ADDRESS fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003                   \
> +               "Ip6Config.SetData - Call SetData to clear MANUAL ADDRESS."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid004        \
> +                      "Ip6Config.GetData - Call GetData to get Manual Address."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +					
> +#
> +# Check Point : Set Gateway with valid parameter
> +#
> +
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005                   \
> +                "Ip6Config.SetData - Call SetData to set Gateway."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005         \
> +                      "SetData to set Gateway fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005                   \
> +               "Ip6Config.SetData - Call SetData to set Gateway."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get Gateway."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigGateway
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigGateway}]
> +if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5001] != 0  } {
> +  puts $L_Proc_Ipv6Address
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid006                     \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but data is incorrect.)"
> +} else {
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid006                     \
> +                "Ip6Config.SetData - Set Gateway success(event is signaled correctly and data is correct.)"
> +}
> +
> +#
> +# Clear the Gateway
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007                   \
> +                "Ip6Config.SetData - Call SetData to clear Gateway."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007         \
> +                      "SetData to clear Gateway fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007                   \
> +               "Ip6Config.SetData - Call SetData to clear Gateway."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid008        \
> +                      "Ip6Config.GetData - Call GetData to get Gateway."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +#
> +# Check Point : Set DnsServer with valid parameter
> +#
> +
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009                   \
> +                "Ip6Config.SetData - Call SetData to set DnsServer."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009         \
> +                      "SetData to set DnsServer fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009                   \
> +               "Ip6Config.SetData - Call SetData to set DnsServer."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DnsServer."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigDnsServer
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigDnsServer}]
> +if { [string compare $L_Proc_Ipv6Address 2002:0000:0000:0000:0000:0000:0000:5002] != 0  } {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid010                     \
> +                  "Ip6Config.SetData - Set DnsServer fail(event is signaled correctly but data is incorrect.)"
> +} else {
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid010                     \
> +                "Ip6Config.SetData - Set DnsServer success(event is signaled correctly and data is correct.)"
> +}
> +
> +#
> +# Clear the DnsServer
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011                   \
> +                "Ip6Config.SetData - Call SetData to clear DnsServer."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011         \
> +                      "SetData to clear DnsServer fail.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011                   \
> +               "Ip6Config.SetData - Call SetData to clear DnsServer."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid012        \
> +                      "Ip6Config.GetData - Call GetData to get DnsServer."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +EndScope _IP6CONFIG_SETDATA_FUNC2
> +
> +EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> index a36469f..35b36ce 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        8B7B6AA6-2DCB-434b-9533-6346ABCC686D
> -CaseName        UnregisterDataNotify.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when event is NULL.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->UnregisterDataNotify with the event NULL
> -#
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event NULL."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        8B7B6AA6-2DCB-434b-9533-6346ABCC686D
> +CaseName        UnregisterDataNotify.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when event is NULL.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->UnregisterDataNotify with the event NULL
> +#
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event NULL."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_INVALID_PARAMETER"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> index d41f141..7eb5808 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> @@ -1,83 +1,83 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        9CE66A42-FADC-4d44-B577-B58CED8E984B
> -CaseName        UnregisterDataNotify.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when then event has not been registered for the data type ever.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                          R_Ip6ConfigDataType
> -
> -#
> -# Check Point: Call Ip6Config->UnregisterDataNotify with the event not registered
> -#
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event not registered."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        9CE66A42-FADC-4d44-B577-B58CED8E984B
> +CaseName        UnregisterDataNotify.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when then event has not been registered for the data type ever.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                          R_Ip6ConfigDataType
> +
> +#
> +# Check Point: Call Ip6Config->UnregisterDataNotify with the event not registered
> +#
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event not registered."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> index 5608dbe..e56d26a 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> @@ -1,99 +1,99 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EB679CF9-9A56-4a9f-B5CF-2D845B044560
> -CaseName        UnregisterDataNotify.Conf2.Case2
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when the event was registered and then unregistered for the data type.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -
> -#
> -# Check Point: Register event for Datatype - ManualAddress and then unregister it
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with correct parameters."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Unregister the event again
> -#
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event has been unregistered."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EB679CF9-9A56-4a9f-B5CF-2D845B044560
> +CaseName        UnregisterDataNotify.Conf2.Case2
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when the event was registered and then unregistered for the data type.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +
> +#
> +# Check Point: Register event for Datatype - ManualAddress and then unregister it
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with correct parameters."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Unregister the event again
> +#
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with the event has been unregistered."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> index 5b88510..6315fa7 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> @@ -1,98 +1,98 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        769658B4-3397-4367-8E10-C4513407FFB8
> -CaseName        UnregisterDataNotify.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling signal datatype.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Create Event and RegisterDataNotify
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "IfConfig6.RegisterDataNotify() with valid parameter."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point : Call Ip6Config->UnregisterDataNotify with valid parameter
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001    \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Close event
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        769658B4-3397-4367-8E10-C4513407FFB8
> +CaseName        UnregisterDataNotify.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling signal datatype.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Create Event and RegisterDataNotify
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "IfConfig6.RegisterDataNotify() with valid parameter."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point : Call Ip6Config->UnregisterDataNotify with valid parameter
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001    \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Close event
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> +
>   EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> index 9f30136..cf1a374 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> @@ -1,237 +1,237 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD License
> -#  which accompanies this distribution.  The full text of the license may be found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -#
> -################################################################################
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        C206AA15-2F53-4860-BD78-453C4EA463B6
> -CaseName        UnregisterDataNotify.Func1.Case2
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling multiple datatype.}
> -
> -################################################################################
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
> -#
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Unregister the event on Datatype [Policy]
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002    \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for Datatype - Policy."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 $L_Context1
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  Stall 5
> -  GetVar R_Context
> -  if { $R_Context == $L_Context2 } {
> -    set assert pass
> -  } else {
> -    set assert fail
> -  }
> -  RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003                   \
> -               "Ip6Config.UnregisterDataNotify - Event should not be signaled for DataType - Policy."
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004                   \
> -               "Ip6Config.RegisterDataNotify - Event should be signaled for DataType - DadXmits."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +################################################################################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        C206AA15-2F53-4860-BD78-453C4EA463B6
> +CaseName        UnregisterDataNotify.Func1.Case2
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must succeed with valid parameters when handling multiple datatype.}
> +
> +################################################################################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Create Event and register it with data type [Policy] and [DadXmits]
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Unregister the event on Datatype [Policy]
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002    \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for Datatype - Policy."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 $L_Context1
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  Stall 5
> +  GetVar R_Context
> +  if { $R_Context == $L_Context2 } {
> +    set assert pass
> +  } else {
> +    set assert fail
> +  }
> +  RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003                   \
> +               "Ip6Config.UnregisterDataNotify - Event should not be signaled for DataType - Policy."
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004                   \
> +               "Ip6Config.RegisterDataNotify - Event should be signaled for DataType - DadXmits."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +
>   EndLog
> \ No newline at end of file

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData
  2018-10-12  8:20 [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData Eric Jin
  2018-10-12  8:57 ` Supreeth Venkatesh
@ 2018-10-13  1:55 ` Wu, Jiaxin
  1 sibling, 0 replies; 4+ messages in thread
From: Wu, Jiaxin @ 2018-10-13  1:55 UTC (permalink / raw)
  To: Jin, Eric, edk2-devel@lists.01.org

Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>



> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Eric
> Jin
> Sent: Friday, October 12, 2018 4:20 PM
> To: edk2-devel@lists.01.org
> Subject: [edk2] [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData
> 
> Spec clarifies the configuration clearance behavior
> Correct the end line
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Eric Jin <eric.jin@intel.com>
> Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
> ---
>  .../IP4Config2/Include/Ip4Config2AssertionGuid.tcl |    5 +-
>  .../TestCase/IP4Config2/SetData.Func1.Case2.tcl    |  714 +++++++++++++
>  .../Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl |  142 +--
>  .../Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl |  140 +--
>  .../Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl |  788 +++++++-------
>  .../Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl |  144 +--
>  .../Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl |  982 +++++++++---------
>  .../Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl |  542 +++++-----
>  .../TestCase/IP6Config/Include/Ip6Config.inc.tcl   |  192 ++--
>  .../TestCase/IP6Config/Include/Ip6Config.proc.tcl  |   30 +-
>  .../IP6Config/Include/Ip6ConfigAssertionGuid.tcl   |  180 ++--
>  .../TestCase/IP6Config/Include/Ip6ConfigDefine.tcl |  102 +-
>  .../IP6Config/RegisterDataNotify.Conf1.Case1.tcl   |  178 ++--
>  .../IP6Config/RegisterDataNotify.Conf2.Case1.tcl   |  178 ++--
>  .../IP6Config/RegisterDataNotify.Conf3.Case1.tcl   |  216 ++--
>  .../IP6Config/RegisterDataNotify.Func1.Case1.tcl   | 1076 ++++++++++----------
>  .../IP6Config/RegisterDataNotify.Func1.Case2.tcl   |  530 +++++-----
>  .../Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl |  142 +--
>  .../Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl |  596 +++++------
>  .../Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl |  142 +--
>  .../Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl |  474 ++++-----
>  .../Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl |  556 +++++-----
>  .../Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl |  142 +--
>  .../Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl | 1020 +++++++++----------
>  .../Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl |  546 +++++-----
>  .../Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl |  838 +++++++++++++++
>  .../IP6Config/UnregisterDataNotify.Conf1.Case1.tcl |  178 ++--
>  .../IP6Config/UnregisterDataNotify.Conf2.Case1.tcl |  164 +--
>  .../IP6Config/UnregisterDataNotify.Conf2.Case2.tcl |  196 ++--
>  .../IP6Config/UnregisterDataNotify.Func1.Case1.tcl |  194 ++--
>  .../IP6Config/UnregisterDataNotify.Func1.Case2.tcl |  472 ++++-----
>  31 files changed, 6683 insertions(+), 5116 deletions(-)
>  create mode 100644 uefi-
> sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
>  create mode 100644 uefi-
> sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
> 
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> index 91a4fd1..e0604b2 100644
> --- a/uefi-
> sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP4Config2/Include/Ip4Config2AssertionGuid.tcl
> @@ -1,6 +1,6 @@
>  #
>  #  Copyright 2017 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>
>  #
>  #  This program and the accompanying materials
>  #  are licensed and made available under the terms and conditions of the BSD
> License
> @@ -39,6 +39,9 @@ set Ip4Config2SetDataFunc1AssertionGuid008  00FBB58A-
> 4BB3-499F-AE6B-744B6B9932E6
>  set Ip4Config2SetDataFunc1AssertionGuid009  DB8EF05C-085F-45D1-A0B1-
> DC2F307B6F1E
>  set Ip4Config2SetDataFunc1AssertionGuid010  29143621-896C-4FB9-9E70-
> 7A4D2DA6BEE0
>  set Ip4Config2SetDataFunc1AssertionGuid011  72FEDF83-6755-4212-AF0F-
> 780F457EFAA7
> +set Ip4Config2SetDataFunc1AssertionGuid012  EB7769D1-A31F-4F37-86F3-
> 2BBF54834785
> +set Ip4Config2SetDataFunc1AssertionGuid013  78F3A664-A8E4-43B8-961F-
> 71033E9145F2
> +set Ip4Config2SetDataFunc1AssertionGuid014  7F717D50-3A7C-4E2A-9F15-
> 0A802E9BAFE6
> 
>  #
>  # Guid for GetData() interface
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
> new file mode 100644
> index 0000000..0517032
> --- /dev/null
> +++ b/uefi-sct/EMS/Bin/TestCase/IP4Config2/SetData.Func1.Case2.tcl
> @@ -0,0 +1,714 @@
> +#
> +#  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B2AD20DF-2325-42B2-A199-A49ADF04A5DD
> +CaseName        SetData.Func1.Case2
> +CaseCategory    IP4Config2
> +CaseDescription {SetData must succeed When DataSize is 0 and
> +                Data is NULL,and existing configuration is cleared.}
> +
> +################################################################
> ################
> +Include IP4Config2/Include/Ip4Config2.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN     R_Status
> +UINTN     R_Context
> +UINTN     R_DoneEvent
> +UINTN     R_Ip4Config2DataSize
> +UINT32    R_Ip4Config2DataType
> +UINT32    R_Ip4Config2Policy
> +
> +#
> +# Check Point: Call Ip4Config2->SetData to set Static policy
> +#
> +SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +SetVar R_Ip4Config2DataSize   [Sizeof UINT32]
> +SetVar R_Ip4Config2Policy     $IP4C2P(Static)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "BS.CreateEvent."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->RegisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData
> "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2Policy,&@
> R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                  "Ip4Config2.SetData - Call SetData to set Static policy."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +      Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid001    \
> +                  "Ip4Config2.SetData - Call SetData to set Static policy."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(Policy)
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData
> "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Policy,&
> @R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get policy value."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip4Config2Policy
> +if { $R_Ip4Config2Policy == $IP4C2P(Static) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid002    \
> +                  "Set Static policy succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip4Config2Policy   $IP4C2DT(Policy)
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid002    \
> +                "Set Static policy succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point : Set Manual Address
> +#
> +EFI_IP4_CONFIG2_MANUAL_ADDRESS    R_Temp_Ip4Config2ManualAddress
> +EFI_IP4_CONFIG2_MANUAL_ADDRESS    R_Ip4Config2ManualAddress
> +SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +SetVar R_Ip4Config2DataSize   [Sizeof EFI_IP4_CONFIG2_MANUAL_ADDRESS]
> +SetIpv4Address R_Temp_Ip4Config2ManualAddress.Address       "10.239.9.15"
> +SetIpv4Address R_Temp_Ip4Config2ManualAddress.SubnetMask
> "255.255.255.0"
> +SetVar R_Ip4Config2ManualAddress @R_Temp_Ip4Config2ManualAddress
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +Ip4Config2->SetData
> "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2ManualAd
> dress,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                  "Ip4Config2.SetData - Call SetData to set Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +      Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid003    \
> +                  "IP4Config2.SetData - Call SetData to set Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData
> "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2ManualA
> ddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Manual Address."    \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +EFI_IPv4_ADDRESS  R_Addr1
> +EFI_IPv4_ADDRESS  R_Addr2
> +set R_Addr1 [GetIpv4Address R_Ip4Config2ManualAddress.Address]
> +puts "R_Addr1 - $R_Addr1"
> +set R_Addr2 [GetIpv4Address R_Ip4Config2ManualAddress.SubnetMask]
> +puts "R_Addr1 - $R_Addr2"
> +
> +if {[string compare -nocase $R_Addr1 10.239.9.15] == 0} {
> +  if {[string compare -nocase $R_Addr2 255.255.255.0] == 0} {
> +    set assert pass
> +  } else {
> +    set assert fail
> +    RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                    "Set ManualAddress succeeds(event is signaled correctly and data
> correct)."
> +    Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +    EndLog
> +    return
> +  }
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                  "Set ManualAddress succeeds(event is signaled correctly and data
> correct)."
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid004    \
> +                "Set ManualAddress succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Points : Set Gateway
> +#
> +EFI_IPv4_ADDRESS               R_Ip4Config2Gateway
> +SetVar R_Ip4Config2DataType    $IP4C2DT(Gateway)
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +SetIpv4Address R_Ip4Config2Gateway "10.239.9.241"
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData
> "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                  "Ip4Config2.SetData - Call SetData to set Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid005    \
> +                  "Ip4Config2.SetData - Call SetData to set Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData
> "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway
> ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Gateway Address."
> \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +EFI_IPv4_ADDRESS  R_Addr3
> +set R_Addr3 [GetIpv4Address R_Ip4Config2Gateway]
> +puts "R_Addr3 - $R_Addr3"
> +
> +if {[string compare -nocase $R_Addr3 10.239.9.241] == 0} {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid006    \
> +                  "Set Gateway succeeds(event is signaled correctly and data correct)."
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid006    \
> +                "Set Gateway succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Dns Server
> +#
> +EFI_IPv4_ADDRESS               R_Ip4Config2DnsServer
> +SetVar R_Ip4Config2DataType    $IP4C2DT(DnsServer)
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +SetIpv4Address R_Ip4Config2DnsServer "10.248.2.5"
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData
> "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServer,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                  "Ip4Config2.SetData - Call SetData to set Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid007    \
> +                  "Ip4Config2.SetData - Call SetData to set Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +
> +Ip4Config2->GetData
> "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServe
> r,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Dns Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +EFI_IPv4_ADDRESS  R_Addr4
> +set R_Addr4 [GetIpv4Address R_Ip4Config2DnsServer]
> +puts "R_Addr4 - $R_Addr4"
> +
> +if {[string compare -nocase $R_Addr4 10.248.2.5] == 0} {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid008    \
> +                  "Set Dns succeeds(event is signaled correctly and data correct)."
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid008    \
> +                "Set Dns succeeds(event is signaled correctly and data correct)."
> +
> +
> +
> +#
> +# Clean up - Call SetData when DataSize is 0 and Data is NULL
> +#
> +
> +
> +
> +#
> +# Set Manual Address
> +#
> +
> +SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +SetVar R_Ip4Config2DataSize   0
> +
> +
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +Ip4Config2->SetData
> "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                  "Ip4Config2.SetData - Call SetData to clear Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                      "SetData to clear Manual Address failed.(event hasn't been
> signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +      Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid012    \
> +                  "IP4Config2.SetData - Call SetData to clear Manual Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip4Config2DataType   $IP4C2DT(ManualAddress)
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize   [Sizeof EFI_IP4_CONFIG2_MANUAL_ADDRESS]
> +Ip4Config2->GetData
> "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2ManualA
> ddress,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Manual Address."    \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +#
> +# Set Gateway Address
> +#
> +
> +
> +SetVar R_Ip4Config2DataType    $IP4C2DT(Gateway)
> +SetVar R_Ip4Config2DataSize    0
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData
> "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                  "Ip4Config2.SetData - Call SetData to clear Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                      "SetData to clear Gateway Address failed.(event hasn't been
> signaled before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid013    \
> +                  "Ip4Config2.SetData - Call SetData to clear Gateway Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +Ip4Config2->GetData
> "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2Gateway
> ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Gateway Address."
> \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +#
> +# Check Point : Set Dns Server
> +#
> +
> +SetVar R_Ip4Config2DataType    $IP4C2DT(DnsServer)
> +SetVar R_Ip4Config2DataSize    0
> +
> +SetVar R_Context 0
> +Ip4Config2->RegisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip4Config2.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip4Config2->SetData
> "@R_Ip4Config2DataType,@R_Ip4Config2DataSize,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                  "Ip4Config2.SetData - Call SetData to clear Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                      "SetData to clear Dns Address failed.(event hasn't been signaled
> before TIMEOUT)."    \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip4Config2SetDataFunc1AssertionGuid014    \
> +                  "Ip4Config2.SetData - Call SetData to clear Dns Address."    \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +Ip4Config2->UnregisterDataNotify
> "@R_Ip4Config2DataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip4Config2DataSize    [Sizeof EFI_IPv4_ADDRESS]
> +Ip4Config2->GetData
> "@R_Ip4Config2DataType,&@R_Ip4Config2DataSize,&@R_Ip4Config2DnsServe
> r,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $GenericAssertionGuid    \
> +                        "Ip4Config2.GetData - Call GetData to get Dns Address."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +
> +EndScope _IP4CONFIG2_SETDATA_FUNC1_CASE2
> +
> +EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> index a6b788d..beeb2fb 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf1.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        11FF93B5-8A85-4770-88C2-99E0AF9AE0AA
> -CaseName        GetData.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data size is NULL.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                          R_Ip6ConfigPolicy
> -UINT32                          R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with datasize is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,NULL,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigGetDataConf1AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with DataSize NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        11FF93B5-8A85-4770-88C2-99E0AF9AE0AA
> +CaseName        GetData.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data size is NULL.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                          R_Ip6ConfigPolicy
> +UINT32                          R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with datasize is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,NULL,&@R_Ip6ConfigInterfaceInfo,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigGetDataConf1AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with DataSize NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> index c095756..6f90a9c 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf2.Case1.tcl
> @@ -1,71 +1,71 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        B4C48D71-EF72-42e0-BD57-4825F7EB7B9F
> -CaseName        GetData.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data is NULL if data size is
> not zero.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32				  R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with data is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,NULL,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigGetDataConf2AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with Data NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B4C48D71-EF72-42e0-BD57-4825F7EB7B9F
> +CaseName        GetData.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data is NULL if data size is
> not zero.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32				  R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with data is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,NULL,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigGetDataConf2AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with Data NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF2
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> index c90d442..5688648 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf3.Case1.tcl
> @@ -1,395 +1,395 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        7B341FC4-1F10-4851-83AD-103A56B0EC35
> -CaseName        GetData.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when DataSize is too small for the
> data type.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy failure (event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid value
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -GetVar  R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData with valid value."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -    if { $R_Context1 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual address."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Point : Get Manual Address with datasize too small
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   16
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BUFFER_TOO_SMALL]
> -RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with the datasize too small."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_BUFFER_TOO_SMALL"
> -
> -GetVar R_Ip6ConfigDataSize
> -set L_ObtainedSize [ expr { $R_Ip6ConfigDataSize } ]
> -set L_DesiredSize [ Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS ]
> -if { [ expr { $L_ObtainedSize % $L_DesiredSize } ] == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid002                   \
> -                "Ip6Config.GetData - Correctly Modify the DataSize."            \
> -                "ReturnSize - $L_ObtainedSize, ExpectedSize - $L_DesiredSize"
> -
> -#
> -# Clean up
> -#
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -
> -      EndScope _IP6CONFIG_GETDATA_CONF3
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_GETDATA_CONF3
> -  EndLog
> -  return
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Unregister Event for Manual Address and close event
> -#
> -SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        7B341FC4-1F10-4851-83AD-103A56B0EC35
> +CaseName        GetData.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when DataSize is too small for the
> data type.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy failure (event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid value
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +GetVar  R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData with valid value."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +    if { $R_Context1 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual address."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Point : Get Manual Address with datasize too small
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   16
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BUFFER_TOO_SMALL]
> +RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with the datasize too small."
> \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_BUFFER_TOO_SMALL"
> +
> +GetVar R_Ip6ConfigDataSize
> +set L_ObtainedSize [ expr { $R_Ip6ConfigDataSize } ]
> +set L_DesiredSize [ Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS ]
> +if { [ expr { $L_ObtainedSize % $L_DesiredSize } ] == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataConf3AssertionGuid002                   \
> +                "Ip6Config.GetData - Correctly Modify the DataSize."            \
> +                "ReturnSize - $L_ObtainedSize, ExpectedSize - $L_DesiredSize"
> +
> +#
> +# Clean up
> +#
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +
> +      EndScope _IP6CONFIG_GETDATA_CONF3
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_GETDATA_CONF3
> +  EndLog
> +  return
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Unregister Event for Manual Address and close event
> +#
> +SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_CONF3
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> index e36cdfc..bd38be0 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf4.Case1.tcl
> @@ -1,73 +1,73 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        F340A957-9345-478d-BE53-5F7C561C1866
> -CaseName        GetData.Conf4.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when data type is not found.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF4
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -UINTN                            R_Ip6ConfigMaximumType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->GetData with the date type not existing.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximumTy
> pe,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert $Ip6ConfigGetDataConf4AssertionGuid001                   \
> -                "Ip6Config.GetData - Call GetData with Datatype not existing."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> -
> -EndScope _IP6CONFIG_GETDATA_CONF4
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        F340A957-9345-478d-BE53-5F7C561C1866
> +CaseName        GetData.Conf4.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when data type is not found.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF4
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +UINTN                            R_Ip6ConfigMaximumType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->GetData with the date type not existing.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximumTy
> pe,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigGetDataConf4AssertionGuid001                   \
> +                "Ip6Config.GetData - Call GetData with Datatype not existing."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +EndScope _IP6CONFIG_GETDATA_CONF4
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> index c39323f..c186520 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Conf5.Case1.tcl
> @@ -1,492 +1,492 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        6638523D-470B-4c50-AE75-DE0CE6854DE8
> -CaseName        GetData.Conf5.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must not succeed when the last asynchronous
> process for the data type has not been finished yet.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_CONF5
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 20
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_NOT_READY } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -#
> -# Check Point : Get Manual Address with valid parameter before the former
> setting finishes
> -#
> -set L_ManualListLen    1
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_READY]
> -RecordAssertion $assert $Ip6ConfigGetDataConf5AssertionGuid001                   \
> -                "Ip6Config.SetData - Call GetData to get manual address before the
> former setting finishes."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -#
> -# Make sure the former configurations succeeds
> -# (Eliminate the side-effect to other cases)
> -#
> -set i 0
> -set L_TimeOut 30
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> -GetAck
> -GetVar R_Status
> -set assert pass
> -while { $R_Status == $EFI_NOT_READY } {
> -  Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> -  GetAck
> -  GetVar R_Status
> -  if { $R_Status == $EFI_SUCCESS } {
> -    break
> -  } elseif { $i == $L_TimeOut } {
> -    set assert fail
> -
> -    RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -    Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -    GetAck
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -    Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -    GetAck
> -    EndScope _IP6CONFIG_GETDATA_CONF5
> -    EndLog
> -    return
> -  }
> -  incr i
> -  Stall 1
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -
> -              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -
> -		EndScope _IP6CONFIG_GETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_GETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_CONF5
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        6638523D-470B-4c50-AE75-DE0CE6854DE8
> +CaseName        GetData.Conf5.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must not succeed when the last asynchronous
> process for the data type has not been finished yet.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_CONF5
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 10."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_NOT_READY } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +#
> +# Check Point : Get Manual Address with valid parameter before the former
> setting finishes
> +#
> +set L_ManualListLen    1
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_READY]
> +RecordAssertion $assert $Ip6ConfigGetDataConf5AssertionGuid001                   \
> +                "Ip6Config.SetData - Call GetData to get manual address before the
> former setting finishes."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +#
> +# Make sure the former configurations succeeds
> +# (Eliminate the side-effect to other cases)
> +#
> +set i 0
> +set L_TimeOut 30
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +GetAck
> +GetVar R_Status
> +set assert pass
> +while { $R_Status == $EFI_NOT_READY } {
> +  Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +  GetAck
> +  GetVar R_Status
> +  if { $R_Status == $EFI_SUCCESS } {
> +    break
> +  } elseif { $i == $L_TimeOut } {
> +    set assert fail
> +
> +    RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +    Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +    Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +    GetAck
> +    EndScope _IP6CONFIG_GETDATA_CONF5
> +    EndLog
> +    return
> +  }
> +  incr i
> +  Stall 1
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +
> +              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +
> +		EndScope _IP6CONFIG_GETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_GETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_CONF5
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> index 6c4a72b..a0acc20 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/GetData.Func1.Case1.tcl
> @@ -1,272 +1,272 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        E4CD5B45-9CF5-4938-A243-7764F1E8CDE9
> -CaseName        GetData.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {GetData must succeed with valid parameters.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_GETDATA_FUNC1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->GetData to set AltInterfaceId
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> -SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> -SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> -SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> -SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> -SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> -SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> -SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> -SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&
> @R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid        \
> -                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,
> &@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid001        \
> -                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."
> \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigInterfaceId
> -if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} ==
> 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)}
> == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)}
> == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)}
> == 7} {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid002        \
> -                      "Set AltInterfaceId succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.GetData - Call GetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "GetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_GETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.GetData - Call GetData to set manual DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_GETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid003        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid004        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_GETDATA_FUNC1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        E4CD5B45-9CF5-4938-A243-7764F1E8CDE9
> +CaseName        GetData.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {GetData must succeed with valid parameters.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_GETDATA_FUNC1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->GetData to set AltInterfaceId
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> +SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> +SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> +SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> +SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> +SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> +SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> +SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> +SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&
> @R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid        \
> +                      "GetData failed.(event hasn't been signaled before TIMEOUT)."
> \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.GetData - Call GetData to set AltInterfaceId."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,
> &@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid001        \
> +                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."
> \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigInterfaceId
> +if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} ==
> 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)}
> == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)}
> == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)}
> == 7} {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid002        \
> +                      "Set AltInterfaceId succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.GetData - Call GetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "GetData failed.(event hasn't been signaled before TIMEOUT)."
> \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_GETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.GetData - Call GetData to set manual DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_GETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid003        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigGetDataFunc1AssertionGuid004        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_GETDATA_FUNC1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> index 918038d..9e162e7 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.inc.tcl
> @@ -1,96 +1,96 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_INC] == 1} {
> -  return
> -}
> -set IP6CONFIG_INC 1
> -
> -Include Include/EntsProtocolTest.inc.tcl
> -Include Include/EntsConfigure.tcl
> -Include Include/EfiBootService.inc.tcl
> -Include Include/EfiGenericService.inc.tcl
> -Include EfiUtil/EfiInclude.tcl
> -
> -Include IP6/Include/Ip6.inc.tcl
> -Include IP6Config/Include/Ip6ConfigDefine.tcl
> -Include IP6Config/Include/Ip6Config.proc.tcl
> -Include IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> -Include Include/GenericAssertionGuid.tcl
> -
> -
> #################################################################
> ##
> -# Function Declaration
> -
> #################################################################
> ##
> -Func Ip6Config->SetData {
> -    UINT32
> -    UINTN
> -    POINTER
> -    POINTER
> -}
> -
> -Func Ip6Config->GetData {
> -    UINT32
> -    POINTER
> -    POINTER
> -    POINTER
> -}
> -
> -Func Ip6Config->RegisterDataNotify {
> -    UINT32
> -    UINTN
> -    POINTER
> -}
> -
> -Func Ip6Config->UnregisterDataNotify {
> -    UINT32
> -    UINTN
> -    POINTER
> -}
> -
> -
> -
> #################################################################
> ##
> -# EFI_IP6_CONFIG_INTERFACE_INFO
> -
> #################################################################
> ##
> -Struct EFI_IP6_CONFIG_INTERFACE_INFO {
> -  CHAR16                Name(32);
> -  UINT8                 IfType;
> -  UINT32                HwAddressSize;
> -  EFI_MAC_ADDRESS       HwAddress;
> -  UINT32                AddressInfoCount;
> -  POINTER               AddressInfo;
> -  UINT32                RouteCount;
> -  POINTER               RouteTable;
> -}
> -
> -
> #################################################################
> ##
> -# EFI_IP6_CONFIG_INTERFACE_ID
> -
> #################################################################
> ##
> -Struct EFI_IP6_CONFIG_INTERFACE_ID {
> -  UINT8                 Id(8);
> -}
> -
> -
> #################################################################
> ##
> -# EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> -
> #################################################################
> ##
> -Struct EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS {
> -  UINT32                DupAddrDetectTransmits;
> -}
> -
> -
> #################################################################
> ##
> -# EFI_IP6_CONFIG_MANUAL_ADDRESS
> -
> #################################################################
> ##
> -Struct EFI_IP6_CONFIG_MANUAL_ADDRESS {
> -  EFI_IPv6_ADDRESS      Address;
> -  BOOLEAN               IsAnycast;
> -  UINT8                 PrefixLength;
> -}
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_INC] == 1} {
> +  return
> +}
> +set IP6CONFIG_INC 1
> +
> +Include Include/EntsProtocolTest.inc.tcl
> +Include Include/EntsConfigure.tcl
> +Include Include/EfiBootService.inc.tcl
> +Include Include/EfiGenericService.inc.tcl
> +Include EfiUtil/EfiInclude.tcl
> +
> +Include IP6/Include/Ip6.inc.tcl
> +Include IP6Config/Include/Ip6ConfigDefine.tcl
> +Include IP6Config/Include/Ip6Config.proc.tcl
> +Include IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> +Include Include/GenericAssertionGuid.tcl
> +
> +################################################################
> ###
> +# Function Declaration
> +################################################################
> ###
> +Func Ip6Config->SetData {
> +    UINT32
> +    UINTN
> +    POINTER
> +    POINTER
> +}
> +
> +Func Ip6Config->GetData {
> +    UINT32
> +    POINTER
> +    POINTER
> +    POINTER
> +}
> +
> +Func Ip6Config->RegisterDataNotify {
> +    UINT32
> +    UINTN
> +    POINTER
> +}
> +
> +Func Ip6Config->UnregisterDataNotify {
> +    UINT32
> +    UINTN
> +    POINTER
> +}
> +
> +
> +################################################################
> ###
> +# EFI_IP6_CONFIG_INTERFACE_INFO
> +################################################################
> ###
> +Struct EFI_IP6_CONFIG_INTERFACE_INFO {
> +  CHAR16                Name(32);
> +  UINT8                 IfType;
> +  UINT32                HwAddressSize;
> +  EFI_MAC_ADDRESS       HwAddress;
> +  UINT32                AddressInfoCount;
> +  POINTER               AddressInfo;
> +  UINT32                RouteCount;
> +  POINTER               RouteTable;
> +}
> +
> +################################################################
> ###
> +# EFI_IP6_CONFIG_INTERFACE_ID
> +################################################################
> ###
> +Struct EFI_IP6_CONFIG_INTERFACE_ID {
> +  UINT8                 Id(8);
> +}
> +
> +################################################################
> ###
> +# EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> +################################################################
> ###
> +Struct EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS {
> +  UINT32                DupAddrDetectTransmits;
> +}
> +
> +################################################################
> ###
> +# EFI_IP6_CONFIG_MANUAL_ADDRESS
> +################################################################
> ###
> +Struct EFI_IP6_CONFIG_MANUAL_ADDRESS {
> +  EFI_IPv6_ADDRESS      Address;
> +  BOOLEAN               IsAnycast;
> +  UINT8                 PrefixLength;
> +}
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> index de40066..f2a2dda 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6Config.proc.tcl
> @@ -1,16 +1,16 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_PROC] == 1} {
> -  return
> -}
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_PROC] == 1} {
> +  return
> +}
>  set IP6CONFIG_PROC 1
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> index 9356240..da69bf9 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigAssertionGuid.tcl
> @@ -1,84 +1,96 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -#
> -# Guid for SetData() interface
> -#
> -set Ip6ConfigSetDataConf1AssertionGuid001  7A224CCE-B79B-472a-9B8C-
> A47E074D5EEF
> -set Ip6ConfigSetDataConf2AssertionGuid001  46F12872-61F2-46e4-A2F9-
> 5F685B419479
> -set Ip6ConfigSetDataConf2AssertionGuid002  1CAC93D3-732A-4e30-894D-
> EE63B6F486A0
> -set Ip6ConfigSetDataConf2AssertionGuid003  D005EBF3-CFD6-498a-9005-
> C2B3702EB4FC
> -set Ip6ConfigSetDataConf2AssertionGuid004  389806D5-4506-4319-8D17-
> 9B4FC9D97E25
> -set Ip6ConfigSetDataConf2AssertionGuid005  5AEFDB0C-322F-49c3-9DD2-
> DFE21B66B308
> -set Ip6ConfigSetDataConf2AssertionGuid006  D339988F-2595-4fb5-81AE-
> A94DC470B234
> -set Ip6ConfigSetDataConf3AssertionGuid001  4319A43B-7641-47c0-84BB-
> 985C479902A2
> -set Ip6ConfigSetDataConf4AssertionGuid001  01F3B344-EB52-4086-B949-
> 55D7E4DC5BDE
> -set Ip6ConfigSetDataConf4AssertionGuid002  F612AF26-2519-497c-B205-
> 37A2914AEE05
> -set Ip6ConfigSetDataConf4AssertionGuid003  592C1F3D-249E-4654-B4B1-
> 600421624DD1
> -set Ip6ConfigSetDataConf5AssertionGuid001  D70BEC29-8026-4e1b-BA8B-
> 36A313B45859
> -set Ip6ConfigSetDataConf5AssertionGuid002  FE793490-53F8-4991-8348-
> E624530E83E9
> -set Ip6ConfigSetDataConf5AssertionGuid003  42CCB2EF-D706-4d1a-B247-
> F42BBA99F707
> -set Ip6ConfigSetDataConf5AssertionGuid004  9168CB20-C891-42da-BB9F-
> 7ADBE488B012
> -set Ip6ConfigSetDataConf5AssertionGuid005  AD058D87-1015-4b2d-A351-
> 5BD4B0930B7B
> -set Ip6ConfigSetDataConf5AssertionGuid006  388BE3F6-D63E-4cbf-A3D9-
> 3D941823259B
> -set Ip6ConfigSetDataConf6AssertionGuid001  2886BAE1-383A-400f-8F88-
> 66376B2A0FF5
> -set Ip6ConfigSetDataConf7AssertionGuid001  D2C61F06-8822-4a09-89A1-
> 7F0667FCAF0E
> -set Ip6ConfigSetDataFunc1AssertionGuid001  0A5902DA-4142-4494-AC66-
> 2B731FFEA671
> -set Ip6ConfigSetDataFunc1AssertionGuid002  D9A9EF5E-D819-49d0-BB12-
> 25ADEC52DDB3
> -set Ip6ConfigSetDataFunc1AssertionGuid003  14E96019-0815-4486-916C-
> E440E166628E
> -set Ip6ConfigSetDataFunc1AssertionGuid004  3458BBE0-0D7E-48ec-B380-
> 2A885F44E104
> -
> -
> -#
> -# Guid for GetData() interface
> -#
> -set Ip6ConfigGetDataConf1AssertionGuid001  D15E421D-6228-4fea-8D5A-
> 330FFF3F80D2
> -set Ip6ConfigGetDataConf2AssertionGuid001  38B36C04-12E9-4e96-B24F-
> C453851E6C1D
> -set Ip6ConfigGetDataConf3AssertionGuid001  D05A6C59-617F-4549-9659-
> 4E0CFC3C3336
> -set Ip6ConfigGetDataConf3AssertionGuid002  ED45C2FE-9EC1-4553-AFA4-
> 771E9D4F7611
> -set Ip6ConfigGetDataConf4AssertionGuid001  59118C46-2F2A-4029-ABD6-
> 767418920369
> -set Ip6ConfigGetDataConf5AssertionGuid001  55955D09-C806-4777-9FF0-
> 95C00E79AC28
> -set Ip6ConfigGetDataFunc1AssertionGuid001  FEAAC1A0-95BD-4dcb-91C3-
> 9F08504BEFA1
> -set Ip6ConfigGetDataFunc1AssertionGuid002  3649D729-D6D0-456e-84AE-
> C7E7B8464343
> -set Ip6ConfigGetDataFunc1AssertionGuid003  165E79B4-C987-4100-8AA2-
> 8AB115B07FAD
> -set Ip6ConfigGetDataFunc1AssertionGuid004  DB420311-17F7-40cf-A0B1-
> 0294D5DCCC92
> -
> -#
> -# Guid for RegisterDataNotify() interface
> -#
> -set Ip6ConfigRegisterDataNotifyConf1AssertionGuid001  7E3F6157-EC75-4ecd-
> A79B-4926F3AA1C0D
> -set Ip6ConfigRegisterDataNotifyConf2AssertionGuid001  70DC8C71-C54D-
> 4446-8AD9-BAC086E43D17
> -set Ip6ConfigRegisterDataNotifyConf3AssertionGuid001  2D88F18B-0BEF-4616-
> BDE5-CA4E0086E1D3
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001  9A98DC85-D018-
> 45aa-B851-34EE2F6716D4
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002  39F7FB37-9F9F-485e-
> 8DBC-0F3191DA9909
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003  D13DA599-37E7-
> 474a-9343-83C9EFE80893
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004  5428BDD5-4332-
> 4e3b-841F-3E60540AA35D
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005  1844A7C8-730C-4927-
> 8E02-CE0A6CA08DCC
> -set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006  B0E66591-9076-48e3-
> 8DF6-2A1D59A572DB
> -
> -
> -#
> -# Guid for UnregisterDataNotify() interface
> -#
> -set Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001  8AB0E5A2-A4E1-
> 4282-87B5-E377C763AD2F
> -set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001  5C68228F-AAAE-
> 4d0b-9927-7664476EF360
> -set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002  55D8193E-F58E-
> 4800-924B-73C902098DD8
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001  42EB4628-8DF6-
> 4704-81E5-F7EAE6CBB270
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002  174CEC07-E573-
> 434b-8E99-77F8AE9C55B5
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid003  1F5EF1AF-8A19-
> 48d6-831F-51BE00B32AA5
> -set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid004  388C8838-7790-
> 4a1f-9DB7-5017D7AA60DB
> -
> -
> -
> -
> -
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +#
> +# Guid for SetData() interface
> +#
> +set Ip6ConfigSetDataConf1AssertionGuid001  7A224CCE-B79B-472a-9B8C-
> A47E074D5EEF
> +set Ip6ConfigSetDataConf2AssertionGuid001  46F12872-61F2-46e4-A2F9-
> 5F685B419479
> +set Ip6ConfigSetDataConf2AssertionGuid002  1CAC93D3-732A-4e30-894D-
> EE63B6F486A0
> +set Ip6ConfigSetDataConf2AssertionGuid003  D005EBF3-CFD6-498a-9005-
> C2B3702EB4FC
> +set Ip6ConfigSetDataConf2AssertionGuid004  389806D5-4506-4319-8D17-
> 9B4FC9D97E25
> +set Ip6ConfigSetDataConf2AssertionGuid005  5AEFDB0C-322F-49c3-9DD2-
> DFE21B66B308
> +set Ip6ConfigSetDataConf2AssertionGuid006  D339988F-2595-4fb5-81AE-
> A94DC470B234
> +set Ip6ConfigSetDataConf3AssertionGuid001  4319A43B-7641-47c0-84BB-
> 985C479902A2
> +set Ip6ConfigSetDataConf4AssertionGuid001  01F3B344-EB52-4086-B949-
> 55D7E4DC5BDE
> +set Ip6ConfigSetDataConf4AssertionGuid002  F612AF26-2519-497c-B205-
> 37A2914AEE05
> +set Ip6ConfigSetDataConf4AssertionGuid003  592C1F3D-249E-4654-B4B1-
> 600421624DD1
> +set Ip6ConfigSetDataConf5AssertionGuid001  D70BEC29-8026-4e1b-BA8B-
> 36A313B45859
> +set Ip6ConfigSetDataConf5AssertionGuid002  FE793490-53F8-4991-8348-
> E624530E83E9
> +set Ip6ConfigSetDataConf5AssertionGuid003  42CCB2EF-D706-4d1a-B247-
> F42BBA99F707
> +set Ip6ConfigSetDataConf5AssertionGuid004  9168CB20-C891-42da-BB9F-
> 7ADBE488B012
> +set Ip6ConfigSetDataConf5AssertionGuid005  AD058D87-1015-4b2d-A351-
> 5BD4B0930B7B
> +set Ip6ConfigSetDataConf5AssertionGuid006  388BE3F6-D63E-4cbf-A3D9-
> 3D941823259B
> +set Ip6ConfigSetDataConf6AssertionGuid001  2886BAE1-383A-400f-8F88-
> 66376B2A0FF5
> +set Ip6ConfigSetDataConf7AssertionGuid001  D2C61F06-8822-4a09-89A1-
> 7F0667FCAF0E
> +set Ip6ConfigSetDataFunc1AssertionGuid001  0A5902DA-4142-4494-AC66-
> 2B731FFEA671
> +set Ip6ConfigSetDataFunc1AssertionGuid002  D9A9EF5E-D819-49d0-BB12-
> 25ADEC52DDB3
> +set Ip6ConfigSetDataFunc1AssertionGuid003  14E96019-0815-4486-916C-
> E440E166628E
> +set Ip6ConfigSetDataFunc1AssertionGuid004  3458BBE0-0D7E-48ec-B380-
> 2A885F44E104
> +
> +set Ip6ConfigSetDataFunc2AssertionGuid001  B533A7CF-6C27-421A-A816-
> B075E7EA4573
> +set Ip6ConfigSetDataFunc2AssertionGuid002  C816C0EE-52C0-400E-A9CC-
> 25C263E27B04
> +set Ip6ConfigSetDataFunc2AssertionGuid003  2CF2435A-C444-4E09-BC8A-
> 56A6F33CED9C
> +set Ip6ConfigSetDataFunc2AssertionGuid004  3B673875-4CE8-4F23-8FE1-
> E440376604FD
> +set Ip6ConfigSetDataFunc2AssertionGuid005  05B7BF41-9CE9-481B-B9A4-
> 2E83AD5E89E3
> +set Ip6ConfigSetDataFunc2AssertionGuid006  4D49A668-A44D-4D69-9F20-
> 40B7F147988E
> +set Ip6ConfigSetDataFunc2AssertionGuid007  23000969-DFDE-4B04-AD44-
> 0844D595AA66
> +set Ip6ConfigSetDataFunc2AssertionGuid008  E444B75C-B559-48C4-8D15-
> 8F882AC7F81E
> +set Ip6ConfigSetDataFunc2AssertionGuid009  AC649D07-2063-4045-9DAE-
> 29B4E38E46BB
> +set Ip6ConfigSetDataFunc2AssertionGuid010  4EDBB740-405F-4E6D-A4A5-
> D77122D16278
> +set Ip6ConfigSetDataFunc2AssertionGuid011  D131A6D9-CCAB-4460-8402-
> 80ED252FEB09
> +set Ip6ConfigSetDataFunc2AssertionGuid012  A5D75088-D8D3-47DD-A623-
> F6098DF70546
> +
> +#
> +# Guid for GetData() interface
> +#
> +set Ip6ConfigGetDataConf1AssertionGuid001  D15E421D-6228-4fea-8D5A-
> 330FFF3F80D2
> +set Ip6ConfigGetDataConf2AssertionGuid001  38B36C04-12E9-4e96-B24F-
> C453851E6C1D
> +set Ip6ConfigGetDataConf3AssertionGuid001  D05A6C59-617F-4549-9659-
> 4E0CFC3C3336
> +set Ip6ConfigGetDataConf3AssertionGuid002  ED45C2FE-9EC1-4553-AFA4-
> 771E9D4F7611
> +set Ip6ConfigGetDataConf4AssertionGuid001  59118C46-2F2A-4029-ABD6-
> 767418920369
> +set Ip6ConfigGetDataConf5AssertionGuid001  55955D09-C806-4777-9FF0-
> 95C00E79AC28
> +set Ip6ConfigGetDataFunc1AssertionGuid001  FEAAC1A0-95BD-4dcb-91C3-
> 9F08504BEFA1
> +set Ip6ConfigGetDataFunc1AssertionGuid002  3649D729-D6D0-456e-84AE-
> C7E7B8464343
> +set Ip6ConfigGetDataFunc1AssertionGuid003  165E79B4-C987-4100-8AA2-
> 8AB115B07FAD
> +set Ip6ConfigGetDataFunc1AssertionGuid004  DB420311-17F7-40cf-A0B1-
> 0294D5DCCC92
> +
> +#
> +# Guid for RegisterDataNotify() interface
> +#
> +set Ip6ConfigRegisterDataNotifyConf1AssertionGuid001  7E3F6157-EC75-4ecd-
> A79B-4926F3AA1C0D
> +set Ip6ConfigRegisterDataNotifyConf2AssertionGuid001  70DC8C71-C54D-
> 4446-8AD9-BAC086E43D17
> +set Ip6ConfigRegisterDataNotifyConf3AssertionGuid001  2D88F18B-0BEF-
> 4616-BDE5-CA4E0086E1D3
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001  9A98DC85-D018-
> 45aa-B851-34EE2F6716D4
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002  39F7FB37-9F9F-485e-
> 8DBC-0F3191DA9909
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003  D13DA599-37E7-
> 474a-9343-83C9EFE80893
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004  5428BDD5-4332-
> 4e3b-841F-3E60540AA35D
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005  1844A7C8-730C-
> 4927-8E02-CE0A6CA08DCC
> +set Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006  B0E66591-9076-
> 48e3-8DF6-2A1D59A572DB
> +
> +
> +#
> +# Guid for UnregisterDataNotify() interface
> +#
> +set Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001  8AB0E5A2-A4E1-
> 4282-87B5-E377C763AD2F
> +set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001  5C68228F-AAAE-
> 4d0b-9927-7664476EF360
> +set Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002  55D8193E-F58E-
> 4800-924B-73C902098DD8
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001  42EB4628-8DF6-
> 4704-81E5-F7EAE6CBB270
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002  174CEC07-E573-
> 434b-8E99-77F8AE9C55B5
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid003  1F5EF1AF-8A19-
> 48d6-831F-51BE00B32AA5
> +set Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid004  388C8838-7790-
> 4a1f-9DB7-5017D7AA60DB
> +
> +
> +
> +
> +
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> index 0d78321..1fcd579 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/Include/Ip6ConfigDefine.tcl
> @@ -1,51 +1,51 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -if {[info exist IP6CONFIG_DEFINE] == 1} {
> -  return
> -}
> -set IP6CONFIG_DEFINE 1
> -
> -#
> -# EUT/ENTS Connection Definition
> -#
> -#set DEF_EUT_IP_ADDR   "2002:0000:0000:0000:0000:0000:0000:0001"
> -#set DEF_EUT_MAC_ADDR  [GetTargetMac]
> -#set DEF_EUT_PRT       0
> -
> -#set DEF_ENTS_IP_ADDR  "2002:0000:0000:0000:0000:0000:0000:4321"
> -#set DEF_ENTS_MAC_ADDR [GetHostMac]
> -#set DEF_ENTS_PRT      8888
> -
> -#
> -# EFI_IP6_CONFIG_DATA_TYPE
> -#
> -set IP6CDT(InterfaceInfo) 0
> -set IP6CDT(AltInterfaceId) 1
> -set IP6CDT(Policy) 2
> -set IP6CDT(DupAddrDetectTransmits) 3
> -set IP6CDT(ManualAddress) 4
> -set IP6CDT(Gateway) 5
> -set IP6CDT(DnsServer) 6
> -set IP6CDT(Maximum) 7
> -
> -#
> -# EFI_IP6_CONFIG_POLICY
> -#
> -set IP6CP(Manual) 0
> -set IP6CP(Automatic) 1
> -
> -#
> -# Timers
> -#
> -set i 0
> -set L_TimeOut 30
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +if {[info exist IP6CONFIG_DEFINE] == 1} {
> +  return
> +}
> +set IP6CONFIG_DEFINE 1
> +
> +#
> +# EUT/ENTS Connection Definition
> +#
> +#set DEF_EUT_IP_ADDR   "2002:0000:0000:0000:0000:0000:0000:0001"
> +#set DEF_EUT_MAC_ADDR  [GetTargetMac]
> +#set DEF_EUT_PRT       0
> +
> +#set DEF_ENTS_IP_ADDR  "2002:0000:0000:0000:0000:0000:0000:4321"
> +#set DEF_ENTS_MAC_ADDR [GetHostMac]
> +#set DEF_ENTS_PRT      8888
> +
> +#
> +# EFI_IP6_CONFIG_DATA_TYPE
> +#
> +set IP6CDT(InterfaceInfo) 0
> +set IP6CDT(AltInterfaceId) 1
> +set IP6CDT(Policy) 2
> +set IP6CDT(DupAddrDetectTransmits) 3
> +set IP6CDT(ManualAddress) 4
> +set IP6CDT(Gateway) 5
> +set IP6CDT(DnsServer) 6
> +set IP6CDT(Maximum) 7
> +
> +#
> +# EFI_IP6_CONFIG_POLICY
> +#
> +set IP6CP(Manual) 0
> +set IP6CP(Automatic) 1
> +
> +#
> +# Timers
> +#
> +set i 0
> +set L_TimeOut 30
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> index f8a97a1..aa60cb8 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf1.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        F76B637C-BA5F-4451-8DF4-A13E1CCAB3A0
> -CaseName        RegisterDataNotify.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when event is NULL.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with event NULL
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf1AssertionGuid001
> \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the
> event NULL."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        F76B637C-BA5F-4451-8DF4-A13E1CCAB3A0
> +CaseName        RegisterDataNotify.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when event is NULL.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with event NULL
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf1AssertionGuid001
> \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the
> event NULL."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> index 3e72249..38b7431 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf2.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        E5221141-97BC-4e5f-9ABA-304BB11EADA0
> -CaseName        RegisterDataNotify.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when data type is not
> supported.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -UINTN                            R_Ip6ConfigDataTypeMaximum
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINTN]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with the datatype not
> supported
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf2AssertionGuid001
> \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the
> data type not supported."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_UNSUPPORTED"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        E5221141-97BC-4e5f-9ABA-304BB11EADA0
> +CaseName        RegisterDataNotify.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when data type is not
> supported.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +UINTN                            R_Ip6ConfigDataTypeMaximum
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINTN]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with the datatype not
> supported
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf2AssertionGuid001
> \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the
> data type not supported."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_UNSUPPORTED"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF2
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> index 8c8363c..77d9ef5 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Conf3.Case1.tcl
> @@ -1,109 +1,109 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        B00EBD2E-F23E-434e-80E8-2A17C3BCFDFE
> -CaseName        RegisterDataNotify.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must not succeed when event has already
> registered.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->RegisterDataNotify with valid parameters
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event with valid
> parameters."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -#
> -# Check Point : Call RegisterDataNotify() with the same event (has been
> registered)
> -#
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf3AssertionGuid001
> \
> -                "Ip6Config.RegisterDataNotify - Register notification event with the
> event registered already."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_ACCESS_DENIED"
> -
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        B00EBD2E-F23E-434e-80E8-2A17C3BCFDFE
> +CaseName        RegisterDataNotify.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must not succeed when event has already
> registered.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->RegisterDataNotify with valid parameters
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event with valid
> parameters."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +#
> +# Check Point : Call RegisterDataNotify() with the same event (has been
> registered)
> +#
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyConf3AssertionGuid001
> \
> +                "Ip6Config.RegisterDataNotify - Register notification event with the
> event registered already."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_ACCESS_DENIED"
> +
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_CONF3
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> index 38be04c..b2b777c 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case1.tcl
> @@ -1,539 +1,539 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        7D041B9B-4F68-434a-A0C6-63FDC415D078
> -CaseName        RegisterDataNotify.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must succeed with valid parameters when
> one event registered on one data type.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Context2
> -UINTN                            R_DoneEvent2
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                        "Ip6Config.GetData - Call GetData to get policy value."        \
> -                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                  "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 0
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    0
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                 "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> -                 "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -    if { $R_Context1 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                  "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set DadXmits succeeds(event is signaled correctly and data correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -#
> -# Register Event for Manual Address
> -#
> -SetVar R_Context2 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context2,\
> -                &@R_DoneEvent2, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001
> \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual address."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context2
> -    if { $R_Context2 == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -      RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -      GetAck
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                  "Ip6Config.SetData - Call SetData to set manual address."            \
> -                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Events for registered datatype
> -#
> -GetVar R_Context2
> -if { $R_Context2 == 1 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002
> \
> -                "Ip6Config.RegisterDataNotify - Registered event is signaled."
> -
> -#
> -# GetData to verfiy the data setting
> -#
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Ip6Config.GetData - Call GetData to get manual address."        \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -GetVar R_Ip6ConfigManualAddress.IsAnycast
> -if { ${R_Ip6ConfigManualAddress.IsAnycast} == FALSE } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -GetVar R_Ip6ConfigManualAddress.PrefixLength
> -if { ${R_Ip6ConfigManualAddress.PrefixLength} == 64 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -GetVar R_Ip6ConfigManualAddress.Address
> -set L_ManualAddress "2002:0000:0000:0000:0000:0000:0000:5000"
> -set L_RemoteAddress [ GetIpv6Address {R_Ip6ConfigManualAddress.Address} ]
> -if { [ string compare $L_RemoteAddress $L_ManualAddress ] == 0 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                "Set ManualAddress succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -    if { $R_Context == 1 } {
> -      break
> -    } elseif { $i == $L_TimeOut } {
> -      set assert fail
> -
> -      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -      GetAck
> -      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -      GetAck
> -      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -      GetAck
> -
> -      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -      EndLog
> -      return
> -    }
> -    incr i
> -    Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        7D041B9B-4F68-434a-A0C6-63FDC415D078
> +CaseName        RegisterDataNotify.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must succeed with valid parameters when
> one event registered on one data type.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Context2
> +UINTN                            R_DoneEvent2
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                        "Ip6Config.GetData - Call GetData to get policy value."        \
> +                        "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                  "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 0
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    0
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                 "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> +                 "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +    if { $R_Context1 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set DadXmits 0."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                  "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set DadXmits succeeds(event is signaled correctly and data correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +#
> +# Register Event for Manual Address
> +#
> +SetVar R_Context2 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context2,\
> +                &@R_DoneEvent2, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid001
> \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual address."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context2
> +    if { $R_Context2 == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +      RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +      GetAck
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                  "Ip6Config.SetData - Call SetData to set manual address."            \
> +                  "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Events for registered datatype
> +#
> +GetVar R_Context2
> +if { $R_Context2 == 1 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid002
> \
> +                "Ip6Config.RegisterDataNotify - Registered event is signaled."
> +
> +#
> +# GetData to verfiy the data setting
> +#
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Ip6Config.GetData - Call GetData to get manual address."        \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigManualAddress.IsAnycast
> +if { ${R_Ip6ConfigManualAddress.IsAnycast} == FALSE } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +GetVar R_Ip6ConfigManualAddress.PrefixLength
> +if { ${R_Ip6ConfigManualAddress.PrefixLength} == 64 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +GetVar R_Ip6ConfigManualAddress.Address
> +set L_ManualAddress "2002:0000:0000:0000:0000:0000:0000:5000"
> +set L_RemoteAddress [ GetIpv6Address {R_Ip6ConfigManualAddress.Address} ]
> +if { [ string compare $L_RemoteAddress $L_ManualAddress ] == 0 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                "Set ManualAddress succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +    if { $R_Context == 1 } {
> +      break
> +    } elseif { $i == $L_TimeOut } {
> +      set assert fail
> +
> +      SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +      GetAck
> +      SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +      Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +      GetAck
> +      BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +      GetAck
> +
> +      EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +      EndLog
> +      return
> +    }
> +    incr i
> +    Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent2,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent2,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> index bd52067..6f7e51f 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/RegisterDataNotify.Func1.Case2.tcl
> @@ -1,266 +1,266 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        886AE98A-5D43-47b4-A339-85FB089F21FA
> -CaseName        RegisterDataNotify.Func1.Case2
> -CaseCategory    IP6Config
> -CaseDescription {RegisterDataNotify must succeed with valid parameters when
> one event registered on two data types.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                          R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Create Event and register it with data type [Policy] and
> [DadXmits]
> -#
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003
> \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004
> \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the
> event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005
> \
> -               "Ip6Config.RegisterDataNotify - Event is signaled for DataType -
> Policy."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether
> the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006
> \
> -               "Ip6Config.RegisterDataNotify - Event is signaled for DataType -
> DadXmits."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        886AE98A-5D43-47b4-A339-85FB089F21FA
> +CaseName        RegisterDataNotify.Func1.Case2
> +CaseCategory    IP6Config
> +CaseDescription {RegisterDataNotify must succeed with valid parameters when
> one event registered on two data types.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                          R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Create Event and register it with data type [Policy] and
> [DadXmits]
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003
> \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004
> \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the
> event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid005
> \
> +               "Ip6Config.RegisterDataNotify - Event is signaled for DataType -
> Policy."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether
> the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid006
> \
> +               "Ip6Config.RegisterDataNotify - Event is signaled for DataType -
> DadXmits."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_REGISTERDATANOTIFY_FUNC1_CASE2
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> index 2213ec9..8c33521 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf1.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EF4CCB73-577C-4b8c-96E3-91517F0B7056
> -CaseName        SetData.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is NULL.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->SetData with data is NULL.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,NULL,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf1AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with Data NULL."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EF4CCB73-577C-4b8c-96E3-91517F0B7056
> +CaseName        SetData.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is NULL.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->SetData with data is NULL.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,NULL,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf1AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with Data NULL."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> index f14a5bb..bbf7830 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf2.Case1.tcl
> @@ -1,299 +1,299 @@
> -#
> -#  Copyright 2006 - 2017 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        A9BBCC37-3ED5-4c11-B6B6-BE52A1131568
> -CaseName        SetData.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when one or more fields in data is
> invalid.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF2
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF2
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point : Set Manual Address with "::"
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "::"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address (Not Unicast
> or Linklocal)."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point : Set Manual Address with duplication of list entries
> -#
> -set L_ManualListLen    3
> -EFI_IP6_CONFIG_MANUAL_ADDRESS
> R_Ip6ConfigManualAddress($L_ManualListLen)
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress(0) @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress(1) @R_Temp_Ip6ConfigManualAddress
> -
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress(2) @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set manual address (duplication of
> list entries)."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway with "ff02::1" (multicast address)
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "ff02::1"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with multicast
> address."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Gateway with duplication of list entries
> -#
> -set L_GatewayListLen   3
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway($L_GatewayListLen)
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> -SetVar R_Ip6ConfigGateway(0) @R_Temp_Ip6ConfigGateway
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway(1) @R_Temp_Ip6ConfigGateway
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> -SetVar R_Ip6ConfigGateway(2) @R_Temp_Ip6ConfigGateway
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid004                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with duplication of
> list entries."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server with "ff02::1" (link local address)
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "ff02::1"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@
> R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid005                   \
> -                "Ip6Config.SetData - Call SetData to set dns server with multicast
> address."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF2
> -
> +#
> +#  Copyright 2006 - 2017 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        A9BBCC37-3ED5-4c11-B6B6-BE52A1131568
> +CaseName        SetData.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when one or more fields in data is
> invalid.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF2
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point : Set Manual Address with "::"
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "::"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address (Not Unicast
> or Linklocal)."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point : Set Manual Address with duplication of list entries
> +#
> +set L_ManualListLen    3
> +EFI_IP6_CONFIG_MANUAL_ADDRESS
> R_Ip6ConfigManualAddress($L_ManualListLen)
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress(0) @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress(1) @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress(2) @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set manual address (duplication
> of list entries)."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway with "ff02::1" (multicast address)
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "ff02::1"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with multicast
> address."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Gateway with duplication of list entries
> +#
> +set L_GatewayListLen   3
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway($L_GatewayListLen)
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> +SetVar R_Ip6ConfigGateway(0) @R_Temp_Ip6ConfigGateway
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway(1) @R_Temp_Ip6ConfigGateway
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5000"
> +SetVar R_Ip6ConfigGateway(2) @R_Temp_Ip6ConfigGateway
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid004                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with duplication of
> list entries."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server with "ff02::1" (link local address)
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "ff02::1"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@
> R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert $Ip6ConfigSetDataConf2AssertionGuid005                   \
> +                "Ip6Config.SetData - Call SetData to set dns server with multicast
> address."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF2
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> index 84a13c6..1cfc489 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf3.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        2FCE7A2D-09F4-4c8e-97CD-68A0045E34B8
> -CaseName        SetData.Conf3.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is read-only type.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF3
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point: Call Ip6Config->SetData with data is read only.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> -SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceInfo,
> &@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf3AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with data is read only."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF3
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        2FCE7A2D-09F4-4c8e-97CD-68A0045E34B8
> +CaseName        SetData.Conf3.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is read-only type.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF3
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point: Call Ip6Config->SetData with data is read only.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(InterfaceInfo)
> +SetVar R_Ip6ConfigDataSize [Sizeof EFI_IP6_CONFIG_INTERFACE_INFO]
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceInfo,
> &@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf3AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with data is read only."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_WRITE_PROTECTED"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF3
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> index 04235cc..597fdac 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf4.Case1.tcl
> @@ -1,238 +1,238 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        D0A2D271-0BBF-4092-A61E-96FB23208DE0
> -CaseName        SetData.Conf4.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data is not configurable in
> current policy.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF4
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF4
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF4
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set automatic policy succeeds(event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF4
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set automatic policy succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point : Set Manual Address under automatic policy
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address under
> automatic poilcy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway under automatic policy
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set gateway under automatic
> policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server under automatic policy
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5001"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@
> R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set dns server under automatic
> policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_WRITE_PROTECTED"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF4
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        D0A2D271-0BBF-4092-A61E-96FB23208DE0
> +CaseName        SetData.Conf4.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data is not configurable in
> current policy.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF4
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF4
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF4
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set automatic policy succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF4
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set automatic policy succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point : Set Manual Address under automatic policy
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address under
> automatic poilcy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway under automatic policy
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set gateway under automatic
> policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server under automatic policy
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5001"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@
> R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_WRITE_PROTECTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf4AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set dns server under automatic
> policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_WRITE_PROTECTED"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF4
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> index 9b7e9c1..5e5a3e1 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf5.Case1.tcl
> @@ -1,279 +1,279 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        1F1728C3-BB62-4f28-9D75-6E631F7A6833
> -CaseName        SetData.Conf5.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data size does not match the
> data type.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF5
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF5
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF5
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF5
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point : Set Manual Address with wrong data size
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   16
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with wrong
> data size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Points : Set Gateway with wrong data size
> -#
> -set L_GatewayListLen   1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> -SetVar R_Ip6ConfigDataSize   8
> -
> -SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> -SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid002                   \
> -                "Ip6Config.SetData - Call SetData to set gateway with wrong data
> size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -DelVar R_Ip6ConfigGateway
> -
> -#
> -# Check Point : Set Dns Server with wrong data size
> -#
> -set L_DnsServerListLen 1
> -EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> -EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> -set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> -SetVar R_Ip6ConfigDataSize   8
> -
> -SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> -SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@
> R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set dns server with wrong data
> size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -DelVar R_Ip6ConfigDnsServer
> -
> -#
> -# Check Point : Set Altlfld with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   1
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&
> @R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid004                   \
> -                "Ip6Config.SetData - Call SetData to set Altlfld with wrong data size."
> \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -#
> -# Check Point : Set DadXmits with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   1
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits   3
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid005                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits with wrong data
> size."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -#
> -# Check Point : Set Policy with wrong data size
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   1
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> -RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid006                   \
> -                "Ip6Config.SetData - Call SetData to set Policy with wrong data size."
> \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF5
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        1F1728C3-BB62-4f28-9D75-6E631F7A6833
> +CaseName        SetData.Conf5.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data size does not match the
> data type.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF5
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +	       SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF5
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF5
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF5
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point : Set Manual Address with wrong data size
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   16
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with wrong
> data size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Points : Set Gateway with wrong data size
> +#
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   8
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid002                   \
> +                "Ip6Config.SetData - Call SetData to set gateway with wrong data
> size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +DelVar R_Ip6ConfigGateway
> +
> +#
> +# Check Point : Set Dns Server with wrong data size
> +#
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   8
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@
> R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid003                   \
> +                "Ip6Config.SetData - Call SetData to set dns server with wrong data
> size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +DelVar R_Ip6ConfigDnsServer
> +
> +#
> +# Check Point : Set Altlfld with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   1
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&
> @R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid004                   \
> +                "Ip6Config.SetData - Call SetData to set Altlfld with wrong data size."
> \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +#
> +# Check Point : Set DadXmits with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   1
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits   3
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid005                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits with wrong data
> size."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +#
> +# Check Point : Set Policy with wrong data size
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   1
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_BAD_BUFFER_SIZE]
> +RecordAssertion $assert $Ip6ConfigSetDataConf5AssertionGuid006                   \
> +                "Ip6Config.SetData - Call SetData to set Policy with wrong data size."
> \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_BAD_BUFFER_SIZE"
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF5
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> index 0430336..0bc8880 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf6.Case1.tcl
> @@ -1,72 +1,72 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        6C5FB23E-96A5-475a-8B7E-24B9BBB99C2A
> -CaseName        SetData.Conf6.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when data type is not supported.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF6
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> -UINT32                            R_Ip6ConfigMaximum
> -#
> -# Check Point: Call Ip6Config->SetData when data type is not supported.
> -#
> -SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> -SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximum,&@
> R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf6AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData with the data type not supported."
> \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> -
> -EndScope _IP6CONFIG_SETDATA_CONF6
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        6C5FB23E-96A5-475a-8B7E-24B9BBB99C2A
> +CaseName        SetData.Conf6.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when data type is not supported.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF6
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +EFI_IP6_CONFIG_MANUAL_ADDRESS               R_Ip6ConfigManualAddress
> +UINT32                            R_Ip6ConfigMaximum
> +#
> +# Check Point: Call Ip6Config->SetData when data type is not supported.
> +#
> +SetVar R_Ip6ConfigDataType $IP6CDT(Maximum)
> +SetVar R_Ip6ConfigDataSize [Sizeof UINT32]
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigMaximum,&@
> R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_UNSUPPORTED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf6AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData with the data type not supported."
> \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_UNSUPPORTED"
> +
> +EndScope _IP6CONFIG_SETDATA_CONF6
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> index 15e118b..22b5676 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Conf7.Case1.tcl
> @@ -1,510 +1,510 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        477D07AC-6FEB-460b-BA92-A98245862D09
> -CaseName        SetData.Conf7.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must not succeed when the last asynchronous
> process for the data type has not been finished yet.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_CONF7
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual policy."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get policy value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits 20
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point : Set Manual Address with valid parameter
> -#
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> -
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_NOT_READY } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> -
> -DelVar R_Ip6ConfigManualAddress
> -
> -#
> -# Check Point : Set Manual Address with valid parameter before the former
> setting finishes
> -#
> -set L_ManualListLen    1
> -EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> -set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   $L_ListLen
> -SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> -SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> -SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> -SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> -RecordAssertion $assert $Ip6ConfigSetDataConf7AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter before the former setting finishes."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> -
> -
> -#
> -# Make sure the former configurations succeeds
> -# (Eliminate the side-effect to other cases)
> -#
> -set i 0
> -set L_TimeOut 30
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> -GetAck
> -GetVar R_Status
> -set assert pass
> -while { $R_Status == $EFI_NOT_READY } {
> -  Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> -  GetAck
> -  GetVar R_Status
> -  if { $R_Status == $EFI_SUCCESS } {
> -    break
> -  } elseif { $i == $L_TimeOut } {
> -    set assert fail
> -
> -    RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -    Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -    GetAck
> -    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -    Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -    GetAck
> -    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -    GetAck
> -    EndScope _IP6CONFIG_SETDATA_CONF7
> -    EndLog
> -    return
> -  }
> -  incr i
> -  Stall 1
> -}
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - former SetData finishes."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -#
> -# Set automatic policy (this will clean up all address information configured)
> -#
> -SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> -
> -SetVar R_Context 0
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  set assert pass
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -
> -		RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -
> -		EndScope _IP6CONFIG_SETDATA_CONF7
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> -GetAck
> -GetVar R_Ip6ConfigPolicy
> -if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> -  set assert pass
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -
> -  EndScope _IP6CONFIG_SETDATA_CONF7
> -  EndLog
> -
> -  return
> -}
> -
> -RecordAssertion $assert $GenericAssertionGuid                     \
> -                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> -                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> -
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_CONF7
> -
> -EndLog
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        477D07AC-6FEB-460b-BA92-A98245862D09
> +CaseName        SetData.Conf7.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must not succeed when the last asynchronous
> process for the data type has not been finished yet.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_CONF7
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_NOT_READY } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_READY"
> +
> +DelVar R_Ip6ConfigManualAddress
> +
> +#
> +# Check Point : Set Manual Address with valid parameter before the former
> setting finishes
> +#
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5001"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_ACCESS_DENIED]
> +RecordAssertion $assert $Ip6ConfigSetDataConf7AssertionGuid001                   \
> +                "Ip6Config.SetData - Call SetData to set manual address with valid
> parameter before the former setting finishes."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_ACCESS_DENIED"
> +
> +
> +#
> +# Make sure the former configurations succeeds
> +# (Eliminate the side-effect to other cases)
> +#
> +set i 0
> +set L_TimeOut 30
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +GetAck
> +GetVar R_Status
> +set assert pass
> +while { $R_Status == $EFI_NOT_READY } {
> +  Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +  GetAck
> +  GetVar R_Status
> +  if { $R_Status == $EFI_SUCCESS } {
> +    break
> +  } elseif { $i == $L_TimeOut } {
> +    set assert fail
> +
> +    RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +    Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +    GetAck
> +    SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +    Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +    GetAck
> +    BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +    GetAck
> +    EndScope _IP6CONFIG_SETDATA_CONF7
> +    EndLog
> +    return
> +  }
> +  incr i
> +  Stall 1
> +}
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - former SetData finishes."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +#
> +# Set automatic policy (this will clean up all address information configured)
> +#
> +SetVar R_Ip6ConfigDataType  $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Automatic)
> +
> +SetVar R_Context 0
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  set assert pass
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +
> +		RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +              SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +              SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +
> +		EndScope _IP6CONFIG_SETDATA_CONF7
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Automatic) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +  SetVar  R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar   R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +
> +  EndScope _IP6CONFIG_SETDATA_CONF7
> +  EndLog
> +
> +  return
> +}
> +
> +RecordAssertion $assert $GenericAssertionGuid                     \
> +                "Ip6Config.SetData - Set automatic policy to clean up the former
> configuration."            \
> +                "TimeUsed - $i, TimeOut Value- $L_TimeOut"
> +
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_CONF7
> +
> +EndLog
> +
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> index 2053775..d35f104 100644
> --- a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func1.Case1.tcl
> @@ -1,274 +1,274 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EF8FF5B4-8855-4fbd-87C5-C28C7312302A
> -CaseName        SetData.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {SetData must succeed with valid parameters.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_SETDATA_FUNC1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_Context1
> -UINTN                            R_DoneEvent
> -UINTN                            R_DoneEvent1
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set AltInterfaceId
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> -SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> -SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> -SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> -SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> -SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> -SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> -SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> -SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&
> @R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> -                "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context
> -	if { $R_Context == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert
> $Ip6ConfigSetDataFunc1AssertionGuid001         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001                   \
> -               "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_FUNC1
> -  EndLog
> -  return
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,
> &@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."
> \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigInterfaceId
> -if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} ==
> 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)}
> == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)}
> == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)}
> == 7} {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid002        \
> -                      "Set AltInterfaceId succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set DadXmits
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> -
> -SetVar R_Context1 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> -                &@R_DoneEvent1, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -    GetVar R_Context1
> -	if { $R_Context1 == 1 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert
> $Ip6ConfigSetDataFunc1AssertionGuid003         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -		GetAck
> -		EndScope _IP6CONFIG_SETDATA_FUNC1
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003                   \
> -               "Ip6Config.SetData - Call SetData to set manual DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_SETDATA_FUNC1
> -  EndLog
> -}
> -
> -Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid        \
> -                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> -                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -GetVar R_Ip6ConfigDadTransmits
> -if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid004        \
> -                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_SETDATA_FUNC1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EF8FF5B4-8855-4fbd-87C5-C28C7312302A
> +CaseName        SetData.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData must succeed with valid parameters.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_FUNC1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_Context1
> +UINTN                            R_DoneEvent
> +UINTN                            R_DoneEvent1
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set AltInterfaceId
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_INTERFACE_ID]
> +SetVar R_Ip6ConfigInterfaceId.Id(0) 0
> +SetVar R_Ip6ConfigInterfaceId.Id(1) 1
> +SetVar R_Ip6ConfigInterfaceId.Id(2) 2
> +SetVar R_Ip6ConfigInterfaceId.Id(3) 3
> +SetVar R_Ip6ConfigInterfaceId.Id(4) 4
> +SetVar R_Ip6ConfigInterfaceId.Id(5) 5
> +SetVar R_Ip6ConfigInterfaceId.Id(6) 6
> +SetVar R_Ip6ConfigInterfaceId.Id(7) 7
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,&
> @R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001
> \
> +                "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert
> $Ip6ConfigSetDataFunc1AssertionGuid001         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid001
> \
> +               "Ip6Config.SetData - Call SetData to set AltInterfaceId."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC1
> +  EndLog
> +  return
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigInterfaceId,
> &@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get AltInterfaceId value."
> \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigInterfaceId
> +if { ${R_Ip6ConfigInterfaceId.Id(0)} == 0 && ${R_Ip6ConfigInterfaceId.Id(1)} ==
> 1 && ${R_Ip6ConfigInterfaceId.Id(2)} == 2 && ${R_Ip6ConfigInterfaceId.Id(3)}
> == 3 && ${R_Ip6ConfigInterfaceId.Id(4)} == 4 && ${R_Ip6ConfigInterfaceId.Id(5)}
> == 5 && ${R_Ip6ConfigInterfaceId.Id(6)} == 6 && ${R_Ip6ConfigInterfaceId.Id(7)}
> == 7} {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid002        \
> +                      "Set AltInterfaceId succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits 3
> +
> +SetVar R_Context1 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context1,\
> +                &@R_DoneEvent1, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003
> \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context1
> +	if { $R_Context1 == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert
> $Ip6ConfigSetDataFunc1AssertionGuid003         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC1
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid003
> \
> +               "Ip6Config.SetData - Call SetData to set manual DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC1
> +  EndLog
> +}
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 3 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigSetDataFunc1AssertionGuid004        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(AltInterfaceId)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent1,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +BS->CloseEvent {@R_DoneEvent1,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_SETDATA_FUNC1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
> b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
> new file mode 100644
> index 0000000..4d9ec42
> --- /dev/null
> +++ b/uefi-sct/EMS/Bin/TestCase/IP6Config/SetData.Func2.Case1.tcl
> @@ -0,0 +1,838 @@
> +#
> +#  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        79F40434-2684-459C-8EEB-DCFB822D93F7
> +CaseName        SetData.Func2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {SetData to clear the configuration.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_SETDATA_FUNC2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set manual policy."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_
> Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get policy value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigPolicy
> +if { $R_Ip6ConfigPolicy == $IP6CP(Manual) } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy fails(event is signaled correctly but data is
> incorrect)."
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set manual policy succeeds(event is signaled correctly and data
> correct)."
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set DadXmits 20
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    20
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits 20."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmit
> s,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DadXmits value."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +GetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits
> +if { ${R_Ip6ConfigDadTransmits.DupAddrDetectTransmits} == 20 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits fails(event is signaled correctly but data is
> incorrect)."
> +
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Set DadXmits succeeds(event is signaled correctly and data
> correct)."
> +
> +Stall 30
> +
> +#
> +# Check Point : Set Manual Address with valid parameter
> +#
> +
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Temp_Ip6ConfigManualAddress
> +
> +set L_ManualListLen    1
> +EFI_IP6_CONFIG_MANUAL_ADDRESS    R_Ip6ConfigManualAddress
> +set L_UnitLen [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_ManualListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +SetVar R_Temp_Ip6ConfigManualAddress.IsAnycast FALSE
> +SetVar R_Temp_Ip6ConfigManualAddress.PrefixLength 64
> +SetIpv6Address R_Temp_Ip6ConfigManualAddress.Address "2002::5000"
> +SetVar R_Ip6ConfigManualAddress @R_Temp_Ip6ConfigManualAddress
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddres
> s,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001
> \
> +                "Ip6Config.SetData - Call SetData to set MANUAL ADDRESS."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert
> $Ip6ConfigSetDataFunc2AssertionGuid001         \
> +                      "SetData to set MANUAL ADDRESS fail.(event hasn't been signaled
> before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid001
> \
> +               "Ip6Config.SetData - Call SetData to set MANUAL ADDRESS."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get Manual Address."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigManualAddress
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigManualAddress.Address}]
> +if { [string compare $L_Proc_Ipv6Address
> 2002:0000:0000:0000:0000:0000:0000:5000] != 0  } {
> +  puts $L_Proc_Ipv6Address
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002
> \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but
> data is incorrect.)"
> +} elseif {${R_Ip6ConfigManualAddress.PrefixLength} != 64} {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002
> \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but
> data is incorrect.)"
> +
> +} elseif {${R_Ip6ConfigManualAddress.IsAnycast} != false} {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002
> \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but
> data is incorrect.)"
> +
> +} else {
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid002
> \
> +                "Ip6Config.SetData - Set Gateway success(event is signaled correctly
> and data is correct.)"
> +}
> +
> +#
> +# Clear the Manual Address
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003
> \
> +                "Ip6Config.SetData - Call SetData to clear MANUAL ADDRESS."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert
> $Ip6ConfigSetDataFunc2AssertionGuid003         \
> +                      "SetData to clear MANUAL ADDRESS fail.(event hasn't been
> signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid003
> \
> +               "Ip6Config.SetData - Call SetData to clear MANUAL ADDRESS."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigManualAddr
> ess,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid004        \
> +                      "Ip6Config.GetData - Call GetData to get Manual Address."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +#
> +# Check Point : Set Gateway with valid parameter
> +#
> +
> +set L_GatewayListLen   1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigGateway
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigGateway
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_GatewayListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigGateway "2002::5001"
> +SetVar R_Ip6ConfigGateway @R_Temp_Ip6ConfigGateway
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&@R
> _Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005
> \
> +                "Ip6Config.SetData - Call SetData to set Gateway."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert
> $Ip6ConfigSetDataFunc2AssertionGuid005         \
> +                      "SetData to set Gateway fail.(event hasn't been signaled before
> TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid005
> \
> +               "Ip6Config.SetData - Call SetData to set Gateway."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&
> @R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get Gateway."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigGateway
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigGateway}]
> +if { [string compare $L_Proc_Ipv6Address
> 2002:0000:0000:0000:0000:0000:0000:5001] != 0  } {
> +  puts $L_Proc_Ipv6Address
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid006
> \
> +                  "Ip6Config.SetData - Set Gateway fail(event is signaled correctly but
> data is incorrect.)"
> +} else {
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid006
> \
> +                "Ip6Config.SetData - Set Gateway success(event is signaled correctly
> and data is correct.)"
> +}
> +
> +#
> +# Clear the Gateway
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007
> \
> +                "Ip6Config.SetData - Call SetData to clear Gateway."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert
> $Ip6ConfigSetDataFunc2AssertionGuid007         \
> +                      "SetData to clear Gateway fail.(event hasn't been signaled before
> TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid007
> \
> +               "Ip6Config.SetData - Call SetData to clear Gateway."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Gateway)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigGateway,&
> @R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid008        \
> +                      "Ip6Config.GetData - Call GetData to get Gateway."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +#
> +# Check Point : Set DnsServer with valid parameter
> +#
> +
> +set L_DnsServerListLen 1
> +EFI_IPv6_ADDRESS                 R_Temp_Ip6ConfigDnsServer
> +EFI_IPv6_ADDRESS                 R_Ip6ConfigDnsServer
> +set L_UnitLen [Sizeof EFI_IPv6_ADDRESS]
> +set L_ListLen [expr {$L_UnitLen * $L_DnsServerListLen}]
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +SetVar R_Ip6ConfigDataSize   $L_ListLen
> +
> +SetIpv6Address R_Temp_Ip6ConfigDnsServer "2002::5002"
> +SetVar R_Ip6ConfigDnsServer @R_Temp_Ip6ConfigDnsServer
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&@
> R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009
> \
> +                "Ip6Config.SetData - Call SetData to set DnsServer."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert
> $Ip6ConfigSetDataFunc2AssertionGuid009         \
> +                      "SetData to set DnsServer fail.(event hasn't been signaled before
> TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid009
> \
> +               "Ip6Config.SetData - Call SetData to set DnsServer."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&
> @R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid        \
> +                      "Ip6Config.GetData - Call GetData to get DnsServer."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +GetVar R_Ip6ConfigDnsServer
> +
> +set L_Proc_Ipv6Address [GetIpv6Address {R_Ip6ConfigDnsServer}]
> +if { [string compare $L_Proc_Ipv6Address
> 2002:0000:0000:0000:0000:0000:0000:5002] != 0  } {
> +  set assert fail
> +
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid010
> \
> +                  "Ip6Config.SetData - Set DnsServer fail(event is signaled correctly but
> data is incorrect.)"
> +} else {
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid010
> \
> +                "Ip6Config.SetData - Set DnsServer success(event is signaled correctly
> and data is correct.)"
> +}
> +
> +#
> +# Clear the DnsServer
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->SetData "@R_Ip6ConfigDataType,0,NULL,&@R_Status"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011
> \
> +                "Ip6Config.SetData - Call SetData to clear DnsServer."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +    GetVar R_Context
> +	if { $R_Context == 1 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert
> $Ip6ConfigSetDataFunc2AssertionGuid011         \
> +                      "SetData to clear DnsServer fail.(event hasn't been signaled before
> TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope _IP6CONFIG_SETDATA_FUNC2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid011
> \
> +               "Ip6Config.SetData - Call SetData to clear DnsServer."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_SETDATA_FUNC2
> +  EndLog
> +  return
> +}
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DnsServer)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +Ip6Config->GetData
> "@R_Ip6ConfigDataType,&@R_Ip6ConfigDataSize,&@R_Ip6ConfigDnsServer,&
> @R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert $Ip6ConfigSetDataFunc2AssertionGuid012        \
> +                      "Ip6Config.GetData - Call GetData to get DnsServer."        \
> +                      "ReturnStatus - $R_Status, ExpectedStatus - $EFI_NOT_FOUND"
> +
> +
> +EndScope _IP6CONFIG_SETDATA_FUNC2
> +
> +EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> index a36469f..35b36ce 100644
> --- a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf1.Case1.tcl
> @@ -1,90 +1,90 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        8B7B6AA6-2DCB-434b-9533-6346ABCC686D
> -CaseName        UnregisterDataNotify.Conf1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when event is NULL.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set manual policy
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Config->UnregisterDataNotify with the event NULL
> -#
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> -RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with
> the event NULL."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        8B7B6AA6-2DCB-434b-9533-6346ABCC686D
> +CaseName        UnregisterDataNotify.Conf1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when event is NULL.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set manual policy
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Config->UnregisterDataNotify with the event NULL
> +#
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType, 0 ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_INVALID_PARAMETER]
> +RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyConf1AssertionGuid001     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with
> the event NULL."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_INVALID_PARAMETER"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> index d41f141..7eb5808 100644
> --- a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case1.tcl
> @@ -1,83 +1,83 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        9CE66A42-FADC-4d44-B577-B58CED8E984B
> -CaseName        UnregisterDataNotify.Conf2.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when then event has
> not been registered for the data type ever.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                          R_Ip6ConfigDataType
> -
> -#
> -# Check Point: Call Ip6Config->UnregisterDataNotify with the event not
> registered
> -#
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with
> the event not registered."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_NOT_FOUND"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        9CE66A42-FADC-4d44-B577-B58CED8E984B
> +CaseName        UnregisterDataNotify.Conf2.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when then event has
> not been registered for the data type ever.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                          R_Ip6ConfigDataType
> +
> +#
> +# Check Point: Call Ip6Config->UnregisterDataNotify with the event not
> registered
> +#
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid001     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with
> the event not registered."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_NOT_FOUND"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> index 5608dbe..e56d26a 100644
> --- a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Conf2.Case2.tcl
> @@ -1,99 +1,99 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         CONFORMANCE
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        EB679CF9-9A56-4a9f-B5CF-2D845B044560
> -CaseName        UnregisterDataNotify.Conf2.Case2
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must not succeed when the event was
> registered and then unregistered for the data type.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -
> -#
> -# Check Point: Register event for Datatype - ManualAddress and then unregister
> it
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> -SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with
> correct parameters."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -#
> -# Check Point: Unregister the event again
> -#
> -Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> -RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event with
> the event has been unregistered."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_NOT_FOUND"
> -
> -#
> -# Clean up
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         CONFORMANCE
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        EB679CF9-9A56-4a9f-B5CF-2D845B044560
> +CaseName        UnregisterDataNotify.Conf2.Case2
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must not succeed when the event was
> registered and then unregistered for the data type.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +
> +#
> +# Check Point: Register event for Datatype - ManualAddress and then
> unregister it
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(ManualAddress)
> +SetVar R_Ip6ConfigDataSize   [Sizeof EFI_IP6_CONFIG_MANUAL_ADDRESS]
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with
> correct parameters."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +#
> +# Check Point: Unregister the event again
> +#
> +Ip6Config->UnregisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_NOT_FOUND]
> +RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyConf2AssertionGuid002     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event with
> the event has been unregistered."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_NOT_FOUND"
> +
> +#
> +# Clean up
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_CONF2_CASE2
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> index 5b88510..6315fa7 100644
> --- a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case1.tcl
> @@ -1,98 +1,98 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        769658B4-3397-4367-8E10-C4513407FFB8
> -CaseName        UnregisterDataNotify.Func1.Case1
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must succeed with valid parameters
> when handling signal datatype.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                            R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                            R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Create Event and RegisterDataNotify
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "IfConfig6.RegisterDataNotify() with valid parameter."
> \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -#
> -# Check Point : Call Ip6Config->UnregisterDataNotify with valid parameter
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001    \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -#
> -# Close event
> -#
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        769658B4-3397-4367-8E10-C4513407FFB8
> +CaseName        UnregisterDataNotify.Func1.Case1
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must succeed with valid parameters
> when handling signal datatype.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                            R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                            R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Create Event and RegisterDataNotify
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +Ip6Config->RegisterDataNotify "@R_Ip6ConfigDataType,
> @R_DoneEvent ,&@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "IfConfig6.RegisterDataNotify() with valid parameter."
> \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +#
> +# Check Point : Call Ip6Config->UnregisterDataNotify with valid parameter
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid001    \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +#
> +# Close event
> +#
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE1
> +
>  EndLog
> \ No newline at end of file
> diff --git a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> index 9f30136..cf1a374 100644
> --- a/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> +++ b/uefi-
> sct/EMS/Bin/TestCase/IP6Config/UnregisterDataNotify.Func1.Case2.tcl
> @@ -1,237 +1,237 @@
> -#
> -#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> -#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> -#
> -#  This program and the accompanying materials
> -#  are licensed and made available under the terms and conditions of the BSD
> License
> -#  which accompanies this distribution.  The full text of the license may be
> found at
> -#  http://opensource.org/licenses/bsd-license.php
> -#
> -#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> -#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> -#
> -
> #################################################################
> ###############
> -CaseLevel         FUNCTION
> -CaseAttribute     AUTO
> -CaseVerboseLevel  DEFAULT
> -set reportfile    report.csv
> -
> -#
> -# test case Name, category, description, GUID...
> -#
> -CaseGuid        C206AA15-2F53-4860-BD78-453C4EA463B6
> -CaseName        UnregisterDataNotify.Func1.Case2
> -CaseCategory    IP6Config
> -CaseDescription {UnregisterDataNotify must succeed with valid parameters
> when handling multiple datatype.}
> -
> -
> #################################################################
> ###############
> -Include IP6Config/Include/Ip6Config.inc.tcl
> -
> -
> -#
> -# Begin log ...
> -#
> -BeginLog
> -
> -#
> -# BeginScope
> -#
> -BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -
> -#
> -# Parameter Definition
> -# R_ represents "Remote EFI Side Parameter"
> -# L_ represents "Local ENTS Side Parameter"
> -#
> -UINTN                            R_Status
> -UINTN                            R_Context
> -UINTN                            R_DoneEvent
> -UINTN                            R_Ip6ConfigDataSize
> -UINT32                           R_Ip6ConfigDataType
> -EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> -EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> -UINT32                           R_Ip6ConfigPolicy
> -EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS    R_Ip6ConfigDadTransmits
> -
> -#
> -# Check Point: Create Event and register it with data type [Policy] and
> [DadXmits]
> -#
> -SetVar R_Context 0
> -BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1, &@R_Context,\
> -                &@R_DoneEvent, &@R_Status"
> -GetAck
> -set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid                      \
> -                "BS.CreateEvent."                                      \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -#
> -# Check Point: Unregister the event on Datatype [Policy]
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002    \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> Datatype - Policy."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -#
> -# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the
> event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> -SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 $L_Context1
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> -GetAck
> -GetVar R_Status
> -if { $R_Status == $EFI_SUCCESS } {
> -  Stall 5
> -  GetVar R_Context
> -  if { $R_Context == $L_Context2 } {
> -    set assert pass
> -  } else {
> -    set assert fail
> -  }
> -  RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003
> \
> -               "Ip6Config.UnregisterDataNotify - Event should not be signaled for
> DataType - Policy."
> -} else {
> -  set assert fail
> -
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set manual policy."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -#
> -# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether
> the event is signaled.
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> -SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> -
> -GetVar R_Context
> -set L_Context1 $R_Context
> -set L_Context2 [expr { $L_Context1 + 1 }]
> -
> -Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> -GetAck
> -GetVar R_Status
> -
> -if { $R_Status == $EFI_SUCCESS } {
> -  set assert pass
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -} elseif { $R_Status == $EFI_NOT_READY } {
> -  set i 0
> -  set L_TimeOut 30
> -  while { 1 > 0 } {
> -       GetVar R_Context
> -	if { $R_Context == $L_Context2 } {
> -		break
> -	} elseif { $i == $L_TimeOut } {
> -		set assert fail
> -		RecordAssertion $assert $GenericAssertionGuid         \
> -                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> -                      "TIMEOUT value is $L_TimeOut (sec), "
> -
> -		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> -		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -		GetAck
> -		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -		GetAck
> -		EndScope
> _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -		EndLog
> -		return
> -	}
> -	incr i
> -	Stall 1
> -  }
> -} else {
> -  set assert fail
> -  RecordAssertion $assert $GenericAssertionGuid                   \
> -               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> -               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> -
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -  GetAck
> -  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -  GetAck
> -  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -  EndLog
> -  return
> -}
> -
> -GetVar R_Context
> -if { $R_Context == $L_Context2 } {
> -  set assert pass
> -} else {
> -  set assert fail
> -}
> -RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004
> \
> -               "Ip6Config.RegisterDataNotify - Event should be signaled for DataType
> - DadXmits."
> -
> -#
> -# Clean up
> -#
> -SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> -Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> -GetAck
> -set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> -RecordAssertion $assert $GenericAssertionGuid     \
> -                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> -				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> -
> -BS->CloseEvent {@R_DoneEvent,&@R_Status}
> -GetAck
> -
> -EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> -
> +#
> +#  Copyright 2006 - 2010 Unified EFI, Inc.<BR>
> +#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD
> License
> +#  which accompanies this distribution.  The full text of the license may be
> found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +################################################################
> ################
> +CaseLevel         FUNCTION
> +CaseAttribute     AUTO
> +CaseVerboseLevel  DEFAULT
> +set reportfile    report.csv
> +
> +#
> +# test case Name, category, description, GUID...
> +#
> +CaseGuid        C206AA15-2F53-4860-BD78-453C4EA463B6
> +CaseName        UnregisterDataNotify.Func1.Case2
> +CaseCategory    IP6Config
> +CaseDescription {UnregisterDataNotify must succeed with valid parameters
> when handling multiple datatype.}
> +
> +################################################################
> ################
> +Include IP6Config/Include/Ip6Config.inc.tcl
> +
> +
> +#
> +# Begin log ...
> +#
> +BeginLog
> +
> +#
> +# BeginScope
> +#
> +BeginScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +
> +#
> +# Parameter Definition
> +# R_ represents "Remote EFI Side Parameter"
> +# L_ represents "Local ENTS Side Parameter"
> +#
> +UINTN                            R_Status
> +UINTN                            R_Context
> +UINTN                            R_DoneEvent
> +UINTN                            R_Ip6ConfigDataSize
> +UINT32                           R_Ip6ConfigDataType
> +EFI_IP6_CONFIG_INTERFACE_INFO    R_Ip6ConfigInterfaceInfo
> +EFI_IP6_CONFIG_INTERFACE_ID      R_Ip6ConfigInterfaceId
> +UINT32                           R_Ip6ConfigPolicy
> +EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS
> R_Ip6ConfigDadTransmits
> +
> +#
> +# Check Point: Create Event and register it with data type [Policy] and
> [DadXmits]
> +#
> +SetVar R_Context 0
> +BS->CreateEvent "$EVT_NOTIFY_SIGNAL, $EFI_TPL_NOTIFY, 1,
> &@R_Context,\
> +                &@R_DoneEvent, &@R_Status"
> +GetAck
> +set assert    [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid                      \
> +                "BS.CreateEvent."                                      \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +Ip6Config->RegisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.RegisterDataNotify - Register notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +#
> +# Check Point: Unregister the event on Datatype [Policy]
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert
> $Ip6ConfigUnregisterDataNotifyFunc1AssertionGuid002    \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> Datatype - Policy."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +#
> +# Check Point: Call Ip6Cofnig->SetData to set [Policy] and check whether the
> event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +SetVar R_Ip6ConfigDataSize   [Sizeof UINT32]
> +SetVar R_Ip6ConfigPolicy     $IP6CP(Manual)
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 $L_Context1
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigPolicy,&@R_S
> tatus"
> +GetAck
> +GetVar R_Status
> +if { $R_Status == $EFI_SUCCESS } {
> +  Stall 5
> +  GetVar R_Context
> +  if { $R_Context == $L_Context2 } {
> +    set assert pass
> +  } else {
> +    set assert fail
> +  }
> +  RecordAssertion $assert
> $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid003                   \
> +               "Ip6Config.UnregisterDataNotify - Event should not be signaled for
> DataType - Policy."
> +} else {
> +  set assert fail
> +
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set manual policy."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +#
> +# Check Point: Call Ip6Config->SetData to set [DadXmits] and check whether
> the event is signaled.
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +SetVar R_Ip6ConfigDataSize   [Sizeof
> EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS]
> +SetVar R_Ip6ConfigDadTransmits.DupAddrDetectTransmits    3
> +
> +GetVar R_Context
> +set L_Context1 $R_Context
> +set L_Context2 [expr { $L_Context1 + 1 }]
> +
> +Ip6Config->SetData
> "@R_Ip6ConfigDataType,@R_Ip6ConfigDataSize,&@R_Ip6ConfigDadTransmits,
> &@R_Status"
> +GetAck
> +GetVar R_Status
> +
> +if { $R_Status == $EFI_SUCCESS } {
> +  set assert pass
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +                "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +                "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +} elseif { $R_Status == $EFI_NOT_READY } {
> +  set i 0
> +  set L_TimeOut 30
> +  while { 1 > 0 } {
> +       GetVar R_Context
> +	if { $R_Context == $L_Context2 } {
> +		break
> +	} elseif { $i == $L_TimeOut } {
> +		set assert fail
> +		RecordAssertion $assert $GenericAssertionGuid         \
> +                      "SetData failed.(event hasn't been signaled before TIMEOUT)."      \
> +                      "TIMEOUT value is $L_TimeOut (sec), "
> +
> +		SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		SetVar R_Ip6ConfigDataType
> $IP6CDT(DupAddrDetectTransmits)
> +		Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +		GetAck
> +		BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +		GetAck
> +		EndScope
> _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +		EndLog
> +		return
> +	}
> +	incr i
> +	Stall 1
> +  }
> +} else {
> +  set assert fail
> +  RecordAssertion $assert $GenericAssertionGuid                   \
> +               "Ip6Config.SetData - Call SetData to set DadXmits."            \
> +               "ReturnStatus - $R_Status, ExpectedStatus - $EFI_SUCCESS"
> +
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(Policy)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +  Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +  GetAck
> +  BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +  GetAck
> +  EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +  EndLog
> +  return
> +}
> +
> +GetVar R_Context
> +if { $R_Context == $L_Context2 } {
> +  set assert pass
> +} else {
> +  set assert fail
> +}
> +RecordAssertion $assert $Ip6ConfigRegisterDataNotifyFunc1AssertionGuid004
> \
> +               "Ip6Config.RegisterDataNotify - Event should be signaled for DataType
> - DadXmits."
> +
> +#
> +# Clean up
> +#
> +SetVar R_Ip6ConfigDataType   $IP6CDT(DupAddrDetectTransmits)
> +Ip6Config->UnregisterDataNotify
> "@R_Ip6ConfigDataType,@R_DoneEvent,&@R_Status"
> +GetAck
> +set assert [VerifyReturnStatus R_Status $EFI_SUCCESS]
> +RecordAssertion $assert $GenericAssertionGuid     \
> +                "Ip6Config.UnregisterDataNotify - Unregister notification event for
> configuration."    \
> +				"ReturnStatus - $R_Status, ExpectedStatus -
> $EFI_SUCCESS"
> +
> +BS->CloseEvent {@R_DoneEvent,&@R_Status}
> +GetAck
> +
> +EndScope _IP6CONFIG_UNREGISTERDATANOTIFY_FUNC1_CASE2
> +
>  EndLog
> \ No newline at end of file
> --
> 2.9.0.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-10-13  1:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-12  8:20 [edk2-test][Patch] uefi-sct/EMS:Add the checkpoint for SetData Eric Jin
2018-10-12  8:57 ` Supreeth Venkatesh
2018-10-12 17:01   ` Jin, Eric
2018-10-13  1:55 ` Wu, Jiaxin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox