Installation Notes for END GE Driver ------------------------------------- Version : 1.2b4 Release date : 2010-11-26 1. Getting Started --------------- 1.1. Boot vxWorks and load the ccGeEndxxx.a lib with 'ld < ccGeEndxxx'. Where xxx=X86 for X86 HCC xxx=18x for SVME/DMV-181/182/183 HCC xxx=Mv5100 for Motorola MVME-5100 HCC 1.2. The driver is started with the muxDevLoad and muxDevStart commands. The syntax is as follows: muxDevStart ( muxDevLoad ( unit, geLoad, "", 0, 0 )) where: unit must be 0 for first adaptor and 1 for second adaptor.(Only one adapter is supported per Host Carrier Card) This is only necessary if the driver was not include in the configNet.h file. Type 'muxShow' to see if the driver was installed. 1.3. Type 'ipAttach ( 0, "ccge" ) to attach the driver to TCP/IP. Verify that the ccge0 device exists by typing 'ifShow'. 1.4. Set the IP address using ifAddrSet. 1.5. Confirm the GE connection using ping. An example is of configuring and testing the GE software driver is shown below : NOTE: This example assumes there is already another NIC on the local LAN which has been set up with an IP address of 10.0.0.1 . -> muxDevStart ( muxDevLoad ( 0 , geLoad,"",0,0 )) value = 0 = 0x0 -> ifShow lo (unit number 0): Flags: (0x69) UP LOOPBACK ARP RUNNING Internet address: 127.0.0.1 Netmask 0xff000000 Subnetmask 0xff000000 Metric is 0 Maximum Transfer Unit size is 32758 0 packets received; 0 packets sent 0 input errors; 0 output errors 0 collisions ccge (unit number 0): Flags: (0x63) UP BROADCAST ARP RUNNING Netmask 0xffffffff Subnetmask 0xffffffff Ethernet address is 00:00:5a:45:f0:46 Metric is 0 Maximum Transfer Unit size is 1560 18 packets received; 0 packets sent 0 input errors; 0 output errors 0 collisions value = 18 = 0x12 -> ipAttach 0, "ccge0" value = 0 = 0x0 -> ifAddrSet "ccge0","10.0.0.4" value = 0 = 0x0 -> ping "10.0.0.1" PING 10.0.0.1: 56 data bytes 64 bytes from 10.0.0.1: icmp_seq=1. time=0. ms 64 bytes from 10.0.0.1: icmp_seq=2. time=0. ms 64 bytes from 10.0.0.1: icmp_seq=3. time=0. ms 64 bytes from 10.0.0.1: icmp_seq=4. time=0. ms 64 bytes from 10.0.0.1: icmp_seq=5. time=0. ms ccgeStats can be used to get some statistics from the driver. 1.6 Using the supplied TCP/UDP Blaster test software The TCP/UDP Blaster application transmits packets of data from one host to another as fast as possible using BSD sockets. Two versions of the Blaster application is provided, vxBlaster (for general TCP/UDP throughput testing) and vxMCBlaster (for testing the driver's multicast functionality) The application consists of two components. The server component (“Blastee”) is initiated on one of the hosts, then the client component (“Blaster”) is initiated on the other. The Blastee, which receives data from the Blaster, reports the amount of data received at regular intervals (nominally every one second). It also reports the number of packets received against the number of packets lost. The application has the following parameters which are configured from the command line : server_ip_address: IP address of the server host multicast_ip_address: shared multicast IP address port: TCP or UDP port number dotcp: 0 used for UDP test; 1 used for TCP test size: size of the data packet in bytes buffer_length: size of the TCP or UDP buffer length in bytes delay: delay between data packets or bursts in milliseconds; 0 used for no delay burst: number of packets sent every delay milliseconds; only required if delay > 0; default value is 1 id: 0 can be used for testing. 1.6.1 vxBlaster usage in VxWorks Note: in this example the client host (Blaster) ip address is "10.0.0.1" and the server host (Blastee) ip address is "10.0.0.2" Load the Blaster application on each host as follows : ld < vxBlaster_x86_55.o (x86 PC hosts) ld < vxBlaster_ppc_55.o (CWV-183, DMV-182 and DMV-181 hosts) ld < vxBlaster_5100_55.o (MVME-5100 hosts) The command line parameters are : blaster (server_ip_address, port, dotcp, size, buffer_length, delay, burst) blastee (port, dotcp, size, buffer_length, id) Start Blastee on the server host as follows : sp blastee, 7000, 0, 1000, 32000, 0 (for UDP test) sp blastee, 7000, 1, 1000, 32000, 0 (for TCP test) Start Blaster on the client host as follows : sp blaster, “10.0.0.2", 7000, 0, 1000, 32000, 0 (for UDP test) sp blaster, “10.0.0.2", 7000, 1, 1000, 32000, 0 (for TCP test) The Blaster and Blastee can be terminated using the following commands : blasterStop = 1 blasteeStop = 1 1.6.2 vxMCBlaster usage in VxWorks Note: in this example the client host (mcBlaster) ip address is "10.0.0.1" and the server host (mcBlastee) ip address is "10.0.0.2" Load the multicast Blaster application on each host as follows : ld < vxMCBlaster_x86_55.o (x86 PC hosts) ld < vxMCBlaster_ppc_55.o (CWV-183, DMV-182 and DMV-181 hosts) ld < vxMCBlaster_5100_55.o (MVME-5100 hosts) The command line parameters are : mcBlaster (interface_ip_address, multicast_ip_address, port, size, buffer_length, delay, burst) mcBlastee (interface_ip_address, multicast_ip_address, port, size, buffer_length) Start Blastee on the server host as follows : sp mcBlastee, "10.0.0.2", "224.1.0.1", 7777, 1000, 16000 Start Blaster on the client host as follows : sp mcBlaster, “10.0.0.1", "224.1.0.1", 7777, 1000, 16000, 1000 The Blaster and Blastee can be terminated using the following commands : blasterStop = 1 blasteeStop = 1 2. To build into kernel -------------------- See vxWorks documentation to build driver into kernel. Please use the ccGeEndxxx.a Lib file for this. Where xxx=X86 for X86 HCC xxx=18x for SVME/DMV-181/182/183 HCC xxx=Mv5100 for Motorola MVME-5100 HCC xxx=Vm6250 for Kontron VM6250 HCC 2.1 Copy ccGeEndxxx.a to your BSP library directory (eg /tornado/target/config/svme179/lib). 2.2 Edit the Makefile in the BSP directory (eg /tornado/target/config/mvme). Find the line MACH_EXTRA = and replace with MACH_EXTRA = ./lib/ccGeEndxxx.a 2.3 Add the following code fragment to config.h (before "#define DEFAULT_BOOT_LINE"): /*Added by CCII for GE driver*/ #define INCLUDE_CCGE_END /* CCII GE END DRIVER */ /* CCII Modification */ #ifdef INCLUDE_CCGE_END #ifndef INCLUDE_PCI #define INCLUDE_PCI #endif #ifdef INCLUDE_BSD #undef INCLUDE_BSD #endif #ifndef INCLUDE_END #define INCLUDE_END #endif #endif /*End CCII Modification */ 2.4 In config.h, change the DEFAULT_BOOT_LINE to use the CCII GE driver. 2.5 Add the following to configNet.h (Before the start of the endDevTbl[] declaration.) IMPORT END_OBJ * geLoad (char *initString); (Add the following segment to the endDevTbl[] , before the default last entry.) #ifdef INCLUDE_CCGE_END { 0, geLoad, "", NULL, NULL, FALSE}, #endif /* INCLUDE_CCGE_END */ 2.6 Rebuild all vxWorks images. 3. Add support for large UDP packets --------------------------------- In order to transmit large UDP packets, the VxWorks "Network Stack Memory Pool Configuration" has to be changed to add larger data clusters. The procedure for doing this differs between VxWorks 5.5 and VxWorks 6.x . 3.1 Procedure for VxWorks 5.5 (if building target images using Tornado): This configuration change can't be performed from the Tornado Project GUI itself. The file {tornado}/target/config/comps/src/net/usrNetLib.c needs to be changed as in the following example: ======== /* Added these lines to add larger Network Data Pool clusters to the VxWorks image */ #undef NUM_CL_BLKS #define NUM_CL_BLKS (NUM_64 + NUM_128 + NUM_256 + NUM_512 + NUM_1024 + NUM_2048 + NUM_4096 + NUM_8192 + NUM_16384 + NUM_32768 + NUM_65536) #undef NUM_64 #define NUM_64 100 #undef NUM_128 #define NUM_128 100 #undef NUM_256 #define NUM_256 40 #undef NUM_512 #define NUM_512 40 #undef NUM_1024 #define NUM_1024 25 #undef NUM_2048 #define NUM_2048 25 #define NUM_4096 10 #define NUM_8192 10 #define NUM_16384 10 #define NUM_32768 10 #define NUM_65536 10 #undef NUM_NET_MBLKS #define NUM_NET_MBLKS (2* NUM_CL_BLKS) CL_DESC clDescTbl [] = { /* clusterSize num memArea memSize ----------- ---- ------- ------- */ {64, NUM_64, NULL, 0}, {128, NUM_128, NULL, 0}, {256, NUM_256, NULL, 0}, {512, NUM_512, NULL, 0}, {1024, NUM_1024, NULL, 0}, {2048, NUM_2048, NULL, 0}, {4096, NUM_4096, NULL, 0}, {8192, NUM_8192, NULL, 0}, {16384, NUM_16384, NULL, 0}, {32768, NUM_32768, NULL, 0}, {65536, NUM_65536, NULL, 0} }; ======= Above we've added 10 clusters each of 4096, 8192, 16384, 32768 and 65536 bytes. Depending on the availability of memory resources, the number of clusters can be adjusted. A new VxWorks target image has to be built for these changes to take effect. 3.2 Procedure for VxWorks 5.5 (if building target images using the command line): If you are using the command line to build your VxWorks target images, the relevant file to edit will be {tornado}/target/src/config/usrNetwork.c (not usrNetLib.c). The basic procedure and changes are the same as in the previous example. A new VxWorks target image has to be built for these changes to take effect. 3.3 Procedure for VxWorks 6.x (if building target images using the Workbench IDE): The Network Stack Memory Configuration can be reconfigured in the Workbench IDE for your VxWorks 6.x target images. Under the Project Navigator tab, double click on Kernel Configuration for the current VxWorks image project. In the Component configuration window, expand and select the "Network Components > Network Core Components > Network Stack Memory Pool Configuration" branch and change the relevant Property Values to include additional (larger than 2048 bytes) clusters. A new VxWorks target image has to be built for these changes to take effect.