IPv6 ON HP E- SERIES WIRELESS NETWORKING DEVICES A Project Presented to the faculty of the Department of Electrical and Electronics Engineering California State University, Sacramento Submitted in partial satisfaction of the requirements for the degree of MASTER OF SCIENCE in Electrical and Electronics Engineering by Vaishnavi Venkataramanan SPRING 2013 © 2013 Vaishnavi Venkataramanan ALL RIGHTS RESERVED ii IPv6 ON HP E- SERIES WIRELESS NETWORKING DEVICES A Project by Vaishnavi Venkataramanan Approved by: __________________________________, Committee Chair Dr. Suresh Vadhva __________________________________, Second Reader Mehul Pandya ____________________________ Date iii Student: Vaishnavi Venkataramanan I certify that this student has met the requirements for format contained in the University format manual, and that this project is suitable for shelving in the Library and credit is to be awarded for the project. __________________________, Graduate Coordinator Dr. Preetham Kumar Department of Electrical and Electronics Engineering iv ___________________ Date Abstract of IPv6 ON HP E-SERIES WIRELESS NETWORKING DEVICES by Vaishnavi Venkataramanan World today is incomplete without being able to be connected to the internet enabling people from different parts of the world to connect with one and another. This is all made possible with the growing networking technology especially to mention the wireless technology where internet is at one’s service no matter where one is present across the globe anywhere. Wireless networking enables easy and faster access to the internet wirelessly and proving greater amount of security and flexibility of roaming. Earlier it was just one computer in one house, but presently every home has at least 3 computers. The increasing use of computers is very high. What will happen if there is a situation where no more instruments can connect to internet? To prevent this situation, came the IPv6 protocol a successor to the existing IPv4 internet protocol. With the current protocol, it is predicted that ip4 address space allocated is shrinking and will be left with no more space to connect a new device. v It is just not possible for devices to automatically be compatible with the new technology. Hence certain validation and verification technique is introduced to test the devices to be compatible with IPv6. TAHI test tool is one identified test procedure which has been recognized by the Government of United States to certify devices that support IPv6. This project talks about the importance of Tahi test, building test systems for networking devices. Another important part of this project is to perform automation using scripting languages. _______________________, Committee Chair Dr. Suresh Vadhva _______________________ Date vi ACKNOWLEDGEMENTS I would like to thank my professor, Dr. Suresh Vadhva for accepting my project request and the guidance he has provided me. A very special thanks to my Manager, Mehul Pandya at Hewlett-Packard Company for providing me this wonderful opportunity to work for Hewlett Packard Company in the IPv6 wireless project. I also want to thank him for all his guidance, continuous support for the project. I extend my heartfelt thanks to Esteban Corella at Hewlett Packard Company for providing constant encouragement and mentoring he provided me during the tenure of the project. I am also thankful to my Professor, Dr. Preetham Kumar for his willingness to serve in the committee towards my Master’s program. vii TABLE OF CONTENTS Page Acknowledgements .................................................................................................... vii List of Figures ............................................................................................................. xi List of Abbreviations ............................................................................................... xiii Chapter 1. INTRODUCTION .................................................................................................... 1 1.1 Project Objective ............................................................................................. 2 1.2 Project Approach ............................................................................................ 2 2. NETWORKING ....................................................................................................... 4 2.1 Wired Networking ........................................................................................... 4 2.2 Wireless Networking ....................................................................................... 4 2.3 Transition from IPv4 toIPv6 ............................................................................ 6 2.4 Next Generation Internet Protocol version 6 ................................................... 6 2.4.1 Identifying IPv6 in local device ............................................................... 9 2.4.2 Protocol Requirements ............................................................................. 9 2.4.2.1 RFC 2460- IPv6 Specification .................................................... 10 2.4.2.2 RFC 4861 – Neighbor Discovery for IPv6 ................................. 11 2.4.2.3 RFC 4862 – IPv6 Stateless Address Auto Configuration .......... 11 2.4.2.4 RFC 1981 - IPv6 Path MTU Discovery...................................... 12 viii 2.4.2.5 RFC 4443 - ICMPv6 for IPv6 ..................................................... 13 2.5 TAHI Test Tool ............................................................................................. 14 3. TESTING ENVIRONMENT.................................................................................. 16 3.1 Device Under Test ......................................................................................... 16 3.1.1 HP E-Series Controller MSM -720 ........................................................ 16 3.1.2 HP E-Series Access Point MSM - 466 .................................................. 17 3.2 Network Topology ......................................................................................... 18 3.3 Device Configuration..................................................................................... 20 3.3.1 HP Procurve 1810G Switch ................................................................... 20 3.3.2 MSM 720 Controller Configuration ...................................................... 24 3.4 Preparing the Workstation ............................................................................. 30 4. PROJECT IMPLEMENTATION ........................................................................... 34 4.1 Testing MSM 720 as Host ............................................................................. 35 4.1.1 TAHI as Host ......................................................................................... 35 4.1.2 Manual Execution .................................................................................. 37 4.2 Testing MSM 720 as Router .......................................................................... 41 4.2.1 TAHI as Router ...................................................................................... 42 4.2.2 Manual Execution .................................................................................. 43 4.2.3 Router Advertisements........................................................................... 44 4.3 Automation .................................................................................................... 45 ix 4.3.1 Development of Scripts.......................................................................... 46 4.4 Other Methods of Execution .......................................................................... 51 4.4.1 Single Test Case Execution ................................................................... 52 4.4.2 Group Test Case Execution ................................................................... 53 4.5 Testing Access Point as Host ......................................................................... 53 5. RESULTS ............................................................................................................... 57 6. CONCLUSION ....................................................................................................... 60 Bibliography ............................................................................................................... 61 x LIST OF FIGURES Figures Page Figure 1 – Devices and users connected to wireless network ..…….………5 Figure 2 – IPv6 Addressing structure …….… . ……………………………7 Figure 3 – Display of IP address in local device …………..……….….…. 9 Figure 4 – Structure of TAHI Tool .……… ......................... ……………. 15 Figure 5 – HP MSM 720 Controller….……… .... ………………………. 17 Figure 6 - HP MSM 466 Access Point ………. …………………………. 18 Figure 7– Test System Network Connection for DUT……………………19 Figure 8 - Picture of setup at cube with test devices in network topology. 19 Figure 9 - HP Procurve 1810G Switch ............................. ………………. 20 Figure 10 – Switch Description page ................ …………………………. 21 Figure 11 – Switch Network setup page ........... …………………………. 21 Figure 12 – Switch VLAN Page ....................... …………………………. 22 Figure 13a – Switch VLAN Tagging page ....... …………………………. 23 Figure 13b – Switch VLAN (2) Tagging page . …………………………. 24 Figure 14a– MSM 720 IP Interface page .......... …………………………. 25 Figure 14b – MSM 720 IP Static Interface page ………………………….26 Figure 15 – MSM 720 Network connection page .. ……………………… 26 Figure 16 – MSM 720 Creating new network profile page ………………28 Figure 17 – MSM 720 VLAN Mapping page ... …………………………. 28 xi Figure 18 – MSM 720 IP mapping for management interface……………29 Figure 19 – MSM 720 IP Interfaces mapping page .. ……………………. 29 Figure 20 – Setting rc.conf file…….……… .................. …………………32 Figure 21 – Setting initial nut.def file ............... …………………………. 33 Figure 22 – Preparing nut.def file for MSM 720 host test..………………36 Figure 23 – Running test in a terminal........................... ………………… 38 Figure 24 – Request to perform reboot operation on DUT……………….38 Figure 25 – Executing commands on DUT ........ …………………………39 Figure 26 –Display of test in progress .............. …………………………. 40 Figure 27 – Preparing nut.def file for router test ………………………….42 Figure 28 – Preparing nut.def file for automation ..... …………………….46 Figure 29 – Test results displayed in HTML link ............. ………………. 51 Figure 30 – Identifying command from the test result HTML page………52 Figure 31- Schematic of Set up of MSM 466 as host……………………..53 Figure 32 – Section 1 Test Result in web page . …………………………. 58 Figure 33 – Section 2 Test Result in web page . …………………………. 58 Figure 34 – Section 4 Test Result in web page . …………………………. 59 Figure 35 – Section 5 Test Result in web page . …………………………. 59 xii LIST OF ABBREVIATIONS Abbreviation Page IP – Internet Protocol ............................................... ………………………1 IPv4 – Internet Protocol version 4 ..... ………………………………….…. 1 IPv6 – Internet Protocol version 6 ..... ………………………………….…. 2 UNH - University of New Hampshire ..................................... ……………2 USGv6 – United States Government version 6 .. …………………………. 2 LAN – Local Area Network .............................. …………………………. 3 MLD – Multicast Listener Discovery ................. …………………………. 3 LLA – Link Local Address ................................. …………………………. 7 NAT – Network Address Translation ................. …………………………. 8 QoS – Quality of Service .................................... …………………………. 8 RFC – Request for Comment ............................ …………………………. 10 DAD – Duplicate address detection .................. …………………………. 11 RA – Router Advertisement.............................. …………………………. 11 ND – Neighbor Discovery ................................ …………………………. 11 SLAAC – Stateless Address Auto Configuration…………………………11 MTU- Maximum Transfer Unit ........................ …………………………. 12 MAC – Media Access Control .......................... …………………………. 12 ICMP – Internet Control Message Protocol...... …………………………. 13 DUT – Device Under Test ................................ …………………………. 14 xiii AP – Access Point ............................................. …………………………. 19 VLAN – Virtual Local Area Network .............. …………………………. 21 NIC – Network Interface Card .......................... …………………………. 24 WAN – Wide Area Network............................. …………………………. 24 ALM – Application Lifecycle Management ..... …………………………. 57 xiv 1 CHAPTER 1 INTRODUCTION Computer networking has become a very essential part in our daily life in recent years; the world today is completely networked allowing people to access information by working remotely from any part of the globe with a click of a button. The number of devices that are being connected to a network each day has increased by a huge magnitude. Once these devices are connected to a network they are expected to work without disruptions. Technology in network engineering has been growing at a very high speed in order to keep up with the consumer demand. Few years ago the concept of networking meant connecting a device using a wire so that it could access another device to exchange information. This wired connection of device through network switches or modems helped devices to speak with one another but had a big drawback; it could not access devices that were not connected to switches or modems through a wires. Trying to run long cables to connect devices was practically not possible for businesses since it resulted in high costs. This resulted in the advent of wireless networking where the user could connect his device with others using a switch or modem without using wires resulting in easy accessibility of devices. Each device connected to a network has its own identification address know as IP address using IPv4 protocol which lets other device known to whom it is talking to. With 2 a huge increase in number of devices in recent years and networking between devices becoming simpler and wireless the total number of possible IP address using IPv4 protocol would be exhausted soon. This would result in devices running out of IPv4 address. In order to solve this problem a new set of IP address with IPv6 protocol has been introduced. Many of the extended features in IPv4 like IPsec, fragmentation and security are now an internal feature of IPv6. 1.1 Project Objective In this project I would be performing IPv6 protocol conformance test on wireless networking devices using self-developed automation suites. Various levels of testing of IPv6 protocol is performed on the wireless networking devices to make sure they satisfy all the protocol requirements to cater various fields like large enterprise business, universities, military and households. It is very essential to verify the IPv6 functionalities at the kernel level of each wireless device to meet the standards specified by the UNH (University of New Hampshire) laboratory in order to obtain USGv6 (United States Government version 6) certification before it can be deployed in consumer environments. 1.2 Project Approach The conformance testing process is divided into two parts; the first part is to perform manual mode testing to make sure all the IPv6 protocol specifications are met on the device. The second part is to write automation test suites of the same tests performed 3 in manual mode in order to automate the testing process so that the device can be tested in a shorter time. I build test systems by configuring Free BSD work station, HP Procurve switches, HP controllers and access points to provide multiple LAN connections. I am responsible for configuration and setting up of the complete test system. Install Tahi test suites on work station. TAHI test suite is used to verify the IPv6 functionalities like the IPv6 specifications, neighbor discovery protocol, State-less address auto configuration behavior and path maximum transfer unit beyond which tests for DHCPv6, MLD and IPSec would be executed. I initiate manual TAHI tests. In order to perform manual testing I would identify the commands to execute at the Linux kernel level through the Tahi test suite. Configuration varies for each device under test hence I would need to change the test system set up and identify commands to execute at a kernel level for each device separately. Commands would include testing ping of IPv6 address, rebooting device identification of set static routes; verify if the device behaves as a host and router. There are about 600 test cases to be completely verified for a single device. 4 CHAPTER 2 NETWORKING Networking is a concept of connecting multiple devices to talk with each other over a communication channel. A network is created when a device has the ability to send and receive data packets to the other. The most common and widely known network is the internet. Internet is a communication network established to connect and share data over millions of devices existing world- wide. Networks can be broadly classified into Local Area network (LAN), Wide Area network and Storage Area Networks. These are classified based on the area width and the number of devices connected together. Further networking can be classified as wired networking and wireless networking [18]. 2.1 Wired Networking Wired networking is the kind where devices are connected by means of physical connection like Ethernet, co-axial and fiber cables allowing data to exchange between them. Networking switches are example of wired technology [18]. 2.2 Wireless Networking As the name suggests, multiple device respond and exchange information without being physically connected with one and another. The advantages of wireless network 5 over wired networks are portability, ie. devices can be taken around places without relying on physical connection to a port as shown in Figure 1. They are less expensive in terms of cost than wired networks as we need not invest money in wires for connection. Wireless devices connect to internet over WiFi. Installation is easy and clean in wireless compared to wired networks in which use of cables and wires are dominant. Disadvantages of wired network technology gave rise to wireless networking. Wireless technology is a growing field. Mobile phones, tablets, laptops with WiFi connections are all day to day examples of wireless devices. However, this technology also has standards which are to be met throughout its usage. Enterprise business, universities, schools, offices, hotels, public places, create business demand for more wireless technology [18]. Figure 1 – Devices and users connected to wireless network 6 2.3 Transition from IPv4 to IPv6 Any device that requires to be connected to the internet should possess an address called IP address. These addresses are allocated region wise by the organization called IANA worldwide. The current protocol is called as Internet Protocol version 4 abbreviated as IPv4 which is predominantly widespread. IPv4 has a 32 bit addressing space possessing limit on the total number of devices that can connect to internet. With the growing numbers of devices either wired or wireless, the number of IPv4 addresses space available is shrinking and it is predicted to be exhausted by end of 2013. This is one of the main reasons for moving to the next version of Internet Protocol called the next generation protocol. Some of the disadvantages of IPv4 has been rectified and implemented in IPv6. Extended functionalities in IPv4 are made to be a part of the base protocol IPv6. 2.4 Next Generation Internet Protocol version 6 The next generation protocol, IPv6 [1, 18] is the growing technology superior and a successor to IPv4. The technology demands smooth transition from IPv4 to IPv6 in terms of functionalities and thus the devices that require IP addresses are manufactured and altered to have IPv6 compatibility. The main key features of IPv6 over IPv4 are: Expanded addressing capability and auto configuration mechanisms: The address size is increased to 128 bits whereas IPv4 had 32 bits thus providing room for 7 uncountable number of IP addresses ensuring that we will not run out of address space in the near future. The address is represented in hexadecimal format in octets separated by semicolon. An IPv6 address looks like 2001:FE10:1290:9E76:2D7E:4137:3A57: FEFB. IPv6 also contains link local address which is a unicast address where datagram exchange occurs between two nodes. All LLA begins with FE80::. Multicasting is defined as the ability to transmit datagram from source address to multiple locations. Multicast now belongs to base IPv6 with improved multicast implementations. Figure 2 shows the addressing structure of IPv6. Figure 2 – IPv6 Addressing structure Format of IPv6 header is simplified: The header in IPv6 is 40 bytes allocating 8 bytes for header 16 bytes for source address and last 16 bytes for destination address. In this way packet handling is improved. Packets are transmitted faster due to reduced header format. Whereas, IPv4 header was huge having 14 fields including version number, time to live, options and other parameters. Checksum was calculated mandatory in IPv4. 8 Options and extension field are separated from IPv6 header: IPv6 introduces optional and extension headers which was a part of the header in IPv4. If required options are provided as extensions and used at the end of the main header and packet. This makes packet handling better and flexible. Better security – Protocol IPsec defined in IPv6 is one of the main reasons for maintaining security compared to IPv4. It consists of encrypted protocol such as Authentication Header, Encapsulating Security Payload and Internet Key Exchange protocols to maintain data integrity and security. Whereas, in IPv4 Network Address Translation was used for data protection. IPSec was not intensely defined in IPv4. NAT is wiped out in IPv6. Stateless address auto configuration: One of the key features observed in IPv6 protocol is that it allows a fresh node to configure its own IPv6 address. IPv4 supported stateful address with a help of DHCP server to allocate a new address. DHCP server has the collection of all the IP address and generates one depending on the availability of the address to a new node. Quality of service – IPv6 has improved QoS in terms of handling packets and traffic. The header is provided with flow label field to ensure packet delivery. But in IPv4 this was done using the Type of service field which was specific to packets through the network. 9 2.4.1 Identifying IPv6 in local device All electronic devices that need an IP address now is available with an IPv6 address. This can be seen in a laptop by typing “ipconfig” in a command prompt. Look at Figure 3 to view IPv6 address in the laptop. Figure 3 – Display of IP address in local device 2.4.2 Protocol Requirements As we are aware of the change from IPv4 to IPv6 and more involvement of wireless devices in market, it is very essential to verify IPv6 compatibility on the wireless devices. This chapter presents development of test process and scripts to execute TAHI conformance test on the HP E-series controller- MSM 720 and Access point MSM466. 10 The protocols are defined in RFCs (Request for Comment series). RFC is a technical document developed by a group called IETF (Internet Engineering Task Force). It states all the rules and specification that is required for a protocol definition. The RFCs are discussed in the below section. 2.4.2.1 RFC 2460- IPv6 Specification This RFC is particular for the IPv6 header specification. It talks about how the header must be handled for different packets, the addressing capabilities. Packet size problems are addressed in this RFC. It also details about how the upper layers are affected by IPv6. Extension headers are not examined or processed by any node along a packet's delivery path, until the packet reaches the node (or each of the set of nodes, in the case of multicast) identified in the Destination Address field of the IPv6 header. The extension headers available in IPv6 are listed below: Routing header Hop-by-Hop Options header Destination Options header Fragment header There are 2 types of routing header namely the type 0 and type 33. Behavior of the routing header is also a part of the TAHI Host and Router testing [1, 2]. 11 2.4.2.2 RFC 4861 – Neighbor Discovery for IPv6 Neighbor Discovery (ND) in short provides the capability in IPv6 to identify the reachability of the neighbor along with duplicate address detection in short DAD, a mechanism which was not defined as a part of IPv4. This protocol has been widely used by the nodes to identify the layer 2 addresses existing on the same link, identification of the neighboring routers in order to forward data packets and reachability of a neighbor ie. If a neighbor node in the network can be reached easily or not. Router Discovery is made a part of the protocol. Router are responsible in sending router advertisements periodically and in turn be requested by a host which send a router solicitation. These RAs provide the link layer address (LLA) for the routers. RAs contain prefix for a link and hence separate information is not required to be sent unlike in IPv4. It also enables stateless address configurations. As a part of the protocol, it allows multiple prefixes on one link. As a part of the base protocol, detection of neighbor node unreachability makes room to have better packet delivering capacity. ND protocol incorporates duplicate ip address on a single link using DAD [3]. 2.4.2.3 RFC 4862 – IPv6 Stateless Address Auto Configuration One of the key features in IPv6 is SLAAC – ability of a newly configured host to auto configure IP addresses and does not require manual IP address configuration anymore by minimizing the use of DHCP servers for obtaining IP addresses. Use of DHCP servers was predominant in IPv4. Here IP addresses are generated by using a 12 combination of MAC address, prefixes and information received through the routers are used to form the IPv6 addresses in the hexadecimal format. When a node is auto configured, the LLA is obtained from the link local prefix. A neighbor solicitation message is triggered and the IP destination address is the multicast address. Now this is investigated if there is a presence of another node on the same link using this address. This technique is the duplicate address detection and if it prevails then SLAAC stops [4]. 2.4.2.4 RFC 1981 – IPv6 Path MTU Discovery Packet fragmentation happens due to the MTU value offered is large in number and then recombined at the destination. With IPv6, packets are not required to be fragmented. The Path MTU discovery Protocol is defined to allow packet transfer using the largest size of the unit on the network design on which it is used. The MTU size would vary from network designs. Path MTU is defined as the as the smallest unit link from the source to the destination node defined in a network. A host assumes that the Path MTU is the same as the MTU of the first hop link and takes that same size. Incase if the packet that is encounters is too big through that network path, the discovery protocol is designed to send out Packet Too Big message and reducing the size of the unit. There is no limit on the number times this discovery process can occur. IPv6 host tries to increase the size of the MTU time to time trying to provide space for larger MTUs in order to maximize the efficiency [5]. 13 2.4.2.5 RFC 4443 - ICMPv6 for IPv6 ICMPv6 protocol is defined to report errors if packets are not processed properly and are also responsible for sending messages about the status of the network. This can be explained citing a simple example: Assuming a router is unable to forward a too large packet and sent out of network, it triggers for ICMP error message to the source host. Looking at the ICMP error message, the packet rectifies the size and initiates to resend the altered packet. Some of the important messages would be Packet Too Big – when the MTU size is not the expected size of the packet, Time Exceeded – This message frequents in cases when the router tries to forward packet with hop limit as 1 and gets into like a loop, Destination Unreachable – Occurs when the IP datagram does not reach a destination address, it could happen if the node is unavailable in the network or even when the node is down. Another 2 informational messages are the Echo Request and the Echo reply which is often seen during the TAHI Testing. These are pinging statements request the host to ping to the destination node. The way it works is that the source node/ host sends an Echo Request to the destination address and the destination address listens to the request and responds to the host by sending an Echo Reply. By sending echoes, we can make sure of the existence of the source or destination node. There are also certain rules to follow in situations where ICMP messages are not to be sent such on encountering ICMv6 error message, when redirected messages are observed [6]. 14 2.5 TAHI Test Tool IPv6 is a recent protocol and it is assured that not all devices are compatible to IPv6. One of the methods of verification of devices to ensure that the device supports IPv6 features is done by TAHI Testing. TAHI test tool was developed by The University of Tokyo, Yokogawa Electric Corp and YDC Corp. designed to work on BSD based platform. TAHI consists of conformance testing and interoperability testing. TAHI testing is performed on networking devices in order to obtain USGv6 certification. USGv6 certified devices are only recommended for Government usage. TAHI test bed consists of test validation for IPv6 core protocol, MLD, DHCPv6 and many more. Conformance specification and scenarios are installed in the work station and it is allowed to interact with the target device in its application layer. The test engine interacts with the test scripts and runs on the application layer of the target and produces the results which are also viewed as a HTML page. Figure 4 shows a schematic of interaction between the tool and DUT. The test scenarios are defined in a test engine. It is the responsibility of engineer to develop test scripts in Perl and Tcl or recommended language to initiate the test from Tahi tool. Once the test system setup is complete, test engine (Tahi tool) begins to initiate the test through the test script developed which interacts with the target device and performs the 15 necessary operation on the target device. The figure shows schematic interaction between the test engine, scripts and the target device for the Tahi [7]. SELF DEVELOPED SCRIPTS TAHI TEST SCENARIOS/ TEST ENGINE DEVICE UNDER TEST MSM 720/ MS 466 FREE BSD OS Figure 4 – Structure of TAHI Tool 16 CHAPTER 3 TESTING ENVIRONMENT The first step in the project is to identify devices that are required to commence the system set up. The following devices were identified and used for the testing purpose: HP Procurve 1810G Switch Controller – HP MSM 720 Access Point – HP MSM 466 Work Station – ZL 600 Free BSD Machine 3.1 Device Under Test (DUT) In this section we will look into the main devices that were used as target devices ie. The devices on which the tests were performed. 3.1.1 HP E-Series Controller - MSM 720 Controllers are networking devices that enable to link two or more devices using a wireless model. It interacts with the access points to spread to a wider internet. The advantages of using a wireless controller are as follows: The deployment is automatic and the software is distributed. It allows guests access control to a network 17 Another important benefit is in terms of security during roaming from one place to another within or between different networks. Configuration and management is centralized and observes certain policy rules making in simple and flexible. Some examples of controllers are MSM 720, MSM 760, MSM 800. The configuration may vary from device to device. MSM 720 looks as shown in the picture below (Figure 5) [9, 14]. Figure 5 – HP MSM 720 Controller [8] 3.1.2 HP E-Series Access Point - MSM 466 Access point are networking devices that allow wireless devices to connect to a wired networks or internet using standards such as Wi-Fi, blue tooth or related technology. APs are designed to work in two modes- controlled mode where the AP relies on a controller having a centralized management of the APs. All APs are expected to be included and registered in the desired controller. Other mode is called the autonomous mode where the every AP in the networked is managed individually. 18 A good benefit of the wireless AP is that roaming is made effective without having impact on the IP address operating on different subnets. Devices such as HP MSM 466, HP MSM 430, HP MSM 460 (Figure 6) are all examples of access points (AP). The AP in autonomous mode is accessed using a serial interface or by access its web based configuration. An AP is configured through a controller and usually it is a preferred way of using by customers [9]. Figure 6 – HP MSM 466 Access Point [10] 3.2 Network Topology The following diagram (Figure 7) shows how the ports and interfaces are connected between the target device and the test box. Host and Router connections are configured in the LAN ports of the controller itself. A management LAN is recommended for packet traffic management purpose. 19 bge1 bge0 HP CORP TAHI BOX bge4 Management Vlan 4 LAN Port 4 192.168.1.50 MAC: 2C:41:38:42:87:D9 bge2 bge3 Host Vlan 3 3ffe:501:ffff:100:: Router Vlan 2 3ffe:501:ffff:101:: LAN Port 1 192.168.3.46 LAN Port 3 192.168.2.50 WAN Port 6 10.0.8.46 MSM 720 Controller (DUT) Yellow LAN Figure 7 – Test System Network Connection for DUT The below picture shows the connections that was used for the TAHI test setup for Conformance testing- A private set up at cube refer Figure 8. Figure 8 – Picture of setup at cube with test devices in network topology 20 3.3 Device Configuration 3.3.1 HP Procurve 1810G Switch The HP Procurve Switch (Figure 9) is used to provide multiple connections of the same type acting like a splitter. The LAN at HP is divided as Blue LAN and Yellow LAN referring to the internal names Puerto Rico network and a yellow LAN as traffic management network. All the IPs beginning with 192.168.*.* are considered private networks. Figure 9 - HP Procurve 1810G Switch [11] Step 1: Make the laptop connect to a static ip address of 198.162.1.* and make direct connection with the switch to port 1. Go to Control Panel -> Network Settings -> Change adapter settings -> Give static ip to laptop as – 192.168.1.100 The default factory IP address set on the switch is 198.162.1.1. Simply click on Login to view the user interface of the. Step 2: Go to Setup Network -> Fill in all the details and click on Apply to save the details refer Figure 10. 21 Figure 10 – Switch Description page [12] Step 3: Navigate to Network Setup -> Get Connected which takes to Network details page. Enter IP address as 10.0.8.45 with subnet as 255.255.248.0 and gateway as 10.0.8.1. Apply to save the configuration refer Figure 11. Figure 11 – Switch Network setup page [12] Step 4: Navigate to Vlans -> Vlans Configuration and create 2 different Vlans with ids 15 and 10 pointing to Puerto Rico and yellow network respectively. 22 Go to Vlan Configuration -> Create Vlan -> Enter Vlan ids -> Provide Vlan name and click on Apply to save as per Figure 12. 10 – Yellow Network 15 – Puerto Rico Network Figure 12 – Switch VLAN Page [12] Step 5: In this step the ports are untagged to the respective Vlan ids. Go to Vlans -> Participation/ Tagging - > Select Vlan id 15 from the drop down menu. Change the type to U from ports 1 to 12 as per shown in Figure 13a. The following are the meaning: E – Excluded (Ports are excluded from the Vlan id) T – Tag (Ports are tagged to Vlan id) U – Untag (Ports are kept untagged to Vlan id) 23 Click on Apply to save the configuration. Figure 13a – Switch VLAN Tagging page [12] This configuration means that the ports from 1 to 15 of the switch are all untagged to Puerto Rico Network. Step 6: Unplug the cable and now connect the Yellow network cable to port 13 on the switch. Go to Vlans -> Participation / Tagging -> Select Vlan id as 10 and make ports from 14 to 24 as un-tag refer Figure 13b. Click on apply to save the configuration. Step 7: Now Port 13 is left as Excluded. Shift the cable to any of the untag ports from 14 to 24. Go to Vlan -> Participation /tagging -> Untag port 13. This configuration means that ports from 13 to 24 are all connected to Yellow network. 24 Figure 13b – Switch VLAN (2) Tagging page [12] The Puerto Rico and yellow networks are available from the floor Jacks. 3.3.2 MSM 720 Controller Configuration MSM 720 controller has 2 sections namely LAN side called the Access Network (with 4 ports) and WAN side called the Internet network (with 2 ports). The 4 LAN ports have internal connections interfaced to a NIC (network interface card) with MAC address 2C:41:38:42:87:D9 referring to interfaces br0 or eth1. The 2 WAN ports are connected internally and interfaced to a NIC on interface named eth0.2 with MAC address 2C:41:38:42:87:D8 referring to interface eth0. By default the controller has the factory setting with IP 192.168.1.1. The controller is configured as host and router to perform Tahi conformance test. It is also the responsibility of the engineer to identify the interfaces and the mechanism of the controller. The steps for connecting to the web interface of MSM 720 are given below: 25 Step 1: Make physical wire connection from your laptop to the WAN side port 6 (can use port 5 or 6) of the controller. Change the ip of the laptop to a static ip address to 192.168.1.x. Go to Control Panel -> Network Settings -> Change adapter settings -> Give static IP to– 192.168.1.100 Step 2: Open browser and go to https://192.168.1.1/. Set the country and click register later. Login to the controller with user name: admin and password: admin Go to Controller -> Network -> IP Interface -> Click on Internet network -> Select Static and click Configure (Figure 14a). Figure 14a – MSM 720 IP Interface page [13] Enter ip address 10.0.8.46 and mask 255.255.248.0 and click save as shown below in Figure 14b. 26 Figure 14b – MSM 720 IP Static Interface page [13] Step 3: Now go to Network Profile tab and check if the Vlan id is 10 by default for the internet network. Step 4: Then go to Network ->IP Routes and check if the default route gateway is set to 10.0.8.1. If not set then, enter the gateway address and click add. Then verify if the Active Routes section shows the details as per the below screen shot in Figure 15. Figure 15 – MSM 720 Network connection page [13] 27 WAN configuration to access the GUI is complete. Step 5: Disconnect the laptop from controller and modify ip back to DHCP (ensure Laptop is connected to Puerto Rico Network). Connect the WAN port 6 to yellow network on a switch. Browse to the https:10.0.8.46/ from your lap top. You must be able to connect to the controller’s home page and login. Note: Yellow network can be accessed from the HP Corp network. Let us look at the configuration of LAN interface in MSM 720 as given below: Step 1: Go to Controller -> Network ->IP Interfaces -> Click on Access Network and enter the ip as 192.168.3.46 (chose another subnet) and mask 255.255.255.0. Click Save. Step 2: Go to Network -> Network Profile -> Enter Vlan id as 3 and click Save. Note: Access network is the host interface. The next part is to provide the management interface. Procedure for establishing management interface is given below: Step 1: Go to Network -> Network Profile -> Add new profile -> Enter network name as Tahi Management and Vlan id as 4. Click Save as shown in Figure 16. 28 Figure 16 – MSM 720 Creating new network profile page [13] Step2: Go to Network -> VLAN -> Select Tahi Management -> Map the profile to the ports as untagged. Click Save as shown in Figure 17. Figure 17 – MSM 720 VLAN Mapping page [13] Step 3: Go to Network -> IP interfaces -> Add new interface -> Select Tahi management 29 Enter static IP 192.168.1.50 and mask 255.255.255.0. Click Save as shown below in Figure 18. Figure 18 – MSM 720 IP mapping for management interface [13] Step 4: Repeat the above steps to create another profile for router with ip 192.168.2.50 and mask 255.255.255.0 on vlan 2 (refer Figure 19). Figure 19 – MSM 720 IP Interfaces mapping page [13] 30 A new firmware from the latest branch (as per the development specific branch) of the code repository is installed in the controller. This is an optional task to ensure that there the IPv6 stack on the device does not observe any modifications or behavioral change. 3.4 Preparing the Workstation A Z600 workstation (BSD machine) is set up for the performing the Tahi test. Install the KDE4 desktop environment for easy access. Install the Tahi package with v6eval and download and install all the related applications. Log in to system as root /v6eval for any installation purposes [15]. Step 1: From the command prompt, navigate to directory to see if the kde package is available. # cd /usr/ports/x11/ If not found then add the package using the following commands. # pkg_add -r kde4 Otherwise go to step 2. Step 2: To build KDE 4 from source: # cd /usr/ports/x11/kde4 31 # make install clean This installation may take close to 6 hours. Step 3: After installation execute the below command to make KDE as the desktop whenever the statx is invoked. # echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc Step 4: After logging (root/ v6eval) into BSD execute ‘startx’ to start the KDE as desktop environment from the command prompt. # startx There are 3 important files which require user defined inputs: Etc/rc.conf usr/local/v6eval/etc/nut.def usr/local/v6eval/etc/tn.def rc. Conf file: This file (Figure 20) is required for setting network parameters and establishing the correct network connections to the device under test. The Default router is internal to HP router for the whole network, Port bge0 refers to the main interface through which Puerto Rico network is established. bge2 and bge3 interfaces required for Host and Router behavior. And other parameters are to be kept enabled except for router advertisement parameters which are to be enabled only during router test. IPv6 prefixes for bge2 and bge3 must be provided as given below. 32 For bge2 - 3ffe:501:ffff:100:: and bge3 - 3ffe:501:ffff:101:: Figure 20 – Setting rc.conf file Nut.def file as shown in Figure 21 is used to set up for Host or Router configurations. We will see later on how this file is required for configuration. Edit file / usr/local/v6eval/etc/tn.def This configuration is needed for setting test interfaces. Some scenarios require additional interfaces for communication and hence we need to make changes. Interface name refers to the interface on the workstation. For this project it is enough to be considered about Link0 and Link 1 alone. Link0 is used for host test. Link0 and Link1 are both used for protocol router test. Link 0 is required to be set to test interface 00:00:00:00:01:00 Link 1 is set to test interface 00:00:00:00:02:00 33 The file details are shown in Figure 21. Figure 21 – Setting initial nut.def file 34 CHAPTER 4 PROJECT IMPLEMENTATION One major test suite of Tahi is the IPv6 Core Protocol where the test scenarios are described in 5 sections. Let us navigate to the location of the suite in the directory. Section 1: RFC 2460 - IPv6 Specification Directory: /usr/tahi/Self_Test_5-0-0_host / spec.p2 Section 2: RFC 4861 - Neighbor Discovery for IPv6 Directory: /usr/tahi/Self_Test_5-0-0_host /nd.p2 Section 3: RFC 4862 - IPv6 Stateless Address Autoconfiguration Directory: /usr/tahi/Self_Test_5-0-0_host /addr.p2 Section 4: RFC 1981 - Path MTU Discovery for IPv6 – Directory: /usr/tahi/Self_Test_5-0-0_host /pmtu.p2 Section 5: RFC 4443 - ICMPv6 – Directory: /usr/tahi/Self_Test_5-0-0_host / icmp.p2 It is mandatory for the wireless devices to pass all the test scenarios mentioned in the 5 sections as router and Host behavior [19]. 35 4.1 Testing MSM 720 as Host Host test on MSM 720 means to verify the behavior of the controller to behave as a host. Host refers to a node which simply receives packets and identifies its neighbor, sends out router solicitations typical functions of what a host would do in networking. Role as a host, it should satisfy all the scenarios listed as per the standards . Scripts are developed in Perl language to that initiate Tahi test machine and interact with the controller and execute commands prompts requested in the test to run various scenarios. For example: The test may require to add static address and we need to identify how to add static address to the interface. Port 1 on the LAN side of the MSM 720 is set as Host interface. Port 4 is set as the TAHI management port. The NIC to which this port is connected is observed to be on interface br0 with MAC address as 2C:41:38:42:87:D9. Only 1 interface is required for the Host test. It is mandatory to execute all the 5 sections provided. 4.1.1 TAHI as Host Login to the Free BSD work station using the username and password as root / v6eval. Start the GUI by entering command startx from the prompt. Once the work station is up and running, open a remote desktop connection and connect to Spectrum.rose.hp.com 36 Login to the remote session using root / v6eval. Now open a terminal and navigate to rc.conf file and verify the configuration is set as expected. $Spectre>cd Etc/rc.conf Now edit the nut.def file. This is the main change which actually describes what type of test has to be done. Set ‘Type’ to ‘host’ for host test. Set system to ‘manual’ to run in manual mode. Enter the MAC address of the interface / node under test as shown below in Figure 22 for Link0. Figure 22 – Preparing nut.def file for MSM 720 host test 37 Comment all other link except link0. Only link 0 is required for host test. All other configurations remain the same. 4.1.2 Manual Execution Manual mode of testing implies that once the test bed is started, at every stage the test prompts to perform some action to be performed in the controller manually. Open a terminal and ssh into the controller at 10.0.8.46 to execute necessary commands. Open another terminal and go to directory – It contains the installation of the test bed. Execute the following commands to run the test in manual mode [16]. #cd /usr/tahi/Self_Test_5-0-0_host/*.p2 # cd /usr/tahi/Self_Test_5-0-0_host/ spec.p2 or # cd / usr/tahi/Self_Test_5-0-0_host/ nd.p2 ‘*’ – Denotes the section name as follows. Section 1: RFC 2460 - IPv6 Specification - spec.p2 Section 2: RFC 4861 - Neighbor Discovery for IPv6 – nd.p2 Section 3: RFC 4862 - IPv6 Stateless Address Autoconfiguration addr.p2 Section 4: RFC 1981 - Path MTU Discovery for IPv6 – pmtu.p2 Section 5: RFC 4443 - ICMPv6 – icmp.p2 # make clean 38 # make ipv6ready_p2_host This command (refer Figure 23) will initiate the test execution for the entire test for that selected section. Figure 23 – Running test in a terminal Test execution in progress. The way how it looks when a test proceeds is shown in Figure 24. Figure 24 – Request to perform reboot operation on DUT 39 The packet and traffic on the private network can be tracked using a network protocol analyser named wire shark. Any debugging or detailed investigation of the packet information can be obtained from wire shark. It is a tool developed to function on linux, unix based operating systems. Another way of capturing the sequence of packet information is by taking a tcpdump on a particular interface. An example of the use of script - A dump is captured on interface bge2 for a size of 65535 bytes and is written into a file named rastahi.pcap. tcpdump -i bge2 -s 65535 -w /tmp/rastahi.pcap Test 1 requires the controller to be rebooted, so login to the controller and execute command “reboot” to restart the device (Figure 25). Figure 25 – Executing commands on DUT 40 Observe the Echo request and Echo as a part of the ICMPv6 protocol in Figure 26. Figure 26 –Display of test in progress It is to be noted that by default forwarding option is turned ON in the controller. This has to be turned off while executing controller as host. The script to turn off forwarding in the controller is as follows: # echo 0 > /proc/sys/net/ipv6/conf/all/forwarding To execute the other sections, follow the same procedure by navigating to the desired test suite directory. # cd / usr/tahi/Self_Test_5-0-0_host/ *.p2 Every section prompts for user to execute certain commands in the controller. The prompts are generic statements. It is the responsibility of the engineer to identify the commands. The commands would differ from device to device. 41 Example the prompt would be “ Reboot the device” and for some devices it would be restart or reboot. There are list of commands that are required to be executed in manual mode are identified and are given below [17]: Ping to an IPV6 address: # ping6 -s 2 -c 1 -I br0 fe80::0200:00ff:fe00:0100 Reboot device: # reboot Turn DOWN and UP a known interface # ifconfig br0 down # ifconfig br0 up 4.2 Testing MSM 720 as Router The controller can also function as a router, routing between two interfaces. This means that the node performs functions of a router in forwarding packets to other destination address, responds to router solicitation from host and sends router advertisements. The set of test scenarios are different from host and router. Router test consists of test scenarios inclusive of router advertisements and other router operations. Forwarding is enabled unlike the controller as host. Similar to host test, during the test, prompts appear for commands to be executed and these commands are manually executed and then automated. 42 For example: The test may require to add static address and we need to identify how to add static address to the interface Port 1 and Port 3 on the LAN side of the MSM 720 are used for router and packets route between these 2 ports. It is identified that it observes the interface 1 as br0 and interface 2 as eth0.2 with MAC address 2C:41:38:42:87:D8 4.2.1 TAHI as Router No change is made to rc.conf file. MAC address for interface 1 and 2 are provided for Link0 and link1 on the nut.def file. Modify test type as “router” as a reference in Figure 27. Figure 27 – Preparing nut.def file for router test 43 Connect to Tahi box and open a terminal and navigate to the router test bed directory and execute commands. #cd /usr/tahi/Self_Test_5-0-0_router/*.p2 # cd /usr/tahi/Self_Test_5-0-0_router/ spec.p2 or # cd / usr/tahi/Self_Test_5-0-0_router/ nd.p2 # make clean # make ipv6ready_p2_host 4.2.2 Manual Execution On executing in manual mode, TAHI prompts for commands and the following commands are identified and executed. Add and delete a static route: # route -A inet6 add ::/0 gw fe80::0200:00ff:fe00:0100 dev br0 # route -A inet6 del ::/0 gw fe80::0200:00ff:fe00:0100 dev br0 Set IP address for router test: # ifconfig br0 inet6 8000::2e41:38ff:fe42:87d9/64 44 4.2.3 Router Advertisements Router Advertisements as discussed in the previous chapter, are handled in different way. The router advertisement daemon is started and scripts are modified to include the parameters requested in the scenarios [1]. Login to the controller and edit the ra daemon file. The controller is restarted. The device is indicated to stop the process monitor by script: 1. $ sendmonmsg radvd delete which means the process monitor control has to move to the controller 2. $ pd –ef | grep radvd This will not have any process 3. Re-launch the process as a daemon from the conteroller using the script 4. radvd -C /ram/etc/ravd.conf The process is re-lauched and now has the ability to edit radvd.conf file 5. $ kill –HUP <Process Id> This is done to re-read the configuration. This is to test the standalone RAs. The parameters of the RAs appearing in the test are listed below: Advertising Interface: br0 45 AdvRetransTimer: 1000 AdvPrefix: 3ffe:501:ffff:100:: AdvPreferredLifetime 20 AdvValidLifetime 30 AdvReachableTime 30 AdvSourceLLAAddress 00:10:89:10:D9 The parameter values vary as per the requirement of the test. Each time a different combination of the parameter and the value appear, the RA daemon is stopped and relaunched with the modified data. 4.3 Automation Automation is the technique of making a device function on it own with the help of scripting. Scripts are developed in a desired language in order for the device to execute commands automatically without involving manual execution. The functionality should not be altered and the same results must be produced when manually done. For this project, Perl is the chosen language for scripting. The first step of script is to understand the behavior of the device and identify all the commands required to perform an operation. The advantage of automation is that an engineer does not have to constantly monitor the process, instead one can initiate the process and come back later to verify just 46 the results. It is time saving and avoid human errors to large extent. On the Tahi side, rc.conf file has no change, nut.def file is modified to set to work in automated mode. Edit the system type to “TahiRemote”. TahiRemote as shown in Figure 28 is the case sensitive keyword which indicates all the system to behave in automated mode for both host and router test. Figure 28 – Preparing nut.def file for automation 4.3.1 Development of Scripts [18, 19] Scripting is a method to automate a process. Perl is chosen as the language for controller automation. Every script must contain the host IP and the Tahi IP addresses are given in very script to identify which devices must be participated and the following commands to be executed by which identified device. Scripts are developed with *.rmt extension. A new client interface connection is established using 47 My $ssh = Net::SSH::Perl->new(host); Script varies from file to file depending upon the function and the command to be executed. Providing the device IP addresses and creating a new client interface are 2 operations in all the scripts. The following are the functions that have been identified to be automated. Reboot Reboot function makes the controller to reboot. This script is written in such a way that the control passes on to the test only when the device completes reboot. Algorithm: - Refer Tahi and Device IP address - Create a new client interface. - Fork the process to have parent and child process. Immediately parent thread starts while the child process continues in the back ground. My $pid =fork(); - In the parent process, provide print statements telling reboot is in process. Frequently ping to controller every 2 seconds to check if reboot is done, then return out from the controller. - Close the standard input and output access. 48 - Execute the reboot command in the child process so that the restart of the device is observed in the background while the parent thread is still running. Command = reboot - Once reboot is complete disable forwarding for host test only. My disable_forwarding = echo 0 > /proc/sys/net/ipv6/conf/all/forwarding Observe that the return to test must happen only after the device is completely rebooted. Reboot_async.rmt This is also a reboot function where the test does not have to wait for the device to finish rebooting. The reboot is executed as a parent process. Forwarding is turned off in the child process after 40 seconds. Once the reboot is initiated the control gets back to the test. There is enough time for the test to complete, if time is insufficient then the wait time can be increased. Reboot_slaac This reboot_slaac function is required for SLAAC test where the interface br0 is just required to be turned down and immediately UP to captures the DAD NS sent by the controller when an interface is up. The test waits for the 120 seconds until the interface is up, if the interface is still found to be down then it fails the test and moves to the next one. It is identified that actual reboot is not necessary instead bring up and down the interface. Algorithm: 49 - Provide the IP address of the test system and the dut. - Capture the link0 interface name using grep from the prompt with reference to the nut.def file. $iflink0 = cat /usr/local/v6eval/etc/nut.def | grep Link0 |awk ‘{print \$2} The script traverses for Link0 from nut.def file and prints interface name from 2 characters after Link0. - Fork the process. In the parent process, disable forwarding, bring down the interface ifconfig $iflink0 down wait for 5 seconds and bring up the interface Ifconfig $iflink0 up - Close the session and return to test. - Nothing happens in the child process, it simply quits for failure case. Ping6 This script is developed to ping to the address prompted by the test suite. The interface name, address packet size and count times are chopped from the prompt and combined together and command is obtained. Algorithm: - Reference the device and Tahi ip address - Open a session. 50 - Use for loop and traverse to obtain the interface id, address to ping and size details from the prompt and store it as an array. for($i=0;$i<$cantidad_args;$i++){ if (substr($ARGV[$i],0,4)=~'size'){ @packet_size=split(/=/,$ARGV[$i]); - Use command to ping to the stated address. - Close session and return to test. For router test: Reboot.rmt and reboot_async.rmt Both functions work exactly the same as that done for the host except that forwarding is not disabled. Ping6 and reboot_slaac are used for router test. The scripts are developed in a generic fashion such that it captures the interface id and address to ping in a variable and command is executed using the variable. The same scripts are re-used. Mtuconfig.rmt This script in Perl is developed to change the MTU size requested per test case when required. 51 Algorithm: - Capture the ip address of the device and test system to automate. - Using grep capture the interface ids. - Use for loop to traverse and obtain the mtu size in an array - Execute the command for mtu. Manualaddrconf.rmt Some test require static ipv6 routes to be set and deleted. This function is developed and scripted. Algorithm - Capture the ip address of the device and test system to automate. - Using grep capture the interface ids. - Use for loop to traverse and obtain the interface id, address and type of operation either add or delete. - Execute the command for adding or deleting using if else statement. route -A inet6 add ::/0 gw fe80::0200:00ff:fe00:0100 dev br0 4.4 Other Methods of Execution There are different ways to execute test scenarios such as executing single test case or entire suite. The results are observed in http://spectre.rose.hp.com 52 4.4.1 Single Test Case Execution In the results html page, select the section and click on the log. Figure 29 – Test results displayed in HTML link The log page is opened. Copy the script from the line which says “CommandLine” under Test Information and execute it in a terminal. Figure 30 – Identifying command from the test result HTML page 53 4.4.2 Group Test Case Execution If you need to run test cases from 45 to 51 of the neighbor discovery suite then, navigate to the nd.p2 folder and run the AROPT command as given below. # cd /usr/tahi/Self_Test_5-0-0_host/ nd.p2 #make clean // It is optional #make AROPT=”-s 45 –e 51” ipv6ready_p2_host #make ipv6ready_p2_host The test results are captured at http://spectre.rose.hp.com/Self_Test_5-0-0_host/ 4.5 Testing Access Point as Host Access point can be operated in two ways namely Autonomous mode or stand-alone mode Controlled mode – Access the AP through a controller For this project purpose it is suggested to test the AP in autonomous mode. Setup of AP is done in a different way incorporating some framework background. There is only 1 port for the MSM 466 and it is connected differently using a power injector. A serial connection is established with the laptop as shown in Figure 31. 54 TAHI BOX / BSD WORK STATION MSM 466 PO WE R Inje ctor LAPTOP CLIENT Figure 31- Schematic of Set up of MSM 466 as host The set- up is done similar to a client – Server socket communication. The framework used for consists of autolibcallerclient and autolibcallerserver socket connection. The script files are included in the server side. Client is installed in the laptop and responds to the TAHI through this call. The nut.def file is modified for host test as seen for the MSM 720. The MAC address of the MSM 466 is 98:4B:E1:E8:A3:6D on br0 interface. Include the host ip address of the configured MSM 466. No changes are made to any other file. Test execution is done exactly the same way as done in case of controller. The test is invoked the exact same way as it was done for the MSM 720 Host in a terminal for core protocol. Since it uses a framework using TCL, the scripts are also developed in TCL. When test is initiated, it establishes a serial connection with the client which in turn invokes the command in the device. TCL scripts developed are located in a lib directory which is referenced every time the call is invoked. On the whole the test suite and the test 55 approach remain the same as that of the MSM 720. The functions used for the host test of MS 466 are the same for reboot, reboot_async, for slaac and ping6 operations. Reboot.tcl This script reboots the device and control is switched to the test only after rebooting completes. Algorithm: - Declare as a package and set connection to AP console - Set the user name and password to login to the console of the AP. set connParam=”Console” set connapp=”Plink” - Verify for the CLI prompt - Execute command reboot and return to test exp_send -i $spawn_id "reboot" - Timeout for failure. Reboot_slaac Actual reboot is not necessary to occur instead it is found that simply bring down and the up the interface is enough for the test to capture the DAD NS sent by the device. Algorithm: 56 - Declare as a package and set connection to AP console. - Obtain the interface id from the client. - Set the user name and password to login to the console of the AP. set connParam=”Console” set connapp=”Plink” - Verify for the CLI prompt and execute command reboot and return to test exp_send -i $spawn_id " ifconfig $if down" - Wait for 5 seconds and bring up the interface exp_send -i $spawn_id " ifconfig $if up" - Return to test. Ping6 Ping6 script is developed to ping to an IPv6 address. Algorithm: - The client passes the interface id, address, size and pass the values to the script creating a namespace( used for referring contexts for command variables). - Use a procedure and traverse the values and execute the ping6 command. proc Ping6 {args} { } - The command can be executed under except { }. exp_send -i $spawn_id "ping6 -I $interface $ip_to_ping \r" - Return control to test. 57 CHAPTER 5 RESULTS After execution of the test suite the results can be view in as html link. The failed tests are analysed for their errors and are reported in HP’s defect tracking tool called Application Life Cycle Management (ALM). The test results reported were the same for execution in manual and automated mode. It is very evident that automated test cycles worked clearly without adding more complexities and without changing the functionality of test. Test results for host test are available at: http://spectre.rose.hp.com/Self_Test_5-0-0_host/spec.p2/index.html Test results for router test are available at http://spectre.rose.hp.com/Self_Test_5-0-0_router/spec.p2/index.html 58 RFC 2460 – IPv6 Specification The total test cases executed are 54. Figure 32 – Section 1 Test Result in web page RFC 4861 – Neighbor Discovery The total test case number was 236 for Host. Router had 150 test cases. Figure 33 – Section2 Test Result in web page Source: Screen of the test result from laptop Figure 33 – Section 2 Test Result in web page 59 RFC 1981 – Path MTU Discovery In this test, total test cases executed are 16 for host. For the router, 15 test cases. Figure 34 – Section 4 Test Result in web page RFC 4443 – ICMPv6 The total number of test cases executed for both host and router wear 25. Figure 35 – Section 5 Test Result in web page 60 CHAPTER 6 CONCLUSION TAHI verification for IP Core Protocol has been extensively performed on HP E-series wireless devices MS 720 – controller and MSM 466- Access Point wireless devices. Perl and TCL scripts were developed exclusively to enable working of the TAHI test bed in automated mode. Setting up of router advertisements by instantiating the router daemon required trial and error method of detection. Packet tracing for correct analysis of failure was done using the tcpdump generated after every test. The importance of this verification is to the extent that it must pass the USGv6 certification. The results are carefully analysed. The defects are logged into a defect tracking tool. Networking tools like wire shark is used for packet tracing. As the test is in progress, every activity of the packet can be traced in Wireshark. It is an alternate method to view the packet information of the tcpdump. Identifying the correct commands for MSM 720 and MSM 466 and developing the new scripts were the challenges faced during this project. This project has given me wide area of experience working with the current and upcoming technology IPv6. Application of wireless devices are greatly found in areas of university, offices, company. The next step would be to fix defects that were observed during the test and perform verification. 61 Bibliography [1] “IPv6 Essentials”, Silvia Hagen, O-Reilly & Associates, First Edition, 2002 [2] For RFC 2460 http://www.rfc-editor.org/rfc/rfc2460.txt [3] For RFC 4861 http://www.rfc-editor.org/rfc/rfc4861.txt [4] For RFC 4862 http://www.rfc-editor.org/rfc/rfc4862.txt [5] For RFC 1981 http://www.rfc-editor.org/rfc/rfc1981.txt [6] For RFC 4443 http://www.rfc-editor.org/rfc/rfc4443.txt [7] Tahi Tutorial from http://www.tahi.org/whoami.html [8] HP MSM 720 Controller from http://h10010.www1.hp.com/wwpc/uk/en/sm/WF06b/12883-12883-11379274172286-4172286-3963981-5195392.html?dnr=1 [9] “Implementing HP E-Series Wireless LANs”, Rev.10.41- Course # 00241929, Part Number 00241929S1011, HP Partner Learning 62 [10] HP MSM 466 Access Point from http://h17007.www1.hp.com/uk/en/products/wireless/index.aspx?jumpid=reg_r100 2_uken_c-001_title_r0002 [11] HP Procurve Switch from http://h20427.www2.hp.com/campaign/bizadvantage/nz/en/ProCurveDetail.aspx?id =Procurve2 [12] Screen shot of configuration from web based interface of HP Procurve 1810G Switch [13] Screen shot of configuration from web based interface of HP MSM 720 Controller [14] “HP MSM 7xx Controllers Management and Configuration Guide” from http://bizsupport2.austin.hp.com/bc/docs/support/SupportManual/c02704528/c027 04528.pdf 15] Free BSD installation and KDE Guide from http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x11-wm.html [16] “How to set up a Tahi testing environment for USGv6 testing”, HP internal document by Esteban Rivera and Francisco Fung [17] “E-MSM7xx Ctlr CLI Ref Guide” - HP Internal document [18] “Internetworking with TCP/IP, Principles, Protocol and Architecture”, Volume 1, Douglas E. Colmer, Fifth Edition, 2006 63 [19] IPv6 Ready Phase-1/Phase-2 Test Specification Core Protocols Technical Document, Revision 4.0.6, Converged Test Specification from https://www.ipv6ready.org/?page=documents&tag=ipv6-core-protocols [18] “Learning Perl”, Randal L. Schwartz, Tom Phoenix, O'Reilly & Associates, Third Edition, 2001 [19] Perl Online Tutorial from http://perldoc.perl.org/perlfork.html [20] TCL Tutorial from http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html [21] “Practical Programming in Tcl /Tk”, Brent B. Welch, Ken Jones, Fourth Edition, Prentice Hall PTR, 2005