SlideShare a Scribd company logo
1 of 9
EN3020 - Digital System Design
         Group Project


    NAT64 SERVER




   D.P.G.S.R Fernando 080104U
   I.U. Liyanage    080269D
    J.R.Kodagoda    080238H
   R.S.A De Silva   080073v
OVERVIEW
Our core objective is to build an interface which connects a set of ipv4 clients to a set of ipv6
servers and vice versa. IPv6 was developed by the Internet Engineering Task Force (IETF) to deal
with the long-anticipated problem of IPv4 running out of addresses. Until IPv6 completely
supplants IPv4, a number of transition mechanisms are needed to enable IPv6-only hosts to
reach IPv4 services and to allow isolated IPv6 hosts and networks to reach each-other over
IPv4-only infrastructure. NAT64 is a mechanism used for such needs and is valuable in present.




PROCEDURE
Work flow of our project is as follows.

      Implementing the Tri-mode Ethernet mac-wrapper
      Implement the IPv4 to IPv6 conversion algorithm
      Implemented the IPv6 to IPv4 conversion algorithm
      Combine two algorithms to get the NAT64 module
Tri-Mode Ethernet MAC-Wrapper
First of all, we had to implement the Ethernet MAC layer in a FPGA evaluation board. But soft-
Ethernet MAC cores are not freely available. Therefore we had to use either Vertex 5 or Vertex
6 in which Ethernet MAC cores are available. Therefore we had to choose Vertex 5 from the
three choices, Virtex-5, Virtex-2 and Altera.

But in order to make the core functional, we had to use tri-mode Ethernet MAC-wrapper which
is free in the Xilinx Core generator.




Tri-Mode Ethernet MAC wrapper consists of 2 components.

      Block Level Wrapper
      Local Link Wrapper
          o rx_client_fifo
          o tx_client_fifo



rx_client_fifo

The rx_client_fifo is built around 2 Dual Port block RAMs, providing a total memory capacity of
4096 bytes of frame data. The receive FIFO writes in data received through the Ethernet MAC. If
the frame is marked as good, that frame is presented on the LocalLink interface for reading by
the user. If the frame is marked as bad, that frame is dropped by the receive FIFO. If the receive
FIFO memory overflows, the frame currently being received is dropped, regardless of whether it
is a good or bad frame, and the signal rx_overflow is asserted.

tx_client_fifo

The tx_client_fifo is built around 2 Dual Port block RAMs, providing a total memory capacity of
4096 bytes of frame data. When a full frame has been written into the transmit FIFO, the FIFO
presents data to the MAC transmitter. On receiving the acknowledge signal from the Ethernet
MAC, the rest of the frame is transmitted providing there is no retransmit request output by
the Ethernet MAC. If a retransmission request is received, the frame is queued for
retransmission.




IPv4 to IPv6 Conversion Algorithm
Following diagram illustrates the timing diagram of an incoming IPv4 Ethernet packet and a
converted transmitting IPv6 packet.




Ethernet header is of 14 bytes and a IPv4 header is of 20 bytes in general but may greater than
that if optional fields exist. This is because IPv4 header is termed as ‘x’ bytes in the above
diagram. IPv6 header consists of a fixed amount 40 bytes. Our Verilog code reads a byte of data
in each clock cycle. We read the required fields of the IPv4 header and the Ethernet header
within 34 clocks and start sending the IPv6 packet after 36 clocks giving extra clock for data to
be ready to form the IPv6 packet.



IPv6 to IPv4 Conversion Algorithm
Following diagram illustrates the timing diagram of an incoming IPv6 Ethernet packet and a
converted transmitting IPv4 packet.




Verilog code reads the required fields of Ethernet and IPv4 header within 34 clocks and start
sending the IPv4 packet after 36 clocks. Here converted IPv4 header has only 20 bytes because
in our algorithm, we do not create optional fields for IPv4 header.



