FCC Ethernet UDP Forwarding using Microcode

Similar documents
Multi-Channel Controller

MSC8156 Ethernet Interface

Errata to the MPC8280 PowerQUICC II Family Reference Manual, Rev. 1

Fast Communications Controller

Freescale Semiconductor, I

Freescale Semiconductor, I CPM/CPU INTERACTION

AN4 QCA7000 SPI / UART Protocol

Multichannel DMA API User s Guide

Features nc. 1 Features The following outlines the user interface to the DSP functionality: ROM microcode library provides basic DSP routines for such

1 Detecting Boot Mode

Cisco IOS Switching Paths Overview

FCC in HDLC Mode. What you will learn 2-1

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

Using the MPC5777M MCAN Module to Exchange CAN FD Messages

440GX Application Note

Errata to the MPC8272 PowerQUICC II Family Reference Manual, Rev. 2

MA5400 IP Video Gateway. Introduction. Summary of Features

User Module. Modbus TCP2RTU. Application note

Lecture 3. The Network Layer (cont d) Network Layer 1-1

Lecture 8. Network Layer (cont d) Network Layer 1-1

Lecture 16: Router Design

CSE 473 Introduction to Computer Networks. Exam 1. Your name: 9/26/2013

The SpaceWire Transport Protocol. Stuart Mills, Steve Parkes University of Dundee. International SpaceWire Seminar 5 th November 2003

MSC8144 QUICC Engine Ethernet Extended Frame Filtering using Parse Command Descriptors (PCDs)

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

Quality of Service (QoS): Managing Bandwidth More Effectively

Introduction to Routers and LAN Switches

Network Driver for Microchip LAN7500 and LAN9500 User Guide

ip rsvp reservation-host

Chapter 11. User Datagram Protocol (UDP)

Frame Relay show Command and debug Command Enhancements

A Comparison of StarCore DSP Ethernet Controllers

MPC8260 PowerQUICC II IDMA Functionality Michael Johnston and Debbie Morrison NCSD Applications East Kilbride, Scotland

Performance Objects and Counters for the System

CS 457 Lecture 11 More IP Networking. Fall 2011

Cisco - Catalyst G-L3 Series Switches and WS-X4232-L3 Layer 3 Modules QoS FAQ

To access the web page for Cisco Desktop Collaboration Experience, perform these steps.

CALIFORNIA SOFTWARE LABS

SECTION 1 QUICC/POWERQUICC DIFFERENCES

Gigabit EasySmart Switches

SpiNNaker Application Programming Interface (API)

IMPORTANT DIFFERENCES

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

Monitoring the Cisco Unified IP Phone Remotely

Quality of Service Commands policy-map. This command has no default behavior or values.

Troubleshooting Input Drops on ATM Router Interfaces

Smart Managed PoE-Powered 5-Port Gigabit Switch

Chapter 6 Global CONFIG Commands

Ethernet TCP/IP component programming guide

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 11

CSCE 463/612 Networks and Distributed Processing Spring 2018

Examen final de Xarxes de Computadors (XC) 6/6/2011 NAME: SURNAME DNI:

Document Conventions nc. Page 2-4, 2.1.6: While MCBASE normally points to external RAM, it is permissible to set it up that some or all BDs will actua

Multichannel Communication Controller HDLC Superchannel Mode on the MPC8560

Interconnecting Networks with TCP/IP. 2000, Cisco Systems, Inc. 8-1

Radyne s SkyWire Gateway Quality of Service

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING

