IXP: Bump in the Wire IXP: Bump in the Wire INF5063: Programming Asymmetric Multi-Core Processors 15 April 2015.

Slides:



Advertisements
Similar presentations
IP Router Architectures. Outline Basic IP Router Functionalities IP Router Architectures.
Advertisements

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Introduction Introduction 28/ INF5063: Programming heterogeneous multi-core processors.
A First Example: The Bump in the Wire A First Example: The Bump in the Wire 9/ INF5061: Multimedia data communication using network processors.
A First Example: The Bump in the Wire A First Example: The Bump in the Wire 8/ INF5062: Programming Asymmetric Multi-Core Processors.
CISCO NETWORKING ACADEMY Chabot College ELEC Transport Layer (4)
IXP: The Bump in the Wire IXP: The Bump in the Wire INF5062: Programming Asymmetric Multi-Core Processors 22 April 2015.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
Instructor: Sam Nanavaty TCP/IP protocol. Instructor: Sam Nanavaty Version – Allows for the evolution of the protocol IHL (Internet header length) – Length.
CP476 Internet Computing TCP/IP 1 Lecture 3. TCP / IP Objective: A in-step look at TCP/IP Purposes and operations Header specifications Implementations.
Chapter 8 Hardware Conventional Computer Hardware Architecture.
CS335 Networking & Network Administration Tuesday, May 11, 2010.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
Oct 19, 2004CS573: Network Protocols and Standards1 IP: Datagram and Addressing Network Protocols and Standards Autumn
Institute of Technology Sligo - Dept of Computing Semester 2 Chapter 9 The TCP/IP Protocol Suite Paul Flynn.
Chapter 3 Review of Protocols And Packet Formats
ECE 526 – Network Processing Systems Design IXP XScale and Microengines Chapter 18 & 19: D. E. Comer.
Chapter 9 Classification And Forwarding. Outline.
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Chapter 4 Queuing, Datagrams, and Addressing
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
Network Layer Moving datagrams. How do it know? Tom-Tom.
Introduction Introduction 1/ INF5062: Programming asymmetric multi-core processors.
Petrozavodsk State University, Alex Moschevikin, 2003NET TECHNOLOGIES Internet Control Message Protocol ICMP author -- J. Postel, September The purpose.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Network Layer ICMP and fragmentation.
Computer Science and Engineering Computer System Security CSE 5339/7339 Session 24 November 11, 2004.
Network Protocols.
Introduction Introduction 2/ INF5061: Multimedia data communication using network processors.
Lecture 3 Review of Internet Protocols Transport Layer.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
IP Forwarding.
10/13/20151 TCP/IP Transmission Control Protocol Internet Protocol.
The Saigon CTT Semester 1 CHAPTER 10 Le Chi Trung.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
1 IP : Internet Protocol Computer Network System Sirak Kaewjamnong.
Review the key networking concepts –TCP/IP reference model –Ethernet –Switched Ethernet –IP, ARP –TCP –DNS.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Local-Area-Network (LAN) Architecture Department of Computer Science Southern Illinois University Edwardsville Fall, 2013 Dr. Hiroshi Fujinoki
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Layer 3: Internet Protocol.  Content IP Address within the IP Header. IP Address Classes. Subnetting and Creating a Subnet. Network Layer and Path Determination.
Lecture 22 Network Security CS 450/650 Fundamentals of Integrated Computer Security Slides are modified from Hesham El-Rewini.
Networks and Protocols CE Week 7b. Routing an Overview.
Lab Assignment 15/ INF5060: Multimedia data communication using network processors.
Cisco Networking Academy S2 C9 TCP/IP. ensure communication across any set of interconnected networks Stack components such as protocols to support file.
Internet Protocol Formats. IP (V4) Packet byte 0 byte1 byte 2 byte 3 data... – up to 65 K including heading info Version IHL Serv. Type Total Length Identifcation.
Internet Protocols (chapter 18) CSE 3213 Fall 2011.
1 Bus topology network. 2 Data is sent to all computers, but only the destination computer accepts 02608c
1 CSE 5346 Spring Network Simulator Project.
IP Protocol CSE TCP/IP Concepts Connectionless Operation Internetworking involves connectionless operation at the level of the Internet Protocol.
UDP: User Datagram Protocol Chapter 12. Introduction Multiple application programs can execute simultaneously on a given computer and can send and receive.
Packet Switch Network Server client IP Ether IPTCPData.
Introduction Introduction September 26, 2016 INF5063: Programming heterogeneous multi-core processors.
Graciela Perera Department of Computer Science and Information Systems Slide 1 of 18 INTRODUCTION NETWORKING CONCEPTS AND ADMINISTRATION CSIS 3723 Graciela.
Instructor Materials Chapter 6: Network Layer
Dr. Richard Spillman Fall 2006
CS4470 Computer Networking Protocols
Reference Router on NetFPGA 1G
Chapter 6: Network Layer
What’s “Inside” a Router?
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Network Core and QoS.
Running A First Example: The Web Bumper
Computer Network Overview
Chapter 15. Internet Protocol
Chapter 4 Network Layer Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith Ross Addison-Wesley, April Network Layer.
Network Architecture Models: Layered Communications
Transport Layer 9/22/2019.
Network Core and QoS.
Presentation transcript:

IXP: Bump in the Wire IXP: Bump in the Wire INF5063: Programming Asymmetric Multi-Core Processors 15 April 2015

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Question:  Which is growing faster? −network bandwidth −processing power  Note: if network bandwidth is growing faster −CPU may be the bottleneck −need special-purpose hardware  Note: if processing power is growing faster −no problems with processing −network/busses will be bottlenecks

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Growth Of Technologies Mbps year Engineering rule: 1GHz general purpose CPU = 1Gbps network data rate Thus, software running on a general-purpose processor is insufficient to handle high-speed networks because the aggregate packet rate exceeds the capabilities of the CPU

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Network Processors: Main Idea Traditional system: - slow - resource demanding - shared with other operations Network processors: - a computer within the computer - special, programmable hardware - offloads host resources

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Explosion of Commercial Products 11 990  2000: network processors transformed from interesting curiosity to mainstream product −r−reduction in both overall costs and time to market −2−2002: over 30 vendors with a vide range of architectures −e−e.g., Multi-Chip Pipeline (Agere) Augmented RISC Processor (Alchemy) Embedded Processor Plus Coprocessors (Applied Micro Circuit Corporation) Pipeline of Homogeneous Processors (Cisco) Pipeline of Heterogeneous Processors (EZchip) Configurable Instruction Set Processors (Cognigine) Extensive And Diverse Processors (IBM) Flexible RISC Plus Coprocessors (Motorola) Internet Exchange Processor (Intel) …

Intel I II IXP1200 / 2400: A Short Overview

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo IXA: Internet Exchange Architecture  IXA is a broad term to describe the Intel network architecture (HW & SW, control- & data plane)  IXP: Internet Exchange Processor −processor that implements IXA −IXP1200 is the first IXP chip (4 versions) −IXP2xxx has now replaced the first version  IXP1200 basic features −1 embedded 232 MHz StrongARM −6 packet 232 MHz µengines −onboard memory −4 x 100 Mbps Ethernet ports −multiple, independent busses −low-speed serial interface −interfaces for external memory and I/O busses −…  IXP2400 basic features −1 embedded 600 MHz XScale −8 packet 600 MHz µengines −3 x 1 Gbps Ethernet ports −…

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo IXP2400 IXP2400 Architecture microengine 8 SRAM coprocessor FLASH DRAM SRAM access SDRAM access SCRATCH memory PCI access MSF access Embedded RISK CPU (XScale) PCI bus receive bus DRAM bus SRAM bus microengine 2 microengine 1 microengine 5 microengine 4 microengine 3 multiple independent internal buses slowport access … transmit bus RISC processor: - StrongArm  XScale MHz  600 MHz Microengines - 6  MHz  600 MHz Media Switch Fabric - forms fast path for transfers - interconnect for several IXP2xxx Receive/transmit buses - shared bus  separate busses Slowport - shared inteface to external units - used for FlashRom during bootstrap Coprocessors - hash unit - 4 timers - general purpose I/O pins - external JTAG connections (in-circuit tests) - several bulk cyphers (IXP2850 only) - checksum (IXP2850 only) - …

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo IXP2400 Basic Packet Processing microengine 8 SRAM coprocessor FLASH DRAM SRAM access SDRAM access SCRATCH memory PCI access MSF access Embedded RISK CPU (XScale) PCI bus receive bus DRAM bus SRAM bus microengine 2 microengine 1 microengine 5 microengine 4 microengine 3 multiple independent internal buses slowport access … transmit bus

Using IXP2400

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Intel IXP2400 Hardware Reference Manual

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Programming Model RX microblock TX microblock XScale microengines input ports output ports core component process microblock Scratch rings head tail metadata queue data buffers linked list logical mapping SRAM SDRAM

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Programming Model RX microblock TX microblock XScale microengines input ports output ports core component process microblock Hardware contexts Threads

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Framework  uclo −Microengine loader −Necessary to load your microengine code into the microengines at runtime  hal −Hardware abstraction layer −Mapping of physical memory into XScale processes’ virtual address space −Functions starting with hal  ossl −Operating system service layer −Limited abstraction from hardware specifics −Functions starting with ix_  rm −Resource manager −Layered on top of uclo and ossl −Memory and resource management all memory types and their features IPC, counters, hash −Functions starting with ix_