Header Mapping
IPv4 & IPv6 headers have similarities and dissimilarities though they are used as the layer three
protocols for IP communication. Therefore one to one mapping is impossible. Following table
shows similar fields used in IPv4 & IPv6 headers though have termed using different names.
Ether Type is a layer two field which is used to indicate the layer 3 protocol.

                IPv4IPV4                                        IPv6
Ether Type: 0x0800                          Ether Type:0x86dd
Version = 4                                 Version = 6
DSCP, ECN                                   Traffic class
Header Length, Total Length                 Payload Length
Protocol                                    Next Header
Time to Live                                Hop Limit
Ipv4 address                                Ipv6 address


Static NAT Table
A NAT64 server can be implemented on two ways: static & dynamic. We chose static mapping
mechanism and the following table illustrates how mapping is done between IPv4 & IPv6
addresses.

                          IPv4                     IPv6
                          200.2.2.2                2000:2000:2000:2000:2000:2000:2000:2000
                          200.3.3.3                3000:3000:3000:3000:3000:3000:3000:3000
                          200.4.4.4                4000:4000:4000:4000:4000:4000:4000:4000
                          200.5.5.5                5000:5000:5000:5000:5000:5000:5000:5000
Default Source            200.6.6.6                6000:6000:6000:6000:6000:6000:6000:6000
Address
Broadcast Address         200.255.255.255          ff02::1
Multicast(to all hosts)   224.0.0.2                ff02::1
Multicast(to all          224.0.0.2                ff02::2
routers)
Unspecified               0.0.0.0                  ::
Loopback Address          127.0.0.1                ::1
Hardware Debug Tools
ChipScope Pro Analyzer

We use ‘ChipScope Pro Inserter flow’ to capture signals of our project while the FPGA is
being in operation.
Wireshark

   We used this packet sniffer software application to capture the sent and received packets in
   our PC which acts as the IPv4 & IPv6 to test and identify problems in implementation.




Challenges
      NAT64 server needs two ports to connect the IPv6 and IPv4 sides to the interface. But
       Virtex-5 FPGA board consists only one Ethernet port. As a solution we implemented the
       system only using the available port and same machine to be acted as IPv4 & IPv6 sides.
      Virtex-5 device designs of Tri-mode Ethernet MAC require a Verilog LRM-IEEE 1364-2005
       encryption - compliant simulator such as,
       o ModelSIM v6.6d
       o Cadence Incisive Enterprise Simulator(IES) 10.2
       o Synopsys VCS and VCS MX 2010.06


None of these simulators have free versions. So, we did not perform functional or timing
simulations for our project. Instead, we had to use hardware debug tools. Hardware debugging
is time consuming because we had to synthesize, implement and generate the program file
each time we debug the design.

More Related Content

What's hot (20)

Arp and rarp
Arp and rarpArp and rarp
Arp and rarp
 
Address resolution protocol
Address resolution protocolAddress resolution protocol
Address resolution protocol
 
Bootp and dhcp
Bootp and dhcpBootp and dhcp
Bootp and dhcp
 
Address resolution protocol (ARP)
Address resolution protocol (ARP)Address resolution protocol (ARP)
Address resolution protocol (ARP)
 
Chap2. ipv4-arp-icmp
Chap2. ipv4-arp-icmpChap2. ipv4-arp-icmp
Chap2. ipv4-arp-icmp
 
Arp
ArpArp
Arp
 
Part 12 : Local Area Networks
Part 12 : Local Area Networks Part 12 : Local Area Networks
Part 12 : Local Area Networks
 
Arp (address resolution protocol)
Arp (address resolution protocol)Arp (address resolution protocol)
Arp (address resolution protocol)
 
Ipv6 cheat sheet
Ipv6 cheat sheetIpv6 cheat sheet
Ipv6 cheat sheet
 
Presentation on arp protocol
Presentation on arp protocolPresentation on arp protocol
Presentation on arp protocol
 
