From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from jaguar.aricent.com (jaguar.aricent.com [180.151.2.24]) by dpdk.org (Postfix) with ESMTP id 914212E8A for ; Mon, 10 Mar 2014 11:53:34 +0100 (CET) Received: from jaguar.aricent.com (localhost [127.0.0.1]) by postfix.imss71 (Postfix) with ESMTP id D6C0C36B93; Mon, 10 Mar 2014 16:24:42 +0530 (IST) Received: from GUREXHT01.ASIAN.AD.ARICENT.COM (gurexht01.asian.ad.aricent.com [10.203.171.136]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by jaguar.aricent.com (Postfix) with ESMTP id BFB5436B69; Mon, 10 Mar 2014 16:24:42 +0530 (IST) Received: from GUREXMB01.asian.ad.aricent.com ([10.203.171.132]) by GUREXHT01.ASIAN.AD.ARICENT.COM ([10.203.171.136]) with mapi; Mon, 10 Mar 2014 16:24:43 +0530 From: Prashant Upadhyaya To: Srinivasan J Date: Mon, 10 Mar 2014 16:24:41 +0530 Thread-Topic: [dpdk-dev] Which vmxnet3 pmd is to be used in dpdk 1.6.x? Thread-Index: Ac87AfiFXl5aO9osSRWi6XmMbwLWAABNAROgAAYzxyA= Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-TM-AS-MML: No Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] Which vmxnet3 pmd is to be used in dpdk 1.6.x? X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Mar 2014 10:53:35 -0000 Hi, Regarding performance with vmxnet3 driver, the programmer's guide says thus= -- " Currently, the driver provides basic support for using the device in an Int= el(r) DPDK application running on a guest OS. Optimization is needed on the backend, t= hat is, the VMware* ESXi vmkernel switch, to achieve optimal performance end-to-end. " Can someone advise what are the techniques of 'backend optimization on the = vmkernel switch' I ran some initial tests without any attempt for above optimization and the= data rates I am achieving with vmxnet3 are not very encouraging. Regards -Prashant -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Prashant Upadhyaya Sent: Monday, March 10, 2014 1:31 PM To: Srinivasan J Cc: dev@dpdk.org Subject: Re: [dpdk-dev] Which vmxnet3 pmd is to be used in dpdk 1.6.x? Hi Srini, Thanks, I could also make it work, thanks to your cue ! Now then, this multi-segment not being supported in vmxnet3 driver is a big= party-pooper for me. Unfortunately in my usecase, I do indeed make heavy u= se of multisegment buffers for sending out the data, so my usecase has fail= ed and I will have to fix that. Also, can you please adivse how much is the max data rates you have been ab= le to achieve with one vmxnet3 10G port. Thanks a lot for the advice once again. Regards -Prashant -----Original Message----- From: Srinivasan J [mailto:srinidpdk@gmail.com] Sent: Sunday, March 09, 2014 12:38 AM To: Prashant Upadhyaya Cc: David Marchand; dev@dpdk.org Subject: Re: [dpdk-dev] Which vmxnet3 pmd is to be used in dpdk 1.6.x? Prashant, I was also able to hit the issue your hitting using Esxi 5.1.0 evaluation and Fedora 20 X86_64 guest. I was able to fix the issue by= setting CONFIG_RTE_EAL_UNBIND_PORTS=3Dy option in defconfig_x86_64-default= -linuxapp-gcc configuration file. Issue seen =3D=3D=3D=3D=3D=3D=3D=3D EAL: PCI device 0000:03:00.0 on NUMA socket -1 EAL: probe driver: 15ad:7b0 rte_vmxnet3_pmd EAL: Device is blacklisted, not initializing EAL: PCI device 0000:0b:00.0 on NUMA socket -1 EAL: probe driver: 15ad:7b0 rte_vmxnet3_pmd Program received signal SIGSEGV, Segmentation fault. eth_vmxnet3_dev_init (eth_drv=3D, eth_dev=3D0x754480 ) at /root/source/dpdk-1.6.0r1/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c:218 218 ver =3D VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_VRRS); Missing separate debuginfos, use: debuginfo-install glibc-2.18-11.fc20.x86_= 64 (gdb) p hw $1 =3D (struct vmxnet3_hw *) 0x7fffd8fc1040 (gdb) p *hw $2 =3D {hw_addr0 =3D 0x0, hw_addr1 =3D 0x0, back =3D 0x0, device_id =3D 196= 8, vendor_id =3D 5549, subsystem_device_id =3D 0, subsystem_vendor_id =3D 0= , adapter_stopped =3D 0, perm_addr =3D "\000\000\000\000\000", num_tx_queue= s =3D 1 '\001', num_rx_queues =3D 1 '\001', bufs_per_pkt =3D 1 '\001', cur_= mtu =3D 0, tqd_start =3D 0x0, rqd_start =3D 0x0, shared =3D 0x0, sharedPA =3D 0, que= ueDescPA =3D 0, queue_desc_len =3D 0, rss_conf =3D 0x0, rss_confPA =3D 0, m= f_table =3D 0x0} (gdb) #define VMXNET3_PCI_BAR1_REG_ADDR(hw, reg) \ ((volatile uint32_t *)((char *)(hw)->hw_addr1 + (reg))) #define VMX= NET3_READ_BAR1_REG(hw, reg) \ vmxnet3_read_addr(VMXNET3_PCI_BAR1_REG_ADDR((hw), (reg))) lib/librt= e_pmd_vmxnet3/vmxnet3_ethdev.h Issue not seen after enabling CONFIG_RTE_EAL_UNBIND_PORTS=3Dy =3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D [root@localhost build]# ./l2fwd -c 0xf -b 0000:03:00.0 -n 1 -- -p 0x6 EAL: Detected lcore 0 as core 0 on socket 0 EAL: Detected lcore 1 as core 1 on socket 0 EAL: Detected lcore 2 as core 2 on socket 0 EAL: Detected lcore 3 as core 3 on socket 0 EAL: Skip lcore 4 (not detected) EAL: Skip lcore 5 (not detected) EAL: Skip lcore 6 (not detected) EAL: Skip lcore 7 (not detected) EAL: Skip lcore 8 (not detected) EAL: Skip lcore 9 (not detected) EAL: Skip lcore 10 (not detected) EAL: Skip lcore 11 (not detected) EAL: Skip lcore 12 (not detected) EAL: Skip lcore 13 (not detected) EAL: Skip lcore 14 (not detected) EAL: Skip lcore 15 (not detected) EAL: Skip lcore 16 (not detected) EAL: Skip lcore 17 (not detected) EAL: Skip lcore 18 (not detected) EAL: Skip lcore 19 (not detected) EAL: Skip lcore 20 (not detected) EAL: Skip lcore 21 (not detected) EAL: Skip lcore 22 (not detected) EAL: Skip lcore 23 (not detected) EAL: Skip lcore 24 (not detected) EAL: Skip lcore 25 (not detected) EAL: Skip lcore 26 (not detected) EAL: Skip lcore 27 (not detected) EAL: Skip lcore 28 (not detected) EAL: Skip lcore 29 (not detected) EAL: Skip lcore 30 (not detected) EAL: Skip lcore 31 (not detected) EAL: Skip lcore 32 (not detected) EAL: Skip lcore 33 (not detected) EAL: Skip lcore 34 (not detected) EAL: Skip lcore 35 (not detected) EAL: Skip lcore 36 (not detected) EAL: Skip lcore 37 (not detected) EAL: Skip lcore 38 (not detected) EAL: Skip lcore 39 (not detected) EAL: Skip lcore 40 (not detected) EAL: Skip lcore 41 (not detected) EAL: Skip lcore 42 (not detected) EAL: Skip lcore 43 (not detected) EAL: Skip lcore 44 (not detected) EAL: Skip lcore 45 (not detected) EAL: Skip lcore 46 (not detected) EAL: Skip lcore 47 (not detected) EAL: Skip lcore 48 (not detected) EAL: Skip lcore 49 (not detected) EAL: Skip lcore 50 (not detected) EAL: Skip lcore 51 (not detected) EAL: Skip lcore 52 (not detected) EAL: Skip lcore 53 (not detected) EAL: Skip lcore 54 (not detected) EAL: Skip lcore 55 (not detected) EAL: Skip lcore 56 (not detected) EAL: Skip lcore 57 (not detected) EAL: Skip lcore 58 (not detected) EAL: Skip lcore 59 (not detected) EAL: Skip lcore 60 (not detected) EAL: Skip lcore 61 (not detected) EAL: Skip lcore 62 (not detected) EAL: Skip lcore 63 (not detected) EAL: Setting up memory... EAL: Ask a virtual area of 0x200000 bytes EAL: Virtual area found at 0x7f3a76a00000 (size =3D 0x200000) EAL: Ask a virtual area of 0x7c00000 bytes EAL: Virtual area found at 0x7f3a6ec00000 (size =3D 0x7c00000) EAL: Ask a virtual area of 0x200000 bytes EAL: Virtual area found at 0x7f3a6e800000 (size =3D 0x200000) EAL: Requesting 64 pages of size 2MB from socket 0 EAL: TSC frequency is ~2200000 KHz EAL: Master core 0 is ready (tid=3D76cfe880) EAL: Core 3 is ready (tid=3D6cffc700) EAL: Core 1 is ready (tid=3D6dffe700) EAL: Core 2 is ready (tid=3D6d7fd700) EAL: PCI device 0000:03:00.0 on NUMA socket -1 EAL: probe driver: 15ad:7b0 rte_vmxnet3_pmd EAL: Device is blacklisted, not initializing EAL: PCI device 0000:0b:00.0 on NUMA socket -1 EAL: probe driver: 15ad:7b0 rte_vmxnet3_pmd EAL: PCI memory mapped at 0x7f3a76d10000 EAL: PCI memory mapped at 0x7f3a76d0f000 EAL: PCI memory mapped at 0x7f3a76d0d000 EAL: PCI device 0000:13:00.0 on NUMA socket -1 EAL: probe driver: 15ad:7b0 rte_vmxnet3_pmd EAL: PCI memory mapped at 0x7f3a76d0c000 EAL: PCI memory mapped at 0x7f3a76d0b000 EAL: PCI memory mapped at 0x7f3a76d09000 Notice: odd number of ports in portmask. Lcore 0: RX port 1 Skipping disabled port 0 Initializing port 1... done: Port 1, MAC address: 00:0C:29:F1:9D:A4 Checking link statusdone Port 1 Link Up - speed 10000 Mbps - full-duplex L2FWD: lcore 1 has nothing to do L2FWD: lcore 2 has nothing to do L2FWD: lcore 3 has nothing to do L2FWD: entering main loop on lcore 0 L2FWD: -- lcoreid=3D0 portid=3D1 Port statistics =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Statistics for port 1 ------------------------------ Packets sent: 0 Packets received: 0 Packets dropped: 0 Statistics for port 2 ------------------------------ Packets sent: 0 Packets received: 0 Packets dropped: 0 Aggregate statistics =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Total packets sent: 0 Total packets received: 0 Total packets dropped: 0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D On Fri, Mar 7, 2014 at 10:43 AM, Prashant Upadhyaya wrote: > Hi Srini, > > Yes, I am still stuck, I am using ESXi5.1 though and Fedora18 in Guest. > Please let me know what is the guest OS distro you are using in the VM. I= 'll try with that once. > > Regards > -Prashant > > > -----Original Message----- > From: Srinivasan J [mailto:srinidpdk@gmail.com] > Sent: Friday, March 07, 2014 9:08 AM > To: Prashant Upadhyaya > Cc: David Marchand; dev@dpdk.org > Subject: Re: [dpdk-dev] Which vmxnet3 pmd is to be used in dpdk 1.6.x? > > Prashant, > Are you still hitting a crash? Do you have hugetlbfs > enabled? if not try adding enabling hugetlbfs. I was able to get > vxnet3 up using the vmxnet3 pmd alone in DPDK 1.60r1. I did not use > the vmxnet3-usermap kernel driver. I am using Esxi 5.5 > > Eg: echo 1024 > /proc/sys/vm/nr_hugepages; mkdir /huge; mount -t > hugetlbfs nodev /huge; > > On Thu, Mar 6, 2014 at 12:48 PM, Prashant Upadhyaya wrote: >> And if it is any help, here is the startup log -- >> >> EAL: Detected lcore 0 as core 0 on socket 0 >> EAL: Detected lcore 1 as core 1 on socket 0 >> EAL: Detected lcore 2 as core 2 on socket 0 >> EAL: Detected lcore 3 as core 3 on socket 0 >> EAL: Detected lcore 4 as core 4 on socket 0 >> EAL: Detected lcore 5 as core 5 on socket 0 >> EAL: Detected lcore 6 as core 6 on socket 0 >> EAL: Detected lcore 7 as core 7 on socket 0 >> EAL: Skip lcore 8 (not detected) >> EAL: Skip lcore 9 (not detected) >> EAL: Skip lcore 10 (not detected) >> EAL: Skip lcore 11 (not detected) >> EAL: Skip lcore 12 (not detected) >> EAL: Skip lcore 13 (not detected) >> EAL: Skip lcore 14 (not detected) >> EAL: Skip lcore 15 (not detected) >> EAL: Skip lcore 16 (not detected) >> EAL: Skip lcore 17 (not detected) >> EAL: Skip lcore 18 (not detected) >> EAL: Skip lcore 19 (not detected) >> EAL: Skip lcore 20 (not detected) >> EAL: Skip lcore 21 (not detected) >> EAL: Skip lcore 22 (not detected) >> EAL: Skip lcore 23 (not detected) >> EAL: Skip lcore 24 (not detected) >> EAL: Skip lcore 25 (not detected) >> EAL: Skip lcore 26 (not detected) >> EAL: Skip lcore 27 (not detected) >> EAL: Skip lcore 28 (not detected) >> EAL: Skip lcore 29 (not detected) >> EAL: Skip lcore 30 (not detected) >> EAL: Skip lcore 31 (not detected) >> EAL: Skip lcore 32 (not detected) >> EAL: Skip lcore 33 (not detected) >> EAL: Skip lcore 34 (not detected) >> EAL: Skip lcore 35 (not detected) >> EAL: Skip lcore 36 (not detected) >> EAL: Skip lcore 37 (not detected) >> EAL: Skip lcore 38 (not detected) >> EAL: Skip lcore 39 (not detected) >> EAL: Skip lcore 40 (not detected) >> EAL: Skip lcore 41 (not detected) >> EAL: Skip lcore 42 (not detected) >> EAL: Skip lcore 43 (not detected) >> EAL: Skip lcore 44 (not detected) >> EAL: Skip lcore 45 (not detected) >> EAL: Skip lcore 46 (not detected) >> EAL: Skip lcore 47 (not detected) >> EAL: Skip lcore 48 (not detected) >> EAL: Skip lcore 49 (not detected) >> EAL: Skip lcore 50 (not detected) >> EAL: Skip lcore 51 (not detected) >> EAL: Skip lcore 52 (not detected) >> EAL: Skip lcore 53 (not detected) >> EAL: Skip lcore 54 (not detected) >> EAL: Skip lcore 55 (not detected) >> EAL: Skip lcore 56 (not detected) >> EAL: Skip lcore 57 (not detected) >> EAL: Skip lcore 58 (not detected) >> EAL: Skip lcore 59 (not detected) >> EAL: Skip lcore 60 (not detected) >> EAL: Skip lcore 61 (not detected) >> EAL: Skip lcore 62 (not detected) >> EAL: Skip lcore 63 (not detected) >> EAL: Setting up memory... >> EAL: Ask a virtual area of 0x80000000 bytes >> EAL: Virtual area found at 0x7f848ae00000 (size =3D 0x80000000) >> EAL: Requesting 1024 pages of size 2MB from socket 0 >> EAL: TSC frequency is ~2000000 KHz >> EAL: Master core 0 is ready (tid=3Db3f3f00) >> EAL: Core 1 is ready (tid=3D8a1f2700) >> EAL: Core 2 is ready (tid=3D899f1700) >> EAL: Core 3 is ready (tid=3D891f0700) >> EAL: Core 4 is ready (tid=3D889ef700) >> EAL: Core 5 is ready (tid=3D7bfff700) >> EAL: Core 6 is ready (tid=3D7b7fe700) >> EAL: Core 7 is ready (tid=3D7affd700) >> Pool initialized >> Global Variables initialized >> PMD: rte_vmxnet3_pmd_init(): >> >> EAL: PCI device 0000:0b:00.0 on NUMA socket -1 >> EAL: probe driver: 15ad:7b0 rte_vmxnet3_pmd >> PMD: eth_vmxnet3_dev_init(): >> >> Segmentation fault (core dumped) >> >> -----Original Message----- >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Prashant >> Upadhyaya >> Sent: Thursday, March 06, 2014 12:20 PM >> To: David Marchand >> Cc: dev@dpdk.org >> Subject: Re: [dpdk-dev] Which vmxnet3 pmd is to be used in dpdk 1.6.x? >> >> Hi, >> >> Some further update on the crash I am facing. >> I am using DPDK1.6.0r1 and take over the vmxnet3 with igb_uio and >> then start the application. (so no external ko or vmxnet usermap >> etc.) During the port initializations, the crash is happening in the >> following function - >> >> eth_vmxnet3_dev_init >> >> and the crash is happening at the following line - >> /* Check h/w version compatibility with driver. */ >> ver =3D VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_VRRS); >> >> Any hints regarding what could be wrong ? >> >> Regards >> -Prashant >> >> >> From: Prashant Upadhyaya >> Sent: Wednesday, March 05, 2014 9:01 PM >> To: 'David Marchand' >> Cc: Srinivasan J; dev@dpdk.org >> Subject: RE: [dpdk-dev] Which vmxnet3 pmd is to be used in dpdk 1.6.x? >> >> Hi David, >> >> The compilation error with debug flags on was that the functions -- vmxn= et3_txq_dump, vmxnet3_rxq_dump - are defined but not used. >> Not a serious error, I will try to get rid of the compiler flag which ge= nerates this. >> >> However, I must reiterate, I _did_ bind my vmxnet3 device with igb_uio (= and I did not use any .so, because I was intending to use the builtin vmxne= t3 driver of dpdk 1.6.0r1), the bind succeeded, but then when I started the= application, the dev init for vmxnet3 gave a core dump. >> Your patch and solution seems to be suggesting the reverse, i.e. when I = don't bind with igb_uio but try to use the native driver. So please do try = the above combination as well. >> >> Regards >> -Prashant >> >> >> From: David Marchand [mailto:david.marchand@6wind.com] >> Sent: Wednesday, March 05, 2014 8:41 PM >> To: Prashant Upadhyaya >> Cc: Srinivasan J; dev@dpdk.org >> Subject: Re: [dpdk-dev] Which vmxnet3 pmd is to be used in dpdk 1.6.x? >> >> Hello Prashant, >> >> On Wed, Mar 5, 2014 at 3:28 PM, Prashant Upadhyaya > wrote: >> Hi, >> >> I am also keen to know the answer to the question posted by Srini. >> The real question is -- is dpdk1.6.0r1 self-sufficient so that I don't n= eed any extensions etc., or do I still need something from outside like the= usermap kernel driver etc. >> >> Secondly, if I turn on all the debug options for the vmxnet3 pmd in the = config file, 1.6.0r1 compilation runs into a problem and reports a function= which is defined but not used. >> >> Can you send your build error ? (maybe in a separate thread ?) >> >> >> I am trying to bring up DPDK inside Fedora18 Guest on ESXi -- when I use= d DPDK1.6.0r1 (without debug options turned on for vmxnet3 pmd) the igb_uio= could take over the vmxnet3 NIC but I encountered a core dump in the dev i= nit function for the vmxnet3 driver -- anybody encountered a similar issue = ? >> >> I encountered these problems as well. >> >> - igb_uio module does not check if you disable vmxnet3-uio pmds, it will= always try to take over vmxnet3 devices. >> I have a patch waiting in my working dir to cleanly disable vmxnet3-uio = pmd. >> >> - If you don't bind vmxnet3 devices to uio, but forget to enable vmxnet3= -usermap pmd (by specifiying -d librte_pmd_vmxnet3.so), then internal vmxne= t3-uio pmd will try to initialise and crash. >> I did not look any deeper into this, the easiest way is to disable vmxne= t3-uio pmd + apply the patch I will send in a few minutes, as a first worka= round. >> >> >> Regards, >> -- >> David Marchand >> >> >> >> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> =3D >> =3D=3D=3D=3D=3D=3D=3D=3D=3D Please refer to >> http://www.aricent.com/legal/email_disclaimer.html >> for important disclosures regarding this electronic communication. >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> =3D >> =3D=3D=3D=3D=3D=3D=3D=3D=3D >> >> >> >> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> =3D >> =3D=3D=3D=3D=3D=3D=3D=3D=3D Please refer to >> http://www.aricent.com/legal/email_disclaimer.html >> for important disclosures regarding this electronic communication. >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> =3D >> =3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D Please refer to > http://www.aricent.com/legal/email_disclaimer.html > for important disclosures regarding this electronic communication. > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D Please refer to http://www.aricent.com/legal/email_disclaimer.html for important disclosures regarding this electronic communication. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D Please refer to http://www.aricent.com/legal/email_disclaimer.html for important disclosures regarding this electronic communication. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D