Bump in the Wire

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Bump in the Wire Internet Count web packets, count ICMP packets

Packet Headers and Encapsulation

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Ethernet describes content of ethernet frame, e.g., 0x0800 indicates an IP datagram, 0x0806 indicates an ARP packet 48 bit address configured to an interface on the NIC on the receiver 48 bit address configured to an interface on the NIC on the sender | Destination Address | | | | | Source address | | Frame type |

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Internet Protocol version 4 (IPv4) |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | | Options | Padding | indicates the format of the internet header, i.e., version 4 length of the internet header in 32 bit words, and thus points to the beginning of the data (minimum value of 5) datagram length (octets) including header and data - allows the length of 65,535 octets identifying value to aid assembly of fragments first zero, fragments allowed and last fragment indicate where this fragment belongs in datagram checksum on the header only – TCP, UDP over payload. Since some header fields change(TTL), this is recomputed and verified at each point indicates used transport layer protocol disable a packet to circulate forever,decrease value by at least 1 in each node – discarded if 0 32-bit address fields. May be configured differently from small to large networks options may extend the header – indicated by IHL. If the options do not end on a 32-bit boundary, the remaining fields are padded in the padding field (0’s) indication of the abstract parameters of the quality of service desired – somehow treat high precedence traffic as more important – tradeoff between low-delay, high-reliability, and high-throughput – NOT used, bits now reused for differential services code point

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Internet Control Message Protocol (ICMPv4) type-specific arbitrary length data Type of the control msg, including echo request (8) and echo reply (0) Checksum for the ICMP header only | Type | Code | header checksum | | data | Refinement | 8 | 0 | header checksum | | identifier | sequence number | | data | ICMP Echo Request Optional identifier, chosen by sender, echoed by receiver Optional sequence number, chosen by sender, echoed by receiver

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo UDP specifies the total length of the UDP datagram in octets contains a 1’s complement checksum over UDP packet and an IP pseudo header with source and destination address port to identify the sending application port to identify receiving application | Source Port | Destination Port | | Length | Checksum |

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo TCP port to identify the sending application port to identify receiving application contains a 1’s complement checksum over UDP packet and an IP pseudo header with source and destination address sequence number for data in payload acknowledgement for data received options may extend the header. If the options do not end on a 32-bit boundary, the remaining fields are padded in the padding field (0’s) header length in 32 bit units pointer to urgent data in segment code bits: urgent, ack, push, reset, syn, fin | Source Port | Destination Port | | Sequence Number | | Acknowledgment Number | | Header| |U|A|P|R|S|F| | | length| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | | Checksum | Urgent Pointer | | Options | Padding | receiver’s buffer size for additional data

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Encapsulation

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Identifying Web Packets These are the header fields you need for the web bumper: Ethernet type 0x800 IP type 6 TCP port 80

Lab Setup

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Lab Setup IXP lab Internet Student labswitch … ssh connection

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Lab Setup – Data Path IXP lab … switch IXP2400 PCI IO hub memory hub CPU memory hub interface system bus RAM interface web bumper (counting web packets and forwarding all packets from one interface to another) SSH connection to IFI:

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Lab Setup – Data Path IXP lab … switch IXP2400 IO hub memory hub CPU memory web bumper (counting web packets and forwarding all packets from one interface to another) SSH connection to IFI:

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo IXP 2400 The Web Bumper web bumper (counting web packets and forwarding all packets from one interface to another) web bumper wwbump (core) output port input port XScale microengines rx block processing encompasses all operations performed as packets arrive tx block processing encompasses all operations applied as packets depart rx microblock tx microblock wwbump (microblock) the wwbump core components checks a packet forwarded by the wwbump microblock count ping packet - add 1 to icmp counter send back to wwbump microblock the wwbump microblock checks all packets from rx block: if it is a ping or web packet: if web packet, add 1 to web counter and forward to tx block if ping packet, forward to wwbump core component if neither, forward to tx block The wwbump microblock forwards all packets from the wwbump core component to the tx block

INF5063, Carsten Griwodz, Håvard Espeland, Håkon Stensland & Pål Halvorsen University of Oslo Starting and Stopping OO n the host machine −L−Location of the example: / root/ixa/wwpingbump −R−Rebooting the IXP card: m ake reset −I−Installing the example: m ake install −T−Telnet to the card: telnet minicom screen /dev/ttyS OO n the card −T−To start the example:. /wwbump −T−To stop the example: C TRL-C LL et’s look at an example...