ARP
ARPARP
ARP
 
Arp and rarp
Arp and rarpArp and rarp
Arp and rarp
 
12 ethernet-wifi
12 ethernet-wifi12 ethernet-wifi
12 ethernet-wifi
 
Arp config-arp
Arp config-arpArp config-arp
Arp config-arp
 
10 routing-bgp
10 routing-bgp10 routing-bgp
10 routing-bgp
 
Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6
 
IPv6 im Jahre 2018
IPv6 im Jahre 2018IPv6 im Jahre 2018
IPv6 im Jahre 2018
 
IPv6_Quick_Start_Guide
IPv6_Quick_Start_GuideIPv6_Quick_Start_Guide
IPv6_Quick_Start_Guide
 
IPv6 Entreprise Multihoming
IPv6 Entreprise MultihomingIPv6 Entreprise Multihoming
IPv6 Entreprise Multihoming
 
Internet control message protocol
Internet control message protocolInternet control message protocol
Internet control message protocol
 

Viewers also liked

SW Engineering Primer for MBAs
SW Engineering Primer for MBAsSW Engineering Primer for MBAs
SW Engineering Primer for MBAsAmir Taichman
 
Visual highlights- KaDaWe and Kaisers
Visual highlights- KaDaWe and KaisersVisual highlights- KaDaWe and Kaisers
Visual highlights- KaDaWe and KaisersVictoria Barnett
 
Buurtgerichte zorg - Olivia Vanmechelen en Bart Denys
Buurtgerichte zorg - Olivia Vanmechelen en Bart DenysBuurtgerichte zorg - Olivia Vanmechelen en Bart Denys
Buurtgerichte zorg - Olivia Vanmechelen en Bart DenysVoka Health Community
 
On the nature of the enterprise architecture capability
On the nature of the enterprise architecture capabilityOn the nature of the enterprise architecture capability
On the nature of the enterprise architecture capabilityFrederick Halas
 
Ethical and cognitive
Ethical and cognitiveEthical and cognitive
Ethical and cognitiveAkash Kumar
 
Lean manufacturing principles
Lean manufacturing principlesLean manufacturing principles
Lean manufacturing principlesRodrigo Garcia
 
Focus of shandong longlive's xos sales may turn to overseas markets
Focus of shandong longlive's xos sales may turn to overseas marketsFocus of shandong longlive's xos sales may turn to overseas markets
Focus of shandong longlive's xos sales may turn to overseas marketsCCM Intelligence
 
Enterprise transformation - What is transformed?
Enterprise transformation - What is transformed?Enterprise transformation - What is transformed?
Enterprise transformation - What is transformed?Frederick Halas
 
BAAL-CUP/COST Seminar
BAAL-CUP/COST Seminar BAAL-CUP/COST Seminar
BAAL-CUP/COST Seminar Gwennan Higham
 
Architecture_From_Baseline_To_Planning
Architecture_From_Baseline_To_PlanningArchitecture_From_Baseline_To_Planning
Architecture_From_Baseline_To_PlanningFrederick Halas
 
Open Source: A New Software Paradigm
Open Source: A New Software ParadigmOpen Source: A New Software Paradigm
Open Source: A New Software ParadigmYe Joo Park
 
How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)Ye Joo Park
 
Dendistry paint through writing
Dendistry paint through writingDendistry paint through writing
Dendistry paint through writingRon Scutt
 
Revision control system (RCS)
Revision control system (RCS)Revision control system (RCS)
Revision control system (RCS)Abu Sufian
 
柏瑞週報20160301
柏瑞週報20160301柏瑞週報20160301
柏瑞週報20160301Pinebridge
 
Presentación de Nietzsche
Presentación de NietzschePresentación de Nietzsche
Presentación de Nietzscherocio1991
 

Viewers also liked (19)