TOE40G-IP Introduction (Xilinx( Realize 40GbE limit speed!

Lecture 16: Network Layer Overview, Internet Protocol

Contents. Configuring LLDP 2

Adding a Second Ethernet Driver to NET+OS

Configuring SPAN and RSPAN

fair-queue aggregate-limit

Packet Header Formats

Overview of the Cisco Service Control Value Added Services Feature

Configuring global CAR 73 Overview 73 Configuring aggregate CAR 73 Configuration procedure 73 Configuration example 73

Real-Time Protocol (RTP)

SOLO NETWORK (11) (21) (31) (41) (48) (51) (61)

PLENA matrix API Table of contents en 3

Sections Describing Standard Software Features

Register Bit Name Description Default Global Ctrl Reg 2 SGCR2. Table 1. Registers are used for Common and Egress Port Setting

A Fast Ethernet Tester Using FPGAs and Handel-C

The Network Layer Forwarding Tables and Switching Fabric

LogiCORE IP AXI Ethernet v6.0

HPE FlexFabric 7900 Switch Series

SST DeviceNet Interface Cards

Message Passing Architecture in Intra-Cluster Communication

Chapter 4 Network Layer: The Data Plane

Rev /99. MPC8xx ATM Supplement to the MPC860/MPC850 PowerQUICC User s Manual

Vorlesung Kommunikationsnetze

Transport protocols Introduction

PPP to Ethernet Type A Interworking RAM Package Release 2.5.1

7010INT Data Communications Lecture 7 The Network Layer

1. Overview Ethernet FIT Module Outline of the API API Information... 5

Your Name: Your student ID number:

Quality of Service Setup Guide (NB14 Series)

Developer Information. Videohub. Includes Blackmagic Videohub Ethernet Protocol and Videohub RS-422 Protocol

Chapter 4 Network Layer: The Data Plane

Extreme TCP Speed on GbE

TCP/IP and the OSI Model

Configuring priority marking 63 Priority marking overview 63 Configuring priority marking 63 Priority marking configuration example 64

SIMPLE ROUTER PROJECT 2

BIG-IP Local Traffic Management: Basics. Version 12.1

CS 356: Computer Network Architectures. Lecture 10: IP Fragmentation, ARP, and ICMP. Xiaowei Yang

Light Mesh AP. User s Guide. 2009/2/20 v1.0 draft

Transport Protocols. Internet has broadly two types of transport protocols as shown in figure below:

Unit 2.

Application Notes for the ADTRAN NetVanta 3205 Access Router and Avaya IP Office Using PPP - Issue 1.0

Lecture 4 - Network Layer. Transport Layer. Outline. Introduction. Notes. Notes. Notes. Notes. Networks and Security. Jacob Aae Mikkelsen

Transcription:

FCC Ethernet UDP Forwarding using Microcode The demo microcode module only recognizes and passes UDP frames, and suppresses any none-udp frames (including ping). The full version enables the reception of all protocol types, phrases them to 8 Rx queues, and forwards selected UDP frames, based on IP and port number. If you wish to obtain a copy of the full version then please contact DoGav Systems. 1. PRODUCT DESCRIPTION This microcode module is an evaluation copy that illustrates the throughput boost of implementing microcode at the CPM level. It shows the speed and cost-effectiveness of microcode compared to the traditional methods of high-level code or costly, dedicated hardware. This module is applicable to any PQII or PQIII FCC channel that is configured to operate in an Ethernet mode. The microcode analyzes each incoming frame. If it s a UDP frame, the microcode then checks to see if the destination port number is listed as a looped back port in the port table. If so, the frame is forwarded by inserting it into the next available TxBD; otherwise it is discarded. If the frame is not UDP or is not assigned as loop-backed in the port table, it is discarded. In addition, the user can replace the DA MAC with user-selected MAC address. Any combination of the 64K ports can be dynamically selected as looped back. This microcode module is applicable to a single BD frame. The application must allocate long enough buffers to meet this limit and also adjust the MRBLR parameter accordingly. Page 1 of 6

While running under this microcode neither RxBD rings nor TxBD rings are available to the application. The microcode swaps exhausted buffers from the TxBD to the RxBD when forwarding a frame (if TxBD is not in Ready state). It can be tailored to specific requests. For example, the following enhancements can be implemented: Multiple RxBD rings. Each ring represents user-defined pattern (Protocols, VLAN, Ports, etc.). Multiple TxBD rings, to support user-defined priority. QoS (WFQ algorithm). Frames which span over a number of BD. Checksum check (IP & TCP/UDP header) of the incoming frames. Checksum calculation (IP & TCP/UDP header) of the outgoing frames. Changing the contents of any field in the outgoing frame s header. Answering ARP and PING automatically. Recognizing exact MAC addresses for more than a single address. Filtering out frames based on Ethernet type, IP type, port number, IP address, etc. Smart forwarding (queuing transmit requests and inserting them into the TxBD ring automatically). Extend forwarding to other protocols, such as TCP, RTP, etc. 2. MICROCODE STRUCTURE For this microcode module, the user must initialize a 64-byte structure. The structure must be located on the DPRAM with a 2-byte address that s divisible by 64. The address (the offset from DPRAM start) should be written to offset 0xFC of the relevant FCC parameter RAM. The following is the definition of the microcode structure: Offset Name Width Description 0x00 tmp_reg1 Word Microcode managed parameter; initialize to zero. 0x04 tmp_reg2 Word Microcode managed parameter; initialize to zero. 0x08 udp_table_addr Word Initialize to the address of the UDP forwarding table. The address must be aligned to 4 (divisible by 4). 0x0C udp_record Word Microcode managed parameter; initialize to zero. 0x10 tbase Word Initialize to the base address of the TxBD ring. Page 2 of 6

0x14 tbptr Word Holds the address of the current BD in the TxBD ring. Must be initialized to tbase. 0x18 tbd_stat Hword Microcode managed parameter; initialize to zero. 0x1A tbd_len Hword Microcode managed parameter; initialize to zero. 0x1C tbd_ptr Word Microcode managed parameter; initialize to zero. 0x20 mac_d Word Initialize this to the first 4 bytes of the MAC address that is inserted to the forwarded frame as destination address. The address should be written here in little-endian form. 0x24 mac_d2 Hword Initialize to the last 2 bytes of the MAC address that is inserted to the forwarded frame as destination address. The address should be written here in little-endian form. 0x26 discard_cnt Hword Counter of discarded frames due to lack of Tx BDs. Initialize to zero. 0x28 frdptr_org Word Microcode managed parameter; initialize to zero. 0x2C not_ip_frame_cn Hword Counter of discarded frames due to not being IP frames. t Initialize to zero. 0x2E not_udp_frame_ cnt Hword Counter of discarded frames due to not being UDP frames. Initialize to zero. 0x30 not_port_frwd_c Hword Counter of discarded frames which hold a port that is not nt enabled for forwarding. Initialize to zero. 0x32 forward_cnt Hword Counter of frames forwarded by microcode. Initialize to zero. 0x34 reserved1 Word Reserved; initialize to zero. 0x38 reserved2 Word Reserved; initialize to zero. 0x3C reserved3 Word Reserved; initialize to zero. 3. UDP PORT TABLE The received UDP frame s destination port number determines where frames will be forwarded. The user must initialize an 8-Kbytes table that resides in the external memory (typically the SDRAM). The table base address should be divisible by 4. Each bit in the table represents a UDP port. For example, bit 0 (the most significant bit) of the first byte represents port 0, and the most significant bit of the following byte represents port 8. Page 3 of 6

4. FCC BUFFER DESCRIPTORS This microcode requires that the user allocate buffers for all of the BD, both Rx and Tx, before enabling the FCC channel. After enabling the channel, the user should not alter the BD contents. 5. FCC REGISTERS The user can enable or disable the microcode. This is done with bit 7 in the FPSMR register of the relevant FCC channel. To enable this microcode, the user needs to turn on this bit (write a 1 to it). (In the manual, this bit is listed as reserved.) Once the microcode is installed and enabled, it is activated on all of the FCC channels that work in Fast Ethernet mode. 6. INSTALLATION 6.1. Package Contents This package comes as a ZIP compressed file which contains the following files: 1. InstallUcode.c This file contains two c functions, one for installation of the ucode and the other for uninstalling it. 2. InstallUcode.h This file contains function prototypes. 3. Eth_UDP_Forward_Freeware.h This file contains the c-array representing the ucode and defines of the trap addresses. 4. BasicDef.h This file contains definitions and typedefs required to compile the installation function. 5. UdpForward.h This file contains definitions of the structures which are mentioned in this document. 6. FCC Ethernet UDP Forwarding.pdf This document. 7. FCC Ethernet UDP Forwarding Evaluation License.pdf 6.2. Trap Usage This microcode module occupies three traps. Page 4 of 6

6.3. Installation Procedure The user should call the InstallUcode function at the earliest stage of the application. It MUST be called before initializing the FCC channels. The call should be made only once. 7. EXAMPLE This example shows how to initialize the structure and set some ports to loop-backed mode. void InitUdpForwarding() { SUDP_Forward *pudpforward; BD *pbd; int i; INT32 i32; // clean udp port table memset((void *) &Ports_Table, 0, sizeof(sudp_ports_table)); // enable port 20000 Ports_Table.Port_Entry[20000 / 8] = (0x80 >> 20000 % 8); // enable port 34955 Ports_Table.Port_Entry[34955 / 8] = (0x80 >> 34955 % 8); // set pointer to udp structure for microcode module pudpforward = (SUDP_Forward *) (IMMR_BASE + 0x1000); // clear structure memset(pudpforward, 0, sizeof(sudp_forward)); // set base address of TxBD ring pudpforward->tbase = (UINT32) TBASE_ADDR; pudpforward->tbptr = pudpforward->tbase; // set udp table address pudpforward->udp_table_addr = (UINT32) &Ports_Table; // set destination MAC address to swap, in little-endian form pudpforward->mac_d = 0x456E0C00; pudpforward->mac_d2 = 0xF2A6; // init TxBDs for (i = 0, pbd = (BD *) TBASE_ADDR ; i < FCCFAST_NUM_TXBD ; i++, pbd++) { // alloc buffer if ((i32 = (INT32) ALLOC_BUFF(FccFastEthPoolID, 1)) == ennobuff) { while (TRUE) i++; } pbd->ptr = (UINT8 *) i32; } // need here to turn on bit 7 of FPSMR register in relevant FCC } Page 5 of 6

ABOUT DOGAV SYSTEMS DoGav Systems is a leading provider of software and hardware consultancy and training services. It specializes in Freescale's processors, in particular the PowerQUICC family of communication processors. It has a proven track record of over 20 years supporting Freescale customers in developing market-leading products for the communications equipment market. DoGav Systems is Freescale s most experienced and active microcode developer. Since receiving its license in 2000, it has developed numerous customized microcode packages for both small and large Freescale customers. These packages are now successfully deployed in commercial products. In addition, DoGav Systems also offers more than 30 off-the-shelf microcode products for the PowerQUICC I, PowerQUICC II, PowerQUICC III and PowerQUICC II Pro processors. Page 6 of 6