[RFC,5/5] mk/windows: add virtio-net PMD

Message ID 20200228060727.192491-6-dmitry.kozliuk@gmail.com (mailing list archive)
State Not Applicable, archived
Delegated to: Thomas Monjalon
Headers
Series virtio-net support for Windows draft |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK

Commit Message

Dmitry Kozlyuk Feb. 28, 2020, 6:07 a.m. UTC
  Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
---
 drivers/net/virtio/virtio_ethdev.c            |   4 +
 kernel/windows/netuio/netuio.inf              |   6 +
 lib/librte_eal/windows/eal/eal.c              |   4 +
 mk/exec-env/windows/dpdk.sln                  | 754 +++++++++---------
 mk/exec-env/windows/l2fwd/l2fwd.vcxproj       | 242 +++---
 mk/exec-env/windows/l3fwd/l3fwd.vcxproj       | 292 +++----
 .../librte_pmd_i40e.vcxproj.filters           | 198 +++++
 .../librte_pmd_net_virtio.vcxproj             | 129 +++
 8 files changed, 989 insertions(+), 640 deletions(-)
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
 create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj
  

Comments

William Tu Aug. 14, 2021, 3:55 p.m. UTC | #1
Hi Dmitry,

I'm looking at this patch and have some questions.

On Thu, Feb 27, 2020 at 10:08 PM Dmitry Kozlyuk
<dmitry.kozliuk@gmail.com> wrote:
>
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
>  drivers/net/virtio/virtio_ethdev.c            |   4 +
>  kernel/windows/netuio/netuio.inf              |   6 +
>  lib/librte_eal/windows/eal/eal.c              |   4 +

Why do we need these change below?
I thought to add a new Windows driver support, we only need to
compile the drivers/net/xxx, and add the device ID to netuio.inf,
at the dpdk-kmod repo?

>  mk/exec-env/windows/dpdk.sln                  | 754 +++++++++---------
>  mk/exec-env/windows/l2fwd/l2fwd.vcxproj       | 242 +++---
>  mk/exec-env/windows/l3fwd/l3fwd.vcxproj       | 292 +++----
>  .../librte_pmd_i40e.vcxproj.filters           | 198 +++++
>  .../librte_pmd_net_virtio.vcxproj             | 129 +++
>  8 files changed, 989 insertions(+), 640 deletions(-)
>  create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
>  create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj

Thanks
William
  
Dmitry Kozlyuk Aug. 14, 2021, 5 p.m. UTC | #2
2021-08-14 08:55 (UTC-0700), William Tu:
> Hi Dmitry,
> 
> I'm looking at this patch and have some questions.
> 
> On Thu, Feb 27, 2020 at 10:08 PM Dmitry Kozlyuk
> <dmitry.kozliuk@gmail.com> wrote:
> >
> > Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> > ---
> >  drivers/net/virtio/virtio_ethdev.c            |   4 +
> >  kernel/windows/netuio/netuio.inf              |   6 +
> >  lib/librte_eal/windows/eal/eal.c              |   4 +  
> 
> Why do we need these change below?

1. At the time of the patch there was no dpdk-kmods repo.

2. The patch is for dpdk-draft-windows repo,
   which was using Vistual Studio projects instead of meson.

> I thought to add a new Windows driver support, we only need to
> compile the drivers/net/xxx, and add the device ID to netuio.inf,
> at the dpdk-kmod repo?

Yes.
Particularly for virtio it would also be required to support reading PCI
config space in bus/pci/windows (netuio already provides the support).

> 
> >  mk/exec-env/windows/dpdk.sln                  | 754 +++++++++---------
> >  mk/exec-env/windows/l2fwd/l2fwd.vcxproj       | 242 +++---
> >  mk/exec-env/windows/l3fwd/l3fwd.vcxproj       | 292 +++----
> >  .../librte_pmd_i40e.vcxproj.filters           | 198 +++++
> >  .../librte_pmd_net_virtio.vcxproj             | 129 +++
> >  8 files changed, 989 insertions(+), 640 deletions(-)
> >  create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
> >  create mode 100644 mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj  
> 
> Thanks
> William
  
William Tu Aug. 15, 2021, 2:28 p.m. UTC | #3
On Sat, Aug 14, 2021 at 10:01 AM Dmitry Kozlyuk
<dmitry.kozliuk@gmail.com> wrote:
>
> 2021-08-14 08:55 (UTC-0700), William Tu:
> > Hi Dmitry,
> >
> > I'm looking at this patch and have some questions.
> >
> > On Thu, Feb 27, 2020 at 10:08 PM Dmitry Kozlyuk
> > <dmitry.kozliuk@gmail.com> wrote:
> > >
> > > Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> > > ---
> > >  drivers/net/virtio/virtio_ethdev.c            |   4 +
> > >  kernel/windows/netuio/netuio.inf              |   6 +
> > >  lib/librte_eal/windows/eal/eal.c              |   4 +
> >
> > Why do we need these change below?
>
> 1. At the time of the patch there was no dpdk-kmods repo.
>
> 2. The patch is for dpdk-draft-windows repo,
>    which was using Vistual Studio projects instead of meson.
>
> > I thought to add a new Windows driver support, we only need to
> > compile the drivers/net/xxx, and add the device ID to netuio.inf,
> > at the dpdk-kmod repo?
>
> Yes.
> Particularly for virtio it would also be required to support reading PCI
> config space in bus/pci/windows (netuio already provides the support).
>
Now I understand, thanks. William
  

Patch

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 614357da7..aa951e351 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1786,6 +1786,7 @@  static struct rte_pci_driver rte_virtio_pmd = {
 	.remove = eth_virtio_pci_remove,
 };
 