SW Engineering Primer for MBAs
SW Engineering Primer for MBAsSW Engineering Primer for MBAs
SW Engineering Primer for MBAs
 
Visual highlights- KaDaWe and Kaisers
Visual highlights- KaDaWe and KaisersVisual highlights- KaDaWe and Kaisers
Visual highlights- KaDaWe and Kaisers
 
Jessica Baker Resume
Jessica Baker ResumeJessica Baker Resume
Jessica Baker Resume
 
Buurtgerichte zorg - Olivia Vanmechelen en Bart Denys
Buurtgerichte zorg - Olivia Vanmechelen en Bart DenysBuurtgerichte zorg - Olivia Vanmechelen en Bart Denys
Buurtgerichte zorg - Olivia Vanmechelen en Bart Denys
 
On the nature of the enterprise architecture capability
On the nature of the enterprise architecture capabilityOn the nature of the enterprise architecture capability
On the nature of the enterprise architecture capability
 
Ethical and cognitive
Ethical and cognitiveEthical and cognitive
Ethical and cognitive
 
Lean manufacturing principles
Lean manufacturing principlesLean manufacturing principles
Lean manufacturing principles
 
Focus of shandong longlive's xos sales may turn to overseas markets
Focus of shandong longlive's xos sales may turn to overseas marketsFocus of shandong longlive's xos sales may turn to overseas markets
Focus of shandong longlive's xos sales may turn to overseas markets
 
Enterprise transformation - What is transformed?
Enterprise transformation - What is transformed?Enterprise transformation - What is transformed?
Enterprise transformation - What is transformed?
 
BAAL-CUP/COST Seminar
BAAL-CUP/COST Seminar BAAL-CUP/COST Seminar
BAAL-CUP/COST Seminar
 
Architecture_From_Baseline_To_Planning
Architecture_From_Baseline_To_PlanningArchitecture_From_Baseline_To_Planning
Architecture_From_Baseline_To_Planning
 
Open Source: A New Software Paradigm
Open Source: A New Software ParadigmOpen Source: A New Software Paradigm
Open Source: A New Software Paradigm
 
How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)
 
Dendistry paint through writing
Dendistry paint through writingDendistry paint through writing
Dendistry paint through writing
 
Revision control system (RCS)
Revision control system (RCS)Revision control system (RCS)
Revision control system (RCS)
 
柏瑞週報20160301
柏瑞週報20160301柏瑞週報20160301
柏瑞週報20160301
 
Presentación de Nietzsche
Presentación de NietzschePresentación de Nietzsche
Presentación de Nietzsche
 
Nietzsche.ppt
Nietzsche.pptNietzsche.ppt
Nietzsche.ppt
 
Sarampion
SarampionSarampion
Sarampion
 

Similar to NAT 64 FPGA Implementation

Performance Analysis of Ipv4 Ipv6 Transition Techniques
Performance Analysis of Ipv4 Ipv6 Transition TechniquesPerformance Analysis of Ipv4 Ipv6 Transition Techniques
Performance Analysis of Ipv4 Ipv6 Transition TechniquesAndy Juan Sarango Veliz
 
Lecture 5 internet-protocol_assignments
Lecture 5 internet-protocol_assignmentsLecture 5 internet-protocol_assignments
Lecture 5 internet-protocol_assignmentsSerious_SamSoul
 
Whitepaper: Network transitioning from IPv4 to IPv6 Document - Happiest Minds
Whitepaper: Network transitioning from IPv4 to IPv6 Document - Happiest MindsWhitepaper: Network transitioning from IPv4 to IPv6 Document - Happiest Minds
Whitepaper: Network transitioning from IPv4 to IPv6 Document - Happiest MindsHappiest Minds Technologies
 
Ipv4 over ipv6 by Jigar Tarsariya
Ipv4 over ipv6 by Jigar TarsariyaIpv4 over ipv6 by Jigar Tarsariya
Ipv4 over ipv6 by Jigar TarsariyaJigar Tarsariya
 
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud TenantImplementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud TenantShixiong Shang
 
