IPv6 ON HP E- SERIES WIRELESS NETWORKING DEVICES A Project

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