+#ifndef _WIN64
 RTE_INIT(rte_virtio_pmd_init)
 {
 	if (rte_eal_iopl_init() != 0) {
@@ -1795,6 +1796,9 @@  RTE_INIT(rte_virtio_pmd_init)
 
 	rte_pci_register(&rte_virtio_pmd);
 }
+#endif
+
+RTE_PMD_REGISTER_PCI(net_virtio, rte_virtio_pmd);
 
 static bool
 rx_offload_enabled(struct virtio_hw *hw)
diff --git a/kernel/windows/netuio/netuio.inf b/kernel/windows/netuio/netuio.inf
index e244bed3a..89d7c183c 100644
--- a/kernel/windows/netuio/netuio.inf
+++ b/kernel/windows/netuio/netuio.inf
@@ -56,6 +56,7 @@  HKR,,Icon,,-5
 [Manufacturer]
 %Intel%=Standard,NT$ARCH$
 %Broadcom%=Broadcom,NT$ARCH$
+%virtio%=virtio,NT$ARCH$
 
 [Standard.NT$ARCH$]
 %F1583.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_1583
@@ -67,6 +68,9 @@  HKR,,Icon,,-5
 [Broadcom.NT$ARCH$]
 %F16D7.netuio.Description%=netuio_Device, PCI\VEN_14E4&DEV_16D7
 
+[virtio.NT$ARCH$]
+%virtio.netuio.Description%=netuio_Device, PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01
+
 [netuio_Device.NT]
 CopyFiles=Drivers_Dir
 
@@ -126,6 +130,7 @@  KmdfLibraryVersion = $KMDFVERSION$
 SPSVCINST_ASSOCSERVICE= 0x00000002
 Intel = "Intel"
 Broadcom = "Broadcom Corporation"
+virtio = "virtio"
 ClassName = "Intel(R) DPDK netUIO Driver"
 DiskName = "DPDK netUIO Installation Disk"
 F1583.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Converged Network Adapter XL710-Q2"
@@ -134,5 +139,6 @@  F158B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XX
 F37D0.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection X722"
 F153B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection I217-V"
 F16D7.netuio.Description = "DPDK netUIO for Broadcom P225p NetXtreme-E Dual-port 10Gb/25Gb Ethernet PCIe Adapter"
+virtio.netuio.Description = "DPDK netUIO for virtio-net (modern)"
 netuio.DeviceDesc = "netuio Device"
 netuio.SVCDESC = "netuio Service"
diff --git a/lib/librte_eal/windows/eal/eal.c b/lib/librte_eal/windows/eal/eal.c
index 9c3e52e1f..0a35d46ef 100644
--- a/lib/librte_eal/windows/eal/eal.c
+++ b/lib/librte_eal/windows/eal/eal.c
@@ -80,11 +80,13 @@  extern void init_rte_lpm6_tailq(void);
 
 /* these functions are created by the RTE_PMD_REGISTER_PCI macro */
 extern void pciinitfn_net_i40e(void);
+extern void pciinitfn_net_virtio(void);
 
 /* these are more constructor-like function, that we'll need to call at the start */
 extern void rte_timer_init(void);
 extern void rte_log_init(void);
 extern void i40e_init_log(void);
+extern void virtio_init_log(void);
 
 /* Return a pointer to the configuration structure */
 struct rte_config *
@@ -475,6 +477,7 @@  eal_register_and_init_pmd()
 {
 	/* these functions are created by the RTE_PMD_REGISTER_PCI macro */
 	pciinitfn_net_i40e();  /* init the Intel 40GbE PMD */
+	pciinitfn_net_virtio();  /* init the virtio-net PMD */
 }
 
 /* Launch threads, called at application init(). */
@@ -516,6 +519,7 @@  rte_eal_init(int argc, char **argv)
 	rte_eal_log_init(NULL, 0);
 	rte_log_init();
 	i40e_init_log();
+	virtio_init_log();
 
 	eal_log_level_parse(argc, argv);
 
diff --git a/mk/exec-env/windows/dpdk.sln b/mk/exec-env/windows/dpdk.sln
index ed9197861..3abea0c41 100644
--- a/mk/exec-env/windows/dpdk.sln
+++ b/mk/exec-env/windows/dpdk.sln
@@ -1,373 +1,381 @@ 
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2010
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_mempool", "librte_mempool\librte_mempool.vcxproj", "{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}"
-	ProjectSection(ProjectDependencies) = postProject
-		{60499A5F-031F-41E1-86DE-425A27AE9680} = {60499A5F-031F-41E1-86DE-425A27AE9680}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_ring", "librte_ring\librte_ring.vcxproj", "{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_hash", "librte_hash\librte_hash.vcxproj", "{32FDBB89-3F26-45BB-972A-BED470AD166B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_distributor", "librte_distributor\librte_distributor.vcxproj", "{B2906C80-2E62-4ADE-9295-E4F98BE946B4}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_ethdev", "librte_ethdev\librte_ethdev.vcxproj", "{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_eal", "librte_eal\librte_eal.vcxproj", "{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}"
-	ProjectSection(ProjectDependencies) = postProject
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7} = {EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE} = {16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2} = {C6145F57-70FE-485D-BF16-F0C88632B6E2}
-		{32FDBB89-3F26-45BB-972A-BED470AD166B} = {32FDBB89-3F26-45BB-972A-BED470AD166B}
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A} = {7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8} = {0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_mbuf", "librte_mbuf\librte_mbuf.vcxproj", "{C6145F57-70FE-485D-BF16-F0C88632B6E2}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "l2fwd", "l2fwd\l2fwd.vcxproj", "{E92C8771-D35F-4636-BE19-C6C197B1573C}"
-	ProjectSection(ProjectDependencies) = postProject
-		{88279B01-E662-494D-B805-83BAFDE4A246} = {88279B01-E662-494D-B805-83BAFDE4A246}
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3} = {07671615-33E8-4B1D-8E1D-BE009D3448D3}
-		{F74A831C-CD22-4D19-BE6F-A318D0376EFA} = {F74A831C-CD22-4D19-BE6F-A318D0376EFA}
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7} = {EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}
-		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7} = {7380DC42-DE9A-4BA3-B153-FC0156DA20B7}
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE} = {16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2} = {C6145F57-70FE-485D-BF16-F0C88632B6E2}
-		{1307B35A-728B-4250-88FE-5CBFC3B2F847} = {1307B35A-728B-4250-88FE-5CBFC3B2F847}
-		{60499A5F-031F-41E1-86DE-425A27AE9680} = {60499A5F-031F-41E1-86DE-425A27AE9680}
-		{B2906C80-2E62-4ADE-9295-E4F98BE946B4} = {B2906C80-2E62-4ADE-9295-E4F98BE946B4}
-		{32FDBB89-3F26-45BB-972A-BED470AD166B} = {32FDBB89-3F26-45BB-972A-BED470AD166B}
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A} = {7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8} = {0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_pmd_i40e", "librte_pmd_i40e\librte_pmd_i40e.vcxproj", "{88279B01-E662-494D-B805-83BAFDE4A246}"
-	ProjectSection(ProjectDependencies) = postProject
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A} = {7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_lpm", "librte_lpm\librte_lpm.vcxproj", "{1307B35A-728B-4250-88FE-5CBFC3B2F847}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "l3fwd", "l3fwd\l3fwd.vcxproj", "{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}"
-	ProjectSection(ProjectDependencies) = postProject
-		{88279B01-E662-494D-B805-83BAFDE4A246} = {88279B01-E662-494D-B805-83BAFDE4A246}
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3} = {07671615-33E8-4B1D-8E1D-BE009D3448D3}
-		{F74A831C-CD22-4D19-BE6F-A318D0376EFA} = {F74A831C-CD22-4D19-BE6F-A318D0376EFA}
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7} = {EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}
-		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7} = {7380DC42-DE9A-4BA3-B153-FC0156DA20B7}
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE} = {16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2} = {C6145F57-70FE-485D-BF16-F0C88632B6E2}
-		{1307B35A-728B-4250-88FE-5CBFC3B2F847} = {1307B35A-728B-4250-88FE-5CBFC3B2F847}
-		{60499A5F-031F-41E1-86DE-425A27AE9680} = {60499A5F-031F-41E1-86DE-425A27AE9680}
-		{B2906C80-2E62-4ADE-9295-E4F98BE946B4} = {B2906C80-2E62-4ADE-9295-E4F98BE946B4}
-		{32FDBB89-3F26-45BB-972A-BED470AD166B} = {32FDBB89-3F26-45BB-972A-BED470AD166B}
-		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27} = {BDCB60AC-C588-4EF8-9797-CF6D42C54A27}
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A} = {7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8} = {0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_cmdline", "librte_cmdline\librte_cmdline.vcxproj", "{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_kvargs", "librte_kvargs\librte_kvargs.vcxproj", "{F74A831C-CD22-4D19-BE6F-A318D0376EFA}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_mempool_ring", "librte_mempool_ring\librte_mempool_ring.vcxproj", "{60499A5F-031F-41E1-86DE-425A27AE9680}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_bus_pci", "librte_bus_pci\librte_bus_pci.vcxproj", "{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}"
-	ProjectSection(ProjectDependencies) = postProject
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3} = {07671615-33E8-4B1D-8E1D-BE009D3448D3}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_pci", "librte_pci\librte_pci.vcxproj", "{07671615-33E8-4B1D-8E1D-BE009D3448D3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_timer", "librte_timer\librte_timer.vcxproj", "{B66DCE2E-0E2A-48A7-853B-DF1D90400935}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_cryptodev", "librte_cryptodev\librte_cryptodev.vcxproj", "{90990494-5D98-4230-B7C8-E486E534BFE3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_bitratestats", "librte_bitratestats\librte_bitratestats.vcxproj", "{D211C8A6-5EEB-412C-817D-231983B100E0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_metrics", "librte_metrics\librte_metrics.vcxproj", "{4630B413-F62D-41FC-B149-117E5A3294DA}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_gro", "librte_gro\librte_gro.vcxproj", "{BA3884E9-D3B3-4486-9C1E-20962538F72B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_gso", "librte_gso\librte_gso.vcxproj", "{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_reorder", "librte_reorder\librte_reorder.vcxproj", "{9696E989-C867-436D-B619-12BA1BBEA4E0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_sched", "librte_sched\librte_sched.vcxproj", "{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_net", "librte_net\librte_net.vcxproj", "{6CD555F0-108B-4B17-9E6B-668270B383FB}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_acl", "librte_acl\librte_acl.vcxproj", "{6353E0FE-F213-4639-B74F-2C1E8F369DC3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_table", "librte_table\librte_table.vcxproj", "{6D9EA859-41AD-4465-B386-5D84A6DF53B6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_port", "librte_port\librte_port.vcxproj", "{D70E097F-07B6-4841-94AF-570BE1671F0C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_pipeline", "librte_pipeline\librte_pipeline.vcxproj", "{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_cfgfile", "librte_cfgfile\librte_cfgfile.vcxproj", "{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_efd", "librte_efd\librte_efd.vcxproj", "{0505DE80-97CC-4B69-BCA1-8AAD5365C070}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_member", "librte_member\librte_member.vcxproj", "{92F2835C-2094-473E-9FEF-E03D51993211}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_eventdev", "librte_eventdev\librte_eventdev.vcxproj", "{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_security", "librte_security\librte_security.vcxproj", "{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_ipfrag", "librte_ipfrag\librte_ipfrag.vcxproj", "{C804DFF0-7A44-44FA-8E7E-87F80A30B833}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_latencystats", "librte_latencystats\librte_latencystats.vcxproj", "{D312B4B8-B775-4209-BDB8-21B7D3D70269}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_flowclassify", "librte_flowclassify\librte_flowclassify.vcxproj", "{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_meter", "librte_meter\librte_meter.vcxproj", "{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|x64 = Debug|x64
-		Debug|x86 = Debug|x86
-		Release|x64 = Release|x64
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Debug|x64.ActiveCfg = Debug|x64
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Debug|x64.Build.0 = Debug|x64
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Debug|x86.ActiveCfg = Debug|x64
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Release|x64.ActiveCfg = Release|x64
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Release|x64.Build.0 = Release|x64
-		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Release|x86.ActiveCfg = Release|x64
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Debug|x64.ActiveCfg = Debug|x64
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Debug|x64.Build.0 = Debug|x64
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Debug|x86.ActiveCfg = Debug|x64
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Release|x64.ActiveCfg = Release|x64
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Release|x64.Build.0 = Release|x64
-		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Release|x86.ActiveCfg = Release|x64
-		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Debug|x64.ActiveCfg = Debug|x64
-		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Debug|x64.Build.0 = Debug|x64
-		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Debug|x86.ActiveCfg = Debug|x64
-		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Release|x64.ActiveCfg = Release|x64
-		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Release|x64.Build.0 = Release|x64
-		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Release|x86.ActiveCfg = Release|x64
-		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Debug|x64.ActiveCfg = Debug|x64
-		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Debug|x64.Build.0 = Debug|x64
-		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Debug|x86.ActiveCfg = Debug|x64
-		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Release|x64.ActiveCfg = Release|x64
-		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Release|x64.Build.0 = Release|x64
-		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Release|x86.ActiveCfg = Release|x64
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Debug|x64.ActiveCfg = Debug|x64
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Debug|x64.Build.0 = Debug|x64
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Debug|x86.ActiveCfg = Debug|x64
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Release|x64.ActiveCfg = Release|x64
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Release|x64.Build.0 = Release|x64
-		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Release|x86.ActiveCfg = Release|x64
-		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Debug|x64.ActiveCfg = Debug|x64
-		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Debug|x64.Build.0 = Debug|x64
-		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Debug|x86.ActiveCfg = Debug|x64
-		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Release|x64.ActiveCfg = Release|x64
-		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Release|x64.Build.0 = Release|x64
-		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Release|x86.ActiveCfg = Release|x64
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Debug|x64.ActiveCfg = Debug|x64
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Debug|x64.Build.0 = Debug|x64
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Debug|x86.ActiveCfg = Debug|x64
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Release|x64.ActiveCfg = Release|x64
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Release|x64.Build.0 = Release|x64
-		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Release|x86.ActiveCfg = Release|x64
-		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Debug|x64.ActiveCfg = Debug|x64
-		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Debug|x64.Build.0 = Debug|x64
-		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Debug|x86.ActiveCfg = Debug|x64
-		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Release|x64.ActiveCfg = Release|x64
-		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Release|x64.Build.0 = Release|x64
-		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Release|x86.ActiveCfg = Release|x64
-		{88279B01-E662-494D-B805-83BAFDE4A246}.Debug|x64.ActiveCfg = Debug|x64
-		{88279B01-E662-494D-B805-83BAFDE4A246}.Debug|x64.Build.0 = Debug|x64
-		{88279B01-E662-494D-B805-83BAFDE4A246}.Debug|x86.ActiveCfg = Debug|x64
-		{88279B01-E662-494D-B805-83BAFDE4A246}.Release|x64.ActiveCfg = Release|x64
-		{88279B01-E662-494D-B805-83BAFDE4A246}.Release|x64.Build.0 = Release|x64
-		{88279B01-E662-494D-B805-83BAFDE4A246}.Release|x86.ActiveCfg = Release|x64
-		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Debug|x64.ActiveCfg = Debug|x64
-		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Debug|x64.Build.0 = Debug|x64
-		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Debug|x86.ActiveCfg = Debug|x64
-		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Release|x64.ActiveCfg = Release|x64
-		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Release|x64.Build.0 = Release|x64
-		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Release|x86.ActiveCfg = Release|x64
-		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Debug|x64.ActiveCfg = Debug|x64
-		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Debug|x64.Build.0 = Debug|x64
-		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Debug|x86.ActiveCfg = Debug|x64
-		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Release|x64.ActiveCfg = Release|x64
-		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Release|x64.Build.0 = Release|x64
-		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Release|x86.ActiveCfg = Release|x64
-		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Debug|x64.ActiveCfg = Debug|x64
-		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Debug|x64.Build.0 = Debug|x64
-		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Debug|x86.ActiveCfg = Debug|x64
-		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Release|x64.ActiveCfg = Release|x64
-		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Release|x64.Build.0 = Release|x64
-		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Release|x86.ActiveCfg = Release|x64
-		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Debug|x64.ActiveCfg = Debug|x64
-		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Debug|x64.Build.0 = Debug|x64
-		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Debug|x86.ActiveCfg = Debug|x64
-		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Release|x64.ActiveCfg = Release|x64
-		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Release|x64.Build.0 = Release|x64
-		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Release|x86.ActiveCfg = Release|x64
-		{60499A5F-031F-41E1-86DE-425A27AE9680}.Debug|x64.ActiveCfg = Debug|x64
-		{60499A5F-031F-41E1-86DE-425A27AE9680}.Debug|x64.Build.0 = Debug|x64
-		{60499A5F-031F-41E1-86DE-425A27AE9680}.Debug|x86.ActiveCfg = Debug|x64
-		{60499A5F-031F-41E1-86DE-425A27AE9680}.Release|x64.ActiveCfg = Release|x64
-		{60499A5F-031F-41E1-86DE-425A27AE9680}.Release|x64.Build.0 = Release|x64
-		{60499A5F-031F-41E1-86DE-425A27AE9680}.Release|x86.ActiveCfg = Release|x64
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Debug|x64.ActiveCfg = Debug|x64
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Debug|x64.Build.0 = Debug|x64
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Debug|x86.ActiveCfg = Debug|x64
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Release|x64.ActiveCfg = Release|x64
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Release|x64.Build.0 = Release|x64
-		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Release|x86.ActiveCfg = Release|x64
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Debug|x64.ActiveCfg = Debug|x64
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Debug|x64.Build.0 = Debug|x64
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Debug|x86.ActiveCfg = Debug|x64
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Release|x64.ActiveCfg = Release|x64
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Release|x64.Build.0 = Release|x64
-		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Release|x86.ActiveCfg = Release|x64
-		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Debug|x64.ActiveCfg = Debug|x64
-		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Debug|x64.Build.0 = Debug|x64
-		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Debug|x86.ActiveCfg = Debug|x64
-		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Release|x64.ActiveCfg = Release|x64
-		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Release|x64.Build.0 = Release|x64
-		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Release|x86.ActiveCfg = Release|x64
-		{90990494-5D98-4230-B7C8-E486E534BFE3}.Debug|x64.ActiveCfg = Debug|x64
-		{90990494-5D98-4230-B7C8-E486E534BFE3}.Debug|x64.Build.0 = Debug|x64
-		{90990494-5D98-4230-B7C8-E486E534BFE3}.Debug|x86.ActiveCfg = Debug|x64
-		{90990494-5D98-4230-B7C8-E486E534BFE3}.Release|x64.ActiveCfg = Release|x64
-		{90990494-5D98-4230-B7C8-E486E534BFE3}.Release|x64.Build.0 = Release|x64
-		{90990494-5D98-4230-B7C8-E486E534BFE3}.Release|x86.ActiveCfg = Release|x64
-		{D211C8A6-5EEB-412C-817D-231983B100E0}.Debug|x64.ActiveCfg = Debug|x64
-		{D211C8A6-5EEB-412C-817D-231983B100E0}.Debug|x64.Build.0 = Debug|x64
-		{D211C8A6-5EEB-412C-817D-231983B100E0}.Debug|x86.ActiveCfg = Debug|x64
-		{D211C8A6-5EEB-412C-817D-231983B100E0}.Release|x64.ActiveCfg = Release|x64
-		{D211C8A6-5EEB-412C-817D-231983B100E0}.Release|x64.Build.0 = Release|x64
-		{D211C8A6-5EEB-412C-817D-231983B100E0}.Release|x86.ActiveCfg = Release|x64
-		{4630B413-F62D-41FC-B149-117E5A3294DA}.Debug|x64.ActiveCfg = Debug|x64
-		{4630B413-F62D-41FC-B149-117E5A3294DA}.Debug|x64.Build.0 = Debug|x64
-		{4630B413-F62D-41FC-B149-117E5A3294DA}.Debug|x86.ActiveCfg = Debug|x64
-		{4630B413-F62D-41FC-B149-117E5A3294DA}.Release|x64.ActiveCfg = Release|x64
-		{4630B413-F62D-41FC-B149-117E5A3294DA}.Release|x64.Build.0 = Release|x64
-		{4630B413-F62D-41FC-B149-117E5A3294DA}.Release|x86.ActiveCfg = Release|x64
-		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Debug|x64.ActiveCfg = Debug|x64
-		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Debug|x64.Build.0 = Debug|x64
-		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Debug|x86.ActiveCfg = Debug|x64
-		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Release|x64.ActiveCfg = Release|x64
-		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Release|x64.Build.0 = Release|x64
-		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Release|x86.ActiveCfg = Release|x64
-		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Debug|x64.ActiveCfg = Debug|x64
-		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Debug|x64.Build.0 = Debug|x64
-		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Debug|x86.ActiveCfg = Debug|x64
-		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Release|x64.ActiveCfg = Release|x64
-		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Release|x64.Build.0 = Release|x64
-		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Release|x86.ActiveCfg = Release|x64
-		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Debug|x64.ActiveCfg = Debug|x64
-		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Debug|x64.Build.0 = Debug|x64
-		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Debug|x86.ActiveCfg = Debug|x64
-		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Release|x64.ActiveCfg = Release|x64
-		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Release|x64.Build.0 = Release|x64
-		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Release|x86.ActiveCfg = Release|x64
-		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Debug|x64.ActiveCfg = Debug|x64
-		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Debug|x64.Build.0 = Debug|x64
-		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Debug|x86.ActiveCfg = Debug|x64
-		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Release|x64.ActiveCfg = Release|x64
-		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Release|x64.Build.0 = Release|x64
-		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Release|x86.ActiveCfg = Release|x64
-		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Debug|x64.ActiveCfg = Debug|x64
-		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Debug|x64.Build.0 = Debug|x64
-		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Debug|x86.ActiveCfg = Debug|x64
-		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Release|x64.ActiveCfg = Release|x64
-		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Release|x64.Build.0 = Release|x64
-		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Release|x86.ActiveCfg = Release|x64
-		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Debug|x64.ActiveCfg = Debug|x64
-		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Debug|x64.Build.0 = Debug|x64
-		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Debug|x86.ActiveCfg = Debug|x64
-		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Release|x64.ActiveCfg = Release|x64
-		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Release|x64.Build.0 = Release|x64
-		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Release|x86.ActiveCfg = Release|x64
-		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Debug|x64.ActiveCfg = Debug|x64
-		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Debug|x64.Build.0 = Debug|x64
-		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Debug|x86.ActiveCfg = Debug|x64
-		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Release|x64.ActiveCfg = Release|x64
-		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Release|x64.Build.0 = Release|x64
-		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Release|x86.ActiveCfg = Release|x64
-		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Debug|x64.ActiveCfg = Debug|x64
-		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Debug|x64.Build.0 = Debug|x64
-		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Debug|x86.ActiveCfg = Debug|x64
-		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Release|x64.ActiveCfg = Release|x64
-		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Release|x64.Build.0 = Release|x64
-		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Release|x86.ActiveCfg = Release|x64
-		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Debug|x64.ActiveCfg = Debug|x64
-		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Debug|x64.Build.0 = Debug|x64
-		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Debug|x86.ActiveCfg = Debug|x64
-		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Release|x64.ActiveCfg = Release|x64
-		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Release|x64.Build.0 = Release|x64
-		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Release|x86.ActiveCfg = Release|x64
-		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Debug|x64.ActiveCfg = Debug|x64
-		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Debug|x64.Build.0 = Debug|x64
-		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Debug|x86.ActiveCfg = Debug|x64
-		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Release|x64.ActiveCfg = Release|x64
-		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Release|x64.Build.0 = Release|x64
-		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Release|x86.ActiveCfg = Release|x64
-		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Debug|x64.ActiveCfg = Debug|x64
-		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Debug|x64.Build.0 = Debug|x64
-		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Debug|x86.ActiveCfg = Debug|x64
-		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Release|x64.ActiveCfg = Release|x64
-		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Release|x64.Build.0 = Release|x64
-		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Release|x86.ActiveCfg = Release|x64
-		{92F2835C-2094-473E-9FEF-E03D51993211}.Debug|x64.ActiveCfg = Debug|x64
-		{92F2835C-2094-473E-9FEF-E03D51993211}.Debug|x64.Build.0 = Debug|x64
-		{92F2835C-2094-473E-9FEF-E03D51993211}.Debug|x86.ActiveCfg = Debug|x64
-		{92F2835C-2094-473E-9FEF-E03D51993211}.Release|x64.ActiveCfg = Release|x64
-		{92F2835C-2094-473E-9FEF-E03D51993211}.Release|x64.Build.0 = Release|x64
-		{92F2835C-2094-473E-9FEF-E03D51993211}.Release|x86.ActiveCfg = Release|x64
-		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Debug|x64.ActiveCfg = Debug|x64
-		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Debug|x64.Build.0 = Debug|x64
-		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Debug|x86.ActiveCfg = Debug|x64
-		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Release|x64.ActiveCfg = Release|x64
-		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Release|x64.Build.0 = Release|x64
-		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Release|x86.ActiveCfg = Release|x64
-		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Debug|x64.ActiveCfg = Debug|x64
-		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Debug|x64.Build.0 = Debug|x64
-		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Debug|x86.ActiveCfg = Debug|x64
-		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Release|x64.ActiveCfg = Release|x64
-		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Release|x64.Build.0 = Release|x64
-		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Release|x86.ActiveCfg = Release|x64
-		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Debug|x64.ActiveCfg = Debug|x64
-		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Debug|x64.Build.0 = Debug|x64
-		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Debug|x86.ActiveCfg = Debug|x64
-		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Release|x64.ActiveCfg = Release|x64
-		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Release|x64.Build.0 = Release|x64
-		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Release|x86.ActiveCfg = Release|x64
-		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Debug|x64.ActiveCfg = Debug|x64
-		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Debug|x64.Build.0 = Debug|x64
-		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Debug|x86.ActiveCfg = Debug|x64
-		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Release|x64.ActiveCfg = Release|x64
-		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Release|x64.Build.0 = Release|x64
-		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Release|x86.ActiveCfg = Release|x64
-		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Debug|x64.ActiveCfg = Debug|x64
-		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Debug|x64.Build.0 = Debug|x64
-		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Debug|x86.ActiveCfg = Debug|x64
-		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Release|x64.ActiveCfg = Release|x64
-		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Release|x64.Build.0 = Release|x64
-		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Release|x86.ActiveCfg = Release|x64
-		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Debug|x64.ActiveCfg = Debug|x64
-		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Debug|x64.Build.0 = Debug|x64
-		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Debug|x86.ActiveCfg = Debug|x64
-		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Release|x64.ActiveCfg = Release|x64
-		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Release|x64.Build.0 = Release|x64
-		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Release|x86.ActiveCfg = Release|x64
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {6CB597CF-1AD9-4A06-9C23-26B0EAEA3E63}
-	EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29728.190
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_mempool", "librte_mempool\librte_mempool.vcxproj", "{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}"
+	ProjectSection(ProjectDependencies) = postProject
+		{60499A5F-031F-41E1-86DE-425A27AE9680} = {60499A5F-031F-41E1-86DE-425A27AE9680}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_ring", "librte_ring\librte_ring.vcxproj", "{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_hash", "librte_hash\librte_hash.vcxproj", "{32FDBB89-3F26-45BB-972A-BED470AD166B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_distributor", "librte_distributor\librte_distributor.vcxproj", "{B2906C80-2E62-4ADE-9295-E4F98BE946B4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_ethdev", "librte_ethdev\librte_ethdev.vcxproj", "{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_eal", "librte_eal\librte_eal.vcxproj", "{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}"
+	ProjectSection(ProjectDependencies) = postProject
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7} = {EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE} = {16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2} = {C6145F57-70FE-485D-BF16-F0C88632B6E2}
+		{32FDBB89-3F26-45BB-972A-BED470AD166B} = {32FDBB89-3F26-45BB-972A-BED470AD166B}
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A} = {7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8} = {0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_mbuf", "librte_mbuf\librte_mbuf.vcxproj", "{C6145F57-70FE-485D-BF16-F0C88632B6E2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "l2fwd", "l2fwd\l2fwd.vcxproj", "{E92C8771-D35F-4636-BE19-C6C197B1573C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{88279B01-E662-494D-B805-83BAFDE4A246} = {88279B01-E662-494D-B805-83BAFDE4A246}
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3} = {07671615-33E8-4B1D-8E1D-BE009D3448D3}
+		{F74A831C-CD22-4D19-BE6F-A318D0376EFA} = {F74A831C-CD22-4D19-BE6F-A318D0376EFA}
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7} = {EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}
+		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7} = {7380DC42-DE9A-4BA3-B153-FC0156DA20B7}
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE} = {16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2} = {C6145F57-70FE-485D-BF16-F0C88632B6E2}
+		{1307B35A-728B-4250-88FE-5CBFC3B2F847} = {1307B35A-728B-4250-88FE-5CBFC3B2F847}
+		{60499A5F-031F-41E1-86DE-425A27AE9680} = {60499A5F-031F-41E1-86DE-425A27AE9680}
+		{B2906C80-2E62-4ADE-9295-E4F98BE946B4} = {B2906C80-2E62-4ADE-9295-E4F98BE946B4}
+		{32FDBB89-3F26-45BB-972A-BED470AD166B} = {32FDBB89-3F26-45BB-972A-BED470AD166B}
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A} = {7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8} = {0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_pmd_i40e", "librte_pmd_i40e\librte_pmd_i40e.vcxproj", "{88279B01-E662-494D-B805-83BAFDE4A246}"
+	ProjectSection(ProjectDependencies) = postProject
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A} = {7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_lpm", "librte_lpm\librte_lpm.vcxproj", "{1307B35A-728B-4250-88FE-5CBFC3B2F847}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "l3fwd", "l3fwd\l3fwd.vcxproj", "{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}"
+	ProjectSection(ProjectDependencies) = postProject
+		{88279B01-E662-494D-B805-83BAFDE4A246} = {88279B01-E662-494D-B805-83BAFDE4A246}
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3} = {07671615-33E8-4B1D-8E1D-BE009D3448D3}
+		{F74A831C-CD22-4D19-BE6F-A318D0376EFA} = {F74A831C-CD22-4D19-BE6F-A318D0376EFA}
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7} = {EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}
+		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7} = {7380DC42-DE9A-4BA3-B153-FC0156DA20B7}
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE} = {16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2} = {C6145F57-70FE-485D-BF16-F0C88632B6E2}
+		{1307B35A-728B-4250-88FE-5CBFC3B2F847} = {1307B35A-728B-4250-88FE-5CBFC3B2F847}
+		{60499A5F-031F-41E1-86DE-425A27AE9680} = {60499A5F-031F-41E1-86DE-425A27AE9680}
+		{B2906C80-2E62-4ADE-9295-E4F98BE946B4} = {B2906C80-2E62-4ADE-9295-E4F98BE946B4}
+		{32FDBB89-3F26-45BB-972A-BED470AD166B} = {32FDBB89-3F26-45BB-972A-BED470AD166B}
+		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27} = {BDCB60AC-C588-4EF8-9797-CF6D42C54A27}
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A} = {7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8} = {0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_cmdline", "librte_cmdline\librte_cmdline.vcxproj", "{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_kvargs", "librte_kvargs\librte_kvargs.vcxproj", "{F74A831C-CD22-4D19-BE6F-A318D0376EFA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_mempool_ring", "librte_mempool_ring\librte_mempool_ring.vcxproj", "{60499A5F-031F-41E1-86DE-425A27AE9680}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_bus_pci", "librte_bus_pci\librte_bus_pci.vcxproj", "{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}"
+	ProjectSection(ProjectDependencies) = postProject
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3} = {07671615-33E8-4B1D-8E1D-BE009D3448D3}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_pci", "librte_pci\librte_pci.vcxproj", "{07671615-33E8-4B1D-8E1D-BE009D3448D3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_timer", "librte_timer\librte_timer.vcxproj", "{B66DCE2E-0E2A-48A7-853B-DF1D90400935}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_cryptodev", "librte_cryptodev\librte_cryptodev.vcxproj", "{90990494-5D98-4230-B7C8-E486E534BFE3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_bitratestats", "librte_bitratestats\librte_bitratestats.vcxproj", "{D211C8A6-5EEB-412C-817D-231983B100E0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_metrics", "librte_metrics\librte_metrics.vcxproj", "{4630B413-F62D-41FC-B149-117E5A3294DA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_gro", "librte_gro\librte_gro.vcxproj", "{BA3884E9-D3B3-4486-9C1E-20962538F72B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_gso", "librte_gso\librte_gso.vcxproj", "{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_reorder", "librte_reorder\librte_reorder.vcxproj", "{9696E989-C867-436D-B619-12BA1BBEA4E0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_sched", "librte_sched\librte_sched.vcxproj", "{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_net", "librte_net\librte_net.vcxproj", "{6CD555F0-108B-4B17-9E6B-668270B383FB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_acl", "librte_acl\librte_acl.vcxproj", "{6353E0FE-F213-4639-B74F-2C1E8F369DC3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_table", "librte_table\librte_table.vcxproj", "{6D9EA859-41AD-4465-B386-5D84A6DF53B6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_port", "librte_port\librte_port.vcxproj", "{D70E097F-07B6-4841-94AF-570BE1671F0C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_pipeline", "librte_pipeline\librte_pipeline.vcxproj", "{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_cfgfile", "librte_cfgfile\librte_cfgfile.vcxproj", "{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_efd", "librte_efd\librte_efd.vcxproj", "{0505DE80-97CC-4B69-BCA1-8AAD5365C070}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_member", "librte_member\librte_member.vcxproj", "{92F2835C-2094-473E-9FEF-E03D51993211}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_eventdev", "librte_eventdev\librte_eventdev.vcxproj", "{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_security", "librte_security\librte_security.vcxproj", "{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_ipfrag", "librte_ipfrag\librte_ipfrag.vcxproj", "{C804DFF0-7A44-44FA-8E7E-87F80A30B833}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_latencystats", "librte_latencystats\librte_latencystats.vcxproj", "{D312B4B8-B775-4209-BDB8-21B7D3D70269}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_flowclassify", "librte_flowclassify\librte_flowclassify.vcxproj", "{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_meter", "librte_meter\librte_meter.vcxproj", "{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librte_pmd_net_virtio", "librte_pmd_net_virtio\librte_pmd_net_virtio.vcxproj", "{300385EB-75BD-4D40-953F-6131FD371982}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Debug|x64.ActiveCfg = Debug|x64
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Debug|x64.Build.0 = Debug|x64
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Debug|x86.ActiveCfg = Debug|x64
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Release|x64.ActiveCfg = Release|x64
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Release|x64.Build.0 = Release|x64
+		{EEDD0F26-9B2E-460E-9D8F-C3F3C0B999B7}.Release|x86.ActiveCfg = Release|x64
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Debug|x64.ActiveCfg = Debug|x64
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Debug|x64.Build.0 = Debug|x64
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Debug|x86.ActiveCfg = Debug|x64
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Release|x64.ActiveCfg = Release|x64
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Release|x64.Build.0 = Release|x64
+		{0746F0FF-F42C-4ABA-BDE1-F3FD65A81DB8}.Release|x86.ActiveCfg = Release|x64
+		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Debug|x64.ActiveCfg = Debug|x64
+		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Debug|x64.Build.0 = Debug|x64
+		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Debug|x86.ActiveCfg = Debug|x64
+		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Release|x64.ActiveCfg = Release|x64
+		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Release|x64.Build.0 = Release|x64
+		{32FDBB89-3F26-45BB-972A-BED470AD166B}.Release|x86.ActiveCfg = Release|x64
+		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Debug|x64.ActiveCfg = Debug|x64
+		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Debug|x64.Build.0 = Debug|x64
+		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Debug|x86.ActiveCfg = Debug|x64
+		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Release|x64.ActiveCfg = Release|x64
+		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Release|x64.Build.0 = Release|x64
+		{B2906C80-2E62-4ADE-9295-E4F98BE946B4}.Release|x86.ActiveCfg = Release|x64
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Debug|x64.ActiveCfg = Debug|x64
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Debug|x64.Build.0 = Debug|x64
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Debug|x86.ActiveCfg = Debug|x64
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Release|x64.ActiveCfg = Release|x64
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Release|x64.Build.0 = Release|x64
+		{7E0025BB-72B3-4906-B0DE-4B45A1E22B0A}.Release|x86.ActiveCfg = Release|x64
+		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Debug|x64.ActiveCfg = Debug|x64
+		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Debug|x64.Build.0 = Debug|x64
+		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Debug|x86.ActiveCfg = Debug|x64
+		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Release|x64.ActiveCfg = Release|x64
+		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Release|x64.Build.0 = Release|x64
+		{7380DC42-DE9A-4BA3-B153-FC0156DA20B7}.Release|x86.ActiveCfg = Release|x64
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Debug|x64.ActiveCfg = Debug|x64
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Debug|x64.Build.0 = Debug|x64
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Debug|x86.ActiveCfg = Debug|x64
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Release|x64.ActiveCfg = Release|x64
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Release|x64.Build.0 = Release|x64
+		{C6145F57-70FE-485D-BF16-F0C88632B6E2}.Release|x86.ActiveCfg = Release|x64
+		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Debug|x64.ActiveCfg = Debug|x64
+		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Debug|x64.Build.0 = Debug|x64
+		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Debug|x86.ActiveCfg = Debug|x64
+		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Release|x64.ActiveCfg = Release|x64
+		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Release|x64.Build.0 = Release|x64
+		{E92C8771-D35F-4636-BE19-C6C197B1573C}.Release|x86.ActiveCfg = Release|x64
+		{88279B01-E662-494D-B805-83BAFDE4A246}.Debug|x64.ActiveCfg = Debug|x64
+		{88279B01-E662-494D-B805-83BAFDE4A246}.Debug|x64.Build.0 = Debug|x64
+		{88279B01-E662-494D-B805-83BAFDE4A246}.Debug|x86.ActiveCfg = Debug|x64
+		{88279B01-E662-494D-B805-83BAFDE4A246}.Release|x64.ActiveCfg = Release|x64
+		{88279B01-E662-494D-B805-83BAFDE4A246}.Release|x64.Build.0 = Release|x64
+		{88279B01-E662-494D-B805-83BAFDE4A246}.Release|x86.ActiveCfg = Release|x64
+		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Debug|x64.ActiveCfg = Debug|x64
+		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Debug|x64.Build.0 = Debug|x64
+		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Debug|x86.ActiveCfg = Debug|x64
+		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Release|x64.ActiveCfg = Release|x64
+		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Release|x64.Build.0 = Release|x64
+		{1307B35A-728B-4250-88FE-5CBFC3B2F847}.Release|x86.ActiveCfg = Release|x64
+		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Debug|x64.ActiveCfg = Debug|x64
+		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Debug|x64.Build.0 = Debug|x64
+		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Debug|x86.ActiveCfg = Debug|x64
+		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Release|x64.ActiveCfg = Release|x64
+		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Release|x64.Build.0 = Release|x64
+		{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}.Release|x86.ActiveCfg = Release|x64
+		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Debug|x64.ActiveCfg = Debug|x64
+		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Debug|x64.Build.0 = Debug|x64
+		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Debug|x86.ActiveCfg = Debug|x64
+		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Release|x64.ActiveCfg = Release|x64
+		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Release|x64.Build.0 = Release|x64
+		{BDCB60AC-C588-4EF8-9797-CF6D42C54A27}.Release|x86.ActiveCfg = Release|x64
+		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Debug|x64.ActiveCfg = Debug|x64
+		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Debug|x64.Build.0 = Debug|x64
+		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Debug|x86.ActiveCfg = Debug|x64
+		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Release|x64.ActiveCfg = Release|x64
+		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Release|x64.Build.0 = Release|x64
+		{F74A831C-CD22-4D19-BE6F-A318D0376EFA}.Release|x86.ActiveCfg = Release|x64
+		{60499A5F-031F-41E1-86DE-425A27AE9680}.Debug|x64.ActiveCfg = Debug|x64
+		{60499A5F-031F-41E1-86DE-425A27AE9680}.Debug|x64.Build.0 = Debug|x64
+		{60499A5F-031F-41E1-86DE-425A27AE9680}.Debug|x86.ActiveCfg = Debug|x64
+		{60499A5F-031F-41E1-86DE-425A27AE9680}.Release|x64.ActiveCfg = Release|x64
+		{60499A5F-031F-41E1-86DE-425A27AE9680}.Release|x64.Build.0 = Release|x64
+		{60499A5F-031F-41E1-86DE-425A27AE9680}.Release|x86.ActiveCfg = Release|x64
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Debug|x64.ActiveCfg = Debug|x64
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Debug|x64.Build.0 = Debug|x64
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Debug|x86.ActiveCfg = Debug|x64
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Release|x64.ActiveCfg = Release|x64
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Release|x64.Build.0 = Release|x64
+		{16411548-CE6A-4D3F-9AA7-EE20A5D4B6FE}.Release|x86.ActiveCfg = Release|x64
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Debug|x64.ActiveCfg = Debug|x64
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Debug|x64.Build.0 = Debug|x64
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Debug|x86.ActiveCfg = Debug|x64
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Release|x64.ActiveCfg = Release|x64
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Release|x64.Build.0 = Release|x64
+		{07671615-33E8-4B1D-8E1D-BE009D3448D3}.Release|x86.ActiveCfg = Release|x64
+		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Debug|x64.ActiveCfg = Debug|x64
+		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Debug|x64.Build.0 = Debug|x64
+		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Debug|x86.ActiveCfg = Debug|x64
+		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Release|x64.ActiveCfg = Release|x64
+		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Release|x64.Build.0 = Release|x64
+		{B66DCE2E-0E2A-48A7-853B-DF1D90400935}.Release|x86.ActiveCfg = Release|x64
+		{90990494-5D98-4230-B7C8-E486E534BFE3}.Debug|x64.ActiveCfg = Debug|x64
+		{90990494-5D98-4230-B7C8-E486E534BFE3}.Debug|x64.Build.0 = Debug|x64
+		{90990494-5D98-4230-B7C8-E486E534BFE3}.Debug|x86.ActiveCfg = Debug|x64
+		{90990494-5D98-4230-B7C8-E486E534BFE3}.Release|x64.ActiveCfg = Release|x64
+		{90990494-5D98-4230-B7C8-E486E534BFE3}.Release|x64.Build.0 = Release|x64
+		{90990494-5D98-4230-B7C8-E486E534BFE3}.Release|x86.ActiveCfg = Release|x64
+		{D211C8A6-5EEB-412C-817D-231983B100E0}.Debug|x64.ActiveCfg = Debug|x64
+		{D211C8A6-5EEB-412C-817D-231983B100E0}.Debug|x64.Build.0 = Debug|x64
+		{D211C8A6-5EEB-412C-817D-231983B100E0}.Debug|x86.ActiveCfg = Debug|x64
+		{D211C8A6-5EEB-412C-817D-231983B100E0}.Release|x64.ActiveCfg = Release|x64
+		{D211C8A6-5EEB-412C-817D-231983B100E0}.Release|x64.Build.0 = Release|x64
+		{D211C8A6-5EEB-412C-817D-231983B100E0}.Release|x86.ActiveCfg = Release|x64
+		{4630B413-F62D-41FC-B149-117E5A3294DA}.Debug|x64.ActiveCfg = Debug|x64
+		{4630B413-F62D-41FC-B149-117E5A3294DA}.Debug|x64.Build.0 = Debug|x64
+		{4630B413-F62D-41FC-B149-117E5A3294DA}.Debug|x86.ActiveCfg = Debug|x64
+		{4630B413-F62D-41FC-B149-117E5A3294DA}.Release|x64.ActiveCfg = Release|x64
+		{4630B413-F62D-41FC-B149-117E5A3294DA}.Release|x64.Build.0 = Release|x64
+		{4630B413-F62D-41FC-B149-117E5A3294DA}.Release|x86.ActiveCfg = Release|x64
+		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Debug|x64.ActiveCfg = Debug|x64
+		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Debug|x64.Build.0 = Debug|x64
+		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Debug|x86.ActiveCfg = Debug|x64
+		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Release|x64.ActiveCfg = Release|x64
+		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Release|x64.Build.0 = Release|x64
+		{BA3884E9-D3B3-4486-9C1E-20962538F72B}.Release|x86.ActiveCfg = Release|x64
+		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Debug|x64.ActiveCfg = Debug|x64
+		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Debug|x64.Build.0 = Debug|x64
+		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Debug|x86.ActiveCfg = Debug|x64
+		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Release|x64.ActiveCfg = Release|x64
+		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Release|x64.Build.0 = Release|x64
+		{0A52C239-B43F-4A88-94EA-FD7A63C7DB28}.Release|x86.ActiveCfg = Release|x64
+		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Debug|x64.ActiveCfg = Debug|x64
+		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Debug|x64.Build.0 = Debug|x64
+		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Debug|x86.ActiveCfg = Debug|x64
+		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Release|x64.ActiveCfg = Release|x64
+		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Release|x64.Build.0 = Release|x64
+		{9696E989-C867-436D-B619-12BA1BBEA4E0}.Release|x86.ActiveCfg = Release|x64
+		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Debug|x64.ActiveCfg = Debug|x64
+		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Debug|x64.Build.0 = Debug|x64
+		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Debug|x86.ActiveCfg = Debug|x64
+		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Release|x64.ActiveCfg = Release|x64
+		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Release|x64.Build.0 = Release|x64
+		{6B238285-8FEC-425E-9F30-B3E2D9A0EA4B}.Release|x86.ActiveCfg = Release|x64
+		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Debug|x64.ActiveCfg = Debug|x64
+		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Debug|x64.Build.0 = Debug|x64
+		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Debug|x86.ActiveCfg = Debug|x64
+		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Release|x64.ActiveCfg = Release|x64
+		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Release|x64.Build.0 = Release|x64
+		{6CD555F0-108B-4B17-9E6B-668270B383FB}.Release|x86.ActiveCfg = Release|x64
+		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Debug|x64.ActiveCfg = Debug|x64
+		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Debug|x64.Build.0 = Debug|x64
+		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Debug|x86.ActiveCfg = Debug|x64
+		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Release|x64.ActiveCfg = Release|x64
+		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Release|x64.Build.0 = Release|x64
+		{6353E0FE-F213-4639-B74F-2C1E8F369DC3}.Release|x86.ActiveCfg = Release|x64
+		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Debug|x64.ActiveCfg = Debug|x64
+		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Debug|x64.Build.0 = Debug|x64
+		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Debug|x86.ActiveCfg = Debug|x64
+		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Release|x64.ActiveCfg = Release|x64
+		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Release|x64.Build.0 = Release|x64
+		{6D9EA859-41AD-4465-B386-5D84A6DF53B6}.Release|x86.ActiveCfg = Release|x64
+		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Debug|x64.ActiveCfg = Debug|x64
+		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Debug|x64.Build.0 = Debug|x64
+		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Debug|x86.ActiveCfg = Debug|x64
+		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Release|x64.ActiveCfg = Release|x64
+		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Release|x64.Build.0 = Release|x64
+		{D70E097F-07B6-4841-94AF-570BE1671F0C}.Release|x86.ActiveCfg = Release|x64
+		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Debug|x64.ActiveCfg = Debug|x64
+		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Debug|x64.Build.0 = Debug|x64
+		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Debug|x86.ActiveCfg = Debug|x64
+		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Release|x64.ActiveCfg = Release|x64
+		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Release|x64.Build.0 = Release|x64
+		{DE3F48D3-43F0-4412-8D38-E13677FD0FFC}.Release|x86.ActiveCfg = Release|x64
+		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Debug|x64.ActiveCfg = Debug|x64
+		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Debug|x64.Build.0 = Debug|x64
+		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Debug|x86.ActiveCfg = Debug|x64
+		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Release|x64.ActiveCfg = Release|x64
+		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Release|x64.Build.0 = Release|x64
+		{F19E8ED3-581B-41E5-9EC2-48F58F4BC9B8}.Release|x86.ActiveCfg = Release|x64
+		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Debug|x64.ActiveCfg = Debug|x64
+		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Debug|x64.Build.0 = Debug|x64
+		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Debug|x86.ActiveCfg = Debug|x64
+		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Release|x64.ActiveCfg = Release|x64
+		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Release|x64.Build.0 = Release|x64
+		{0505DE80-97CC-4B69-BCA1-8AAD5365C070}.Release|x86.ActiveCfg = Release|x64
+		{92F2835C-2094-473E-9FEF-E03D51993211}.Debug|x64.ActiveCfg = Debug|x64
+		{92F2835C-2094-473E-9FEF-E03D51993211}.Debug|x64.Build.0 = Debug|x64
+		{92F2835C-2094-473E-9FEF-E03D51993211}.Debug|x86.ActiveCfg = Debug|x64
+		{92F2835C-2094-473E-9FEF-E03D51993211}.Release|x64.ActiveCfg = Release|x64
+		{92F2835C-2094-473E-9FEF-E03D51993211}.Release|x64.Build.0 = Release|x64
+		{92F2835C-2094-473E-9FEF-E03D51993211}.Release|x86.ActiveCfg = Release|x64
+		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Debug|x64.ActiveCfg = Debug|x64
+		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Debug|x64.Build.0 = Debug|x64
+		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Debug|x86.ActiveCfg = Debug|x64
+		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Release|x64.ActiveCfg = Release|x64
+		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Release|x64.Build.0 = Release|x64
+		{0DFCAEB8-38D4-4AB4-895D-F6891D0B123C}.Release|x86.ActiveCfg = Release|x64
+		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Debug|x64.ActiveCfg = Debug|x64
+		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Debug|x64.Build.0 = Debug|x64
+		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Debug|x86.ActiveCfg = Debug|x64
+		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Release|x64.ActiveCfg = Release|x64
+		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Release|x64.Build.0 = Release|x64
+		{8BFAD01C-E51C-45AF-9C8A-8D13763185EC}.Release|x86.ActiveCfg = Release|x64
+		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Debug|x64.ActiveCfg = Debug|x64
+		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Debug|x64.Build.0 = Debug|x64
+		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Debug|x86.ActiveCfg = Debug|x64
+		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Release|x64.ActiveCfg = Release|x64
+		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Release|x64.Build.0 = Release|x64
+		{C804DFF0-7A44-44FA-8E7E-87F80A30B833}.Release|x86.ActiveCfg = Release|x64
+		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Debug|x64.ActiveCfg = Debug|x64
+		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Debug|x64.Build.0 = Debug|x64
+		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Debug|x86.ActiveCfg = Debug|x64
+		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Release|x64.ActiveCfg = Release|x64
+		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Release|x64.Build.0 = Release|x64
+		{D312B4B8-B775-4209-BDB8-21B7D3D70269}.Release|x86.ActiveCfg = Release|x64
+		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Debug|x64.ActiveCfg = Debug|x64
+		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Debug|x64.Build.0 = Debug|x64
+		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Debug|x86.ActiveCfg = Debug|x64
+		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Release|x64.ActiveCfg = Release|x64
+		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Release|x64.Build.0 = Release|x64
+		{D050187B-D1B5-43D5-9EEA-14A2B57C3E81}.Release|x86.ActiveCfg = Release|x64
+		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Debug|x64.ActiveCfg = Debug|x64
+		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Debug|x64.Build.0 = Debug|x64
+		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Debug|x86.ActiveCfg = Debug|x64
+		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Release|x64.ActiveCfg = Release|x64
+		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Release|x64.Build.0 = Release|x64
+		{81F6BD5A-DD07-4AC0-9999-9B2031CD400A}.Release|x86.ActiveCfg = Release|x64
+		{300385EB-75BD-4D40-953F-6131FD371982}.Debug|x64.ActiveCfg = Debug|x64
+		{300385EB-75BD-4D40-953F-6131FD371982}.Debug|x64.Build.0 = Debug|x64
+		{300385EB-75BD-4D40-953F-6131FD371982}.Debug|x86.ActiveCfg = Debug|x64
+		{300385EB-75BD-4D40-953F-6131FD371982}.Release|x64.ActiveCfg = Release|x64
+		{300385EB-75BD-4D40-953F-6131FD371982}.Release|x64.Build.0 = Release|x64
+		{300385EB-75BD-4D40-953F-6131FD371982}.Release|x86.ActiveCfg = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {6CB597CF-1AD9-4A06-9C23-26B0EAEA3E63}
+	EndGlobalSection
+EndGlobal
diff --git a/mk/exec-env/windows/l2fwd/l2fwd.vcxproj b/mk/exec-env/windows/l2fwd/l2fwd.vcxproj
index 899a08b53..19725154c 100644
--- a/mk/exec-env/windows/l2fwd/l2fwd.vcxproj
+++ b/mk/exec-env/windows/l2fwd/l2fwd.vcxproj
@@ -1,122 +1,122 @@ 
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{E92C8771-D35F-4636-BE19-C6C197B1573C}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>l2fwd</RootNamespace>
-    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>llvm</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
-    <SpectreMitigation>false</SpectreMitigation>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>llvm</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-    <SpectreMitigation>false</SpectreMitigation>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="Shared">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\DpdkRteLib.props" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\DpdkRteLib.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Label="LLVM" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LldLinkAdditionalOptions>
-    </LldLinkAdditionalOptions>
-    <UseLldLink>true</UseLldLink>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <SDLCheck>true</SDLCheck>
-      <StructMemberAlignment>1Byte</StructMemberAlignment>
-      <SupportJustMyCode>false</SupportJustMyCode>
-      <AdditionalOptions>
-      </AdditionalOptions>
-      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <ConformanceMode>true</ConformanceMode>
-      <UseFullPaths>false</UseFullPaths>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>false</GenerateDebugInformation>
-      <AdditionalDependencies>setupapi.lib;dbghelp.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_bus_pci\librte_bus_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pci\librte_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_eal\librte_eal.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ethdev\librte_ethdev.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool\librte_mempool.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool_ring\librte_mempool_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mbuf\librte_mbuf.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ring\librte_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_hash\librte_hash.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_distributor\librte_distributor.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_lpm\librte_lpm.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_kvargs\librte_kvargs.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_i40e\librte_pmd_i40e.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <TargetMachine>MachineX64</TargetMachine>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <SDLCheck>true</SDLCheck>
-      <StructMemberAlignment>1Byte</StructMemberAlignment>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <ConformanceMode>true</ConformanceMode>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions />
-      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>setupapi.lib;dbghelp.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_bus_pci\librte_bus_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pci\librte_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_eal\librte_eal.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ethdev\librte_ethdev.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool\librte_mempool.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool_ring\librte_mempool_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mbuf\librte_mbuf.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ring\librte_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_hash\librte_hash.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_distributor\librte_distributor.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_lpm\librte_lpm.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_kvargs\librte_kvargs.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_i40e\librte_pmd_i40e.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="stdafx.h" />
-    <ClInclude Include="targetver.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\..\examples\l2fwd\main.c" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{E92C8771-D35F-4636-BE19-C6C197B1573C}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>l2fwd</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>llvm</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <SpectreMitigation>false</SpectreMitigation>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>llvm</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+    <SpectreMitigation>false</SpectreMitigation>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DpdkRteLib.props" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DpdkRteLib.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Label="LLVM" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LldLinkAdditionalOptions>
+    </LldLinkAdditionalOptions>
+    <UseLldLink>true</UseLldLink>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <StructMemberAlignment>1Byte</StructMemberAlignment>
+      <SupportJustMyCode>false</SupportJustMyCode>
+      <AdditionalOptions>
+      </AdditionalOptions>
+      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <ConformanceMode>true</ConformanceMode>
+      <UseFullPaths>false</UseFullPaths>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <AdditionalDependencies>setupapi.lib;dbghelp.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_bus_pci\librte_bus_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pci\librte_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_eal\librte_eal.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ethdev\librte_ethdev.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool\librte_mempool.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool_ring\librte_mempool_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mbuf\librte_mbuf.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ring\librte_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_hash\librte_hash.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_distributor\librte_distributor.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_lpm\librte_lpm.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_kvargs\librte_kvargs.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_net\librte_net.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_net_virtio\librte_pmd_net_virtio.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_i40e\librte_pmd_i40e.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <StructMemberAlignment>1Byte</StructMemberAlignment>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions />
+      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>setupapi.lib;dbghelp.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_bus_pci\librte_bus_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pci\librte_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_eal\librte_eal.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ethdev\librte_ethdev.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool\librte_mempool.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool_ring\librte_mempool_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mbuf\librte_mbuf.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ring\librte_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_hash\librte_hash.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_distributor\librte_distributor.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_lpm\librte_lpm.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_kvargs\librte_kvargs.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_i40e\librte_pmd_i40e.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="stdafx.h" />
+    <ClInclude Include="targetver.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\examples\l2fwd\main.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/mk/exec-env/windows/l3fwd/l3fwd.vcxproj b/mk/exec-env/windows/l3fwd/l3fwd.vcxproj
index ef3e85e52..4b2bda66f 100644
--- a/mk/exec-env/windows/l3fwd/l3fwd.vcxproj
+++ b/mk/exec-env/windows/l3fwd/l3fwd.vcxproj
@@ -1,147 +1,147 @@ 
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>l3fwd</RootNamespace>
-    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>llvm</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
-    <SpectreMitigation>false</SpectreMitigation>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>llvm</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-    <SpectreMitigation>false</SpectreMitigation>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="Shared">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\DpdkRteLib.props" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\DpdkRteLib.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(RTE_SDK)\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</OutDir>
-    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
-    <LibraryPath>$(LibraryPath)</LibraryPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(RTE_SDK)\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</OutDir>
-    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Label="LLVM" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <UseLldLink>true</UseLldLink>
-  </PropertyGroup>
-  <PropertyGroup Label="LLVM" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <UseLldLink>true</UseLldLink>
-    <LldLinkAdditionalOptions>
-    </LldLinkAdditionalOptions>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>RTE_MACHINE_CPUFLAG_SSE2;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <SDLCheck>true</SDLCheck>
-      <StructMemberAlignment>1Byte</StructMemberAlignment>
-      <AdditionalOptions>
-      </AdditionalOptions>
-      <SupportJustMyCode>false</SupportJustMyCode>
-      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <EnableNeonCodegen>true</EnableNeonCodegen>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <Verbose>true</Verbose>
-      <CLanguageStandard>gnu99</CLanguageStandard>
-      <ConformanceMode>true</ConformanceMode>
-      <UseFullPaths>false</UseFullPaths>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>false</GenerateDebugInformation>
-      <AdditionalDependencies>setupapi.lib;dbghelp.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_bus_pci\librte_bus_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pci\librte_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_eal\librte_eal.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ethdev\librte_ethdev.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool\librte_mempool.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool_ring\librte_mempool_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mbuf\librte_mbuf.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ring\librte_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_hash\librte_hash.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_distributor\librte_distributor.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_lpm\librte_lpm.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_cmdline\librte_cmdline.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_kvargs\librte_kvargs.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_i40e\librte_pmd_i40e.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <TargetMachine>MachineX64</TargetMachine>
-      <AdditionalOptions>/VERBOSE %(AdditionalOptions)</AdditionalOptions>
-      <ShowProgress>LinkVerbose</ShowProgress>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>RTE_MACHINE_CPUFLAG_SSE2;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <SDLCheck>true</SDLCheck>
-      <StructMemberAlignment>1Byte</StructMemberAlignment>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <ConformanceMode>true</ConformanceMode>
-      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
-      <AdditionalOptions />
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>setupapi.lib;dbghelp.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_bus_pci\librte_bus_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pci\librte_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_eal\librte_eal.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ethdev\librte_ethdev.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool\librte_mempool.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool_ring\librte_mempool_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mbuf\librte_mbuf.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ring\librte_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_hash\librte_hash.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_distributor\librte_distributor.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_lpm\librte_lpm.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_cmdline\librte_cmdline.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_kvargs\librte_kvargs.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_i40e\librte_pmd_i40e.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_common.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em_hlm.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em_hlm_neon.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em_hlm_sse.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em_sequential.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_lpm.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_lpm_neon.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_lpm_sse.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_neon.h" />
-    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_sse.h" />
-    <ClInclude Include="stdafx.h" />
-    <ClInclude Include="targetver.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\..\examples\l3fwd\l3fwd_em.c" />
-    <ClCompile Include="..\..\..\..\examples\l3fwd\l3fwd_lpm.c" />
-    <ClCompile Include="..\..\..\..\examples\l3fwd\main.c" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{B9BB1F7A-40A3-4EC7-A888-8CAFE2C11D29}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>l3fwd</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>llvm</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <SpectreMitigation>false</SpectreMitigation>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>llvm</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+    <SpectreMitigation>false</SpectreMitigation>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DpdkRteLib.props" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DpdkRteLib.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(RTE_SDK)\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</OutDir>
+    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <LibraryPath>$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(RTE_SDK)\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</OutDir>
+    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Label="LLVM" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <UseLldLink>true</UseLldLink>
+  </PropertyGroup>
+  <PropertyGroup Label="LLVM" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <UseLldLink>true</UseLldLink>
+    <LldLinkAdditionalOptions>
+    </LldLinkAdditionalOptions>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>RTE_MACHINE_CPUFLAG_SSE2;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <StructMemberAlignment>1Byte</StructMemberAlignment>
+      <AdditionalOptions>
+      </AdditionalOptions>
+      <SupportJustMyCode>false</SupportJustMyCode>
+      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <EnableNeonCodegen>true</EnableNeonCodegen>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <Verbose>true</Verbose>
+      <CLanguageStandard>gnu99</CLanguageStandard>
+      <ConformanceMode>true</ConformanceMode>
+      <UseFullPaths>false</UseFullPaths>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <AdditionalDependencies>setupapi.lib;dbghelp.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_bus_pci\librte_bus_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pci\librte_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_eal\librte_eal.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ethdev\librte_ethdev.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool\librte_mempool.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool_ring\librte_mempool_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mbuf\librte_mbuf.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ring\librte_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_hash\librte_hash.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_distributor\librte_distributor.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_lpm\librte_lpm.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_net\librte_net.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_cmdline\librte_cmdline.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_kvargs\librte_kvargs.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_i40e\librte_pmd_i40e.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_net_virtio\librte_pmd_net_virtio.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <TargetMachine>MachineX64</TargetMachine>
+      <AdditionalOptions>/VERBOSE %(AdditionalOptions)</AdditionalOptions>
+      <ShowProgress>LinkVerbose</ShowProgress>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>RTE_MACHINE_CPUFLAG_SSE2;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <StructMemberAlignment>1Byte</StructMemberAlignment>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+      <AdditionalOptions />
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>setupapi.lib;dbghelp.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_bus_pci\librte_bus_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pci\librte_pci.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_eal\librte_eal.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ethdev\librte_ethdev.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool\librte_mempool.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mempool_ring\librte_mempool_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_mbuf\librte_mbuf.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_ring\librte_ring.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_hash\librte_hash.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_distributor\librte_distributor.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_lpm\librte_lpm.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_cmdline\librte_cmdline.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_kvargs\librte_kvargs.lib;$(RTE_SDK)\$(Platform)\$(Configuration)\librte_pmd_i40e\librte_pmd_i40e.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_common.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em_hlm.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em_hlm_neon.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em_hlm_sse.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_em_sequential.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_lpm.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_lpm_neon.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_lpm_sse.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_neon.h" />
+    <ClInclude Include="..\..\..\..\examples\l3fwd\l3fwd_sse.h" />
+    <ClInclude Include="stdafx.h" />
+    <ClInclude Include="targetver.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\examples\l3fwd\l3fwd_em.c" />
+    <ClCompile Include="..\..\..\..\examples\l3fwd\l3fwd_lpm.c" />
+    <ClCompile Include="..\..\..\..\examples\l3fwd\main.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters b/mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
new file mode 100644
index 000000000..930d7f2d4
--- /dev/null
+++ b/mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_i40e.vcxproj.filters
@@ -0,0 +1,198 @@ 
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+    <Filter Include="Header Files\windows override">
+      <UniqueIdentifier>{1deb2987-1a3d-4449-94d1-66950716e0db}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\base">
+      <UniqueIdentifier>{20a0182d-0b32-4ef5-b4bd-99308a0393d4}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_rxtx.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_ethdev.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\base\i40e_common.c">
+      <Filter>Source Files\base</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\base\i40e_adminq.c">
+      <Filter>Source Files\base</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\base\i40e_lan_hmc.c">
+      <Filter>Source Files\base</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\base\i40e_nvm.c">
+      <Filter>Source Files\base</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_pf.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\base\i40e_hmc.c">
+      <Filter>Source Files\base</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_fdir.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\base\i40e_diag.c">
+      <Filter>Source Files\base</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_flow.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_tm.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\rte_pmd_i40e.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\base\i40e_dcb.c">
+      <Filter>Source Files\base</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_rxtx_vec_sse.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_rxtx_vec_avx2.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\drivers\net\i40e\i40e_vf_representor.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\i40e_rxtx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\i40e_ethdev.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\i40e_logs.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_ether\rte_eth_ctrl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_adminq_cmd.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_osdep.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_register.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_type.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_prototype.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\i40e_pf.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_alloc.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_hmc.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_lan_hmc.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_status.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_adminq.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\windows\rte_override\rte_memcpy.h">
+      <Filter>Header Files\windows override</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\windows\rte_override\rte_spinlock.h">
+      <Filter>Header Files\windows override</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\windows\rte_override\rte_common.h">
+      <Filter>Header Files\windows override</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\windows\rte_override\rte_cycles.h">
+      <Filter>Header Files\windows override</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\windows\rte_override\rte_byteorder.h">
+      <Filter>Header Files\windows override</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\rte_log.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\rte_common.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\generic\rte_cycles.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\generic\rte_spinlock.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\generic\rte_byteorder.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\windows\rte_override\rte_pci.h">
+      <Filter>Header Files\windows override</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\rte_pci.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\rte_memzone.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\rte_malloc.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_ether\rte_ethdev.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_ether\rte_ether.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\rte_pci_dev_ids.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\lib\librte_eal\common\include\rte_dev.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_diag.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_devids.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\i40e_regs.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\rte_pmd_i40e.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\i40e_dcb.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\base\virtchnl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\drivers\net\i40e\i40e_rxtx_vec_common.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj b/mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj
new file mode 100644
index 000000000..e7cdd3b8f
--- /dev/null
+++ b/mk/exec-env/windows/librte_pmd_net_virtio/librte_pmd_net_virtio.vcxproj
@@ -0,0 +1,129 @@ 
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\drivers\net\virtio\virtio_ethdev.c" />
+    <ClCompile Include="..\..\..\..\drivers\net\virtio\virtio_pci.c" />
+    <ClCompile Include="..\..\..\..\drivers\net\virtio\virtio_rxtx.c" />
+    <ClCompile Include="..\..\..\..\drivers\net\virtio\virtio_rxtx_simple.c" />
+    <ClCompile Include="..\..\..\..\drivers\net\virtio\virtio_rxtx_simple_sse.c" />
+    <ClCompile Include="..\..\..\..\drivers\net\virtio\virtqueue.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\drivers\net\virtio\virtio_ethdev.h" />
+    <ClInclude Include="..\..\..\..\drivers\net\virtio\virtio_logs.h" />
+    <ClInclude Include="..\..\..\..\drivers\net\virtio\virtio_pci.h" />
+    <ClInclude Include="..\..\..\..\drivers\net\virtio\virtio_ring.h" />
+    <ClInclude Include="..\..\..\..\drivers\net\virtio\virtio_rxtx.h" />
+    <ClInclude Include="..\..\..\..\drivers\net\virtio\virtio_rxtx_simple.h" />
+    <ClInclude Include="..\..\..\..\drivers\net\virtio\virtqueue.h" />
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{300385EB-75BD-4D40-953F-6131FD371982}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>librte_pmd_i40e</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>llvm</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <SpectreMitigation>false</SpectreMitigation>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>llvm</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+    <SpectreMitigation>false</SpectreMitigation>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DpdkRteLib.props" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DpdkRteLib.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <OutDir>$(RTE_SDK)\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <IntDir>$(RTE_SDK)\mk\exec-env\windows\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
+    <OutDir>$(RTE_SDK)\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</OutDir>
+  </PropertyGroup>
+  <PropertyGroup Label="LLVM" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <UseLldLink>true</UseLldLink>
+  </PropertyGroup>
+  <PropertyGroup Label="LLVM" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClangClAdditionalOptions>
+    </ClangClAdditionalOptions>
+    <UseLldLink>true</UseLldLink>
+    <LldLinkAdditionalOptions>
+    </LldLinkAdditionalOptions>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions);PF_DRIVER</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <StructMemberAlignment>1Byte</StructMemberAlignment>
+      <AdditionalOptions>
+      </AdditionalOptions>
+      <SupportJustMyCode>false</SupportJustMyCode>
+      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <ConformanceMode>true</ConformanceMode>
+      <UseFullPaths>false</UseFullPaths>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions);PF_DRIVER</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <StructMemberAlignment>1Byte</StructMemberAlignment>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalOptions />
+      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file