ether channel_hsrp
ether channel_hsrpether channel_hsrp
ether channel_hsrpnewbie2019
 
Why We Need IPv6
Why We Need IPv6Why We Need IPv6
Why We Need IPv6Netwax Lab
 
Gohil-Network layer & Address Resolution Protocol.pptx
Gohil-Network layer & Address Resolution Protocol.pptxGohil-Network layer & Address Resolution Protocol.pptx
Gohil-Network layer & Address Resolution Protocol.pptxJuvil2
 
Operational Issues inIPv6 --from vendors' point of view--
Operational Issues inIPv6 --from vendors' point of view--Operational Issues inIPv6 --from vendors' point of view--
Operational Issues inIPv6 --from vendors' point of view--Shinsuke SUZUKI
 
Internet Protocol Version 6 By Suvo 2002
Internet Protocol Version 6 By Suvo 2002Internet Protocol Version 6 By Suvo 2002
Internet Protocol Version 6 By Suvo 2002suvobgd
 
SVR401: DirectAccess Technical Drilldown, Part 1 of 2: IPv6 and transition te...
SVR401: DirectAccess Technical Drilldown, Part 1 of 2: IPv6 and transition te...SVR401: DirectAccess Technical Drilldown, Part 1 of 2: IPv6 and transition te...
SVR401: DirectAccess Technical Drilldown, Part 1 of 2: IPv6 and transition te...Louis Göhl
 
Deploying IPv6 in OpenStack Environments
Deploying IPv6 in OpenStack EnvironmentsDeploying IPv6 in OpenStack Environments
Deploying IPv6 in OpenStack EnvironmentsShannon McFarland
 

Similar to NAT 64 FPGA Implementation (20)

Nat64 server
Nat64 serverNat64 server
Nat64 server
 
Performance Analysis of Ipv4 Ipv6 Transition Techniques
Performance Analysis of Ipv4 Ipv6 Transition TechniquesPerformance Analysis of Ipv4 Ipv6 Transition Techniques
Performance Analysis of Ipv4 Ipv6 Transition Techniques
 
Ipv6
Ipv6Ipv6
Ipv6
 
Lecture 5 internet-protocol_assignments
Lecture 5 internet-protocol_assignmentsLecture 5 internet-protocol_assignments
Lecture 5 internet-protocol_assignments
 
IPv6
IPv6IPv6
IPv6
 
Whitepaper: Network transitioning from IPv4 to IPv6 Document - Happiest Minds
Whitepaper: Network transitioning from IPv4 to IPv6 Document - Happiest MindsWhitepaper: Network transitioning from IPv4 to IPv6 Document - Happiest Minds
Whitepaper: Network transitioning from IPv4 to IPv6 Document - Happiest Minds
 
Ipv4 over ipv6 by Jigar Tarsariya
Ipv4 over ipv6 by Jigar TarsariyaIpv4 over ipv6 by Jigar Tarsariya
Ipv4 over ipv6 by Jigar Tarsariya
 
Introduction to TCP/IP
Introduction to TCP/IPIntroduction to TCP/IP
Introduction to TCP/IP
 
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud TenantImplementing an IPv6 Enabled Environment for a Public Cloud Tenant
Implementing an IPv6 Enabled Environment for a Public Cloud Tenant
 
ether channel_hsrp
ether channel_hsrpether channel_hsrp
ether channel_hsrp
 
Why We Need IPv6
Why We Need IPv6Why We Need IPv6
Why We Need IPv6
 
Gohil-Network layer & Address Resolution Protocol.pptx
Gohil-Network layer & Address Resolution Protocol.pptxGohil-Network layer & Address Resolution Protocol.pptx
Gohil-Network layer & Address Resolution Protocol.pptx
 
Introduction to IPv6
Introduction to IPv6Introduction to IPv6
Introduction to IPv6
 
Operational Issues inIPv6 --from vendors' point of view--
Operational Issues inIPv6 --from vendors' point of view--Operational Issues inIPv6 --from vendors' point of view--
Operational Issues inIPv6 --from vendors' point of view--
 
Ipv4 & ipv6
Ipv4 & ipv6Ipv4 & ipv6
Ipv4 & ipv6
 
Nnnnnn
NnnnnnNnnnnn
Nnnnnn
 
Internet Protocol Version 6 By Suvo 2002
Internet Protocol Version 6 By Suvo 2002Internet Protocol Version 6 By Suvo 2002
Internet Protocol Version 6 By Suvo 2002
 
Ipv6 Alp
Ipv6 AlpIpv6 Alp
Ipv6 Alp
 
SVR401: DirectAccess Technical Drilldown, Part 1 of 2: IPv6 and transition te...
SVR401: DirectAccess Technical Drilldown, Part 1 of 2: IPv6 and transition te...SVR401: DirectAccess Technical Drilldown, Part 1 of 2: IPv6 and transition te...
SVR401: DirectAccess Technical Drilldown, Part 1 of 2: IPv6 and transition te...
 
Deploying IPv6 in OpenStack Environments
Deploying IPv6 in OpenStack EnvironmentsDeploying IPv6 in OpenStack Environments
Deploying IPv6 in OpenStack Environments
 

NAT 64 FPGA Implementation

  • 1. EN3020 - Digital System Design Group Project NAT64 SERVER D.P.G.S.R Fernando 080104U I.U. Liyanage 080269D J.R.Kodagoda 080238H R.S.A De Silva 080073v
  • 2. OVERVIEW Our core objective is to build an interface which connects a set of ipv4 clients to a set of ipv6 servers and vice versa. IPv6 was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 running out of addresses. Until IPv6 completely supplants IPv4, a number of transition mechanisms are needed to enable IPv6-only hosts to reach IPv4 services and to allow isolated IPv6 hosts and networks to reach each-other over IPv4-only infrastructure. NAT64 is a mechanism used for such needs and is valuable in present. PROCEDURE Work flow of our project is as follows.  Implementing the Tri-mode Ethernet mac-wrapper  Implement the IPv4 to IPv6 conversion algorithm  Implemented the IPv6 to IPv4 conversion algorithm  Combine two algorithms to get the NAT64 module
  • 3. Tri-Mode Ethernet MAC-Wrapper First of all, we had to implement the Ethernet MAC layer in a FPGA evaluation board. But soft- Ethernet MAC cores are not freely available. Therefore we had to use either Vertex 5 or Vertex 6 in which Ethernet MAC cores are available. Therefore we had to choose Vertex 5 from the three choices, Virtex-5, Virtex-2 and Altera. But in order to make the core functional, we had to use tri-mode Ethernet MAC-wrapper which is free in the Xilinx Core generator. Tri-Mode Ethernet MAC wrapper consists of 2 components.  Block Level Wrapper  Local Link Wrapper o rx_client_fifo o tx_client_fifo rx_client_fifo The rx_client_fifo is built around 2 Dual Port block RAMs, providing a total memory capacity of 4096 bytes of frame data. The receive FIFO writes in data received through the Ethernet MAC. If
  • 4. the frame is marked as good, that frame is presented on the LocalLink interface for reading by the user. If the frame is marked as bad, that frame is dropped by the receive FIFO. If the receive FIFO memory overflows, the frame currently being received is dropped, regardless of whether it is a good or bad frame, and the signal rx_overflow is asserted. tx_client_fifo The tx_client_fifo is built around 2 Dual Port block RAMs, providing a total memory capacity of 4096 bytes of frame data. When a full frame has been written into the transmit FIFO, the FIFO presents data to the MAC transmitter. On receiving the acknowledge signal from the Ethernet MAC, the rest of the frame is transmitted providing there is no retransmit request output by the Ethernet MAC. If a retransmission request is received, the frame is queued for retransmission. IPv4 to IPv6 Conversion Algorithm Following diagram illustrates the timing diagram of an incoming IPv4 Ethernet packet and a converted transmitting IPv6 packet. Ethernet header is of 14 bytes and a IPv4 header is of 20 bytes in general but may greater than that if optional fields exist. This is because IPv4 header is termed as ‘x’ bytes in the above diagram. IPv6 header consists of a fixed amount 40 bytes. Our Verilog code reads a byte of data in each clock cycle. We read the required fields of the IPv4 header and the Ethernet header
  • 5. within 34 clocks and start sending the IPv6 packet after 36 clocks giving extra clock for data to be ready to form the IPv6 packet. IPv6 to IPv4 Conversion Algorithm Following diagram illustrates the timing diagram of an incoming IPv6 Ethernet packet and a converted transmitting IPv4 packet. Verilog code reads the required fields of Ethernet and IPv4 header within 34 clocks and start sending the IPv4 packet after 36 clocks. Here converted IPv4 header has only 20 bytes because in our algorithm, we do not create optional fields for IPv4 header. Header Mapping IPv4 & IPv6 headers have similarities and dissimilarities though they are used as the layer three protocols for IP communication. Therefore one to one mapping is impossible. Following table shows similar fields used in IPv4 & IPv6 headers though have termed using different names. Ether Type is a layer two field which is used to indicate the layer 3 protocol. IPv4IPV4 IPv6 Ether Type: 0x0800 Ether Type:0x86dd Version = 4 Version = 6 DSCP, ECN Traffic class Header Length, Total Length Payload Length
  • 6. Protocol Next Header Time to Live Hop Limit Ipv4 address Ipv6 address Static NAT Table A NAT64 server can be implemented on two ways: static & dynamic. We chose static mapping mechanism and the following table illustrates how mapping is done between IPv4 & IPv6 addresses. IPv4 IPv6 200.2.2.2 2000:2000:2000:2000:2000:2000:2000:2000 200.3.3.3 3000:3000:3000:3000:3000:3000:3000:3000 200.4.4.4 4000:4000:4000:4000:4000:4000:4000:4000 200.5.5.5 5000:5000:5000:5000:5000:5000:5000:5000 Default Source 200.6.6.6 6000:6000:6000:6000:6000:6000:6000:6000 Address Broadcast Address 200.255.255.255 ff02::1 Multicast(to all hosts) 224.0.0.2 ff02::1 Multicast(to all 224.0.0.2 ff02::2 routers) Unspecified 0.0.0.0 :: Loopback Address 127.0.0.1 ::1
  • 7. Hardware Debug Tools ChipScope Pro Analyzer We use ‘ChipScope Pro Inserter flow’ to capture signals of our project while the FPGA is being in operation.
  • 8. Wireshark We used this packet sniffer software application to capture the sent and received packets in our PC which acts as the IPv4 & IPv6 to test and identify problems in implementation. Challenges  NAT64 server needs two ports to connect the IPv6 and IPv4 sides to the interface. But Virtex-5 FPGA board consists only one Ethernet port. As a solution we implemented the system only using the available port and same machine to be acted as IPv4 & IPv6 sides.  Virtex-5 device designs of Tri-mode Ethernet MAC require a Verilog LRM-IEEE 1364-2005 encryption - compliant simulator such as, o ModelSIM v6.6d o Cadence Incisive Enterprise Simulator(IES) 10.2 o Synopsys VCS and VCS MX 2010.06 None of these simulators have free versions. So, we did not perform functional or timing simulations for our project. Instead, we had to use hardware debug tools. Hardware debugging
  • 9. is time consuming because we had to synthesize, implement and generate the program file each time we debug the design.