Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises.

Slides:



Advertisements
Similar presentations
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
Advertisements

Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises.
Institute of Computer Science Foundation for Research and Technology – Hellas Greece Computer Architecture and VLSI Systems Laboratory Exploiting Spatial.
Performance Evaluation of Open Virtual Routers M.Siraj Rathore
Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Dr. Abdul Waheed.
Embedded Transport Acceleration Intel Xeon Processor as a Packet Processing Engine Abhishek Mitra Professor: Dr. Bhuyan.
Detection of Promiscuous nodes Using Arp Packets By Engin Arslan.
Introduction An introduction to the software and organization of the Internet Lab.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises.
Lab 3 Department of Computer Science and Information Engineering National Taiwan University Lab3 - Cross Tools 2014/10/7/ 20 1.
Small Form Computing A bump in the wire. The questions ● What can we do with an inexpensive small computer? ● Can we make it a part of a seamless wireless.
1 Network Packet Generator Midway presentation Supervisor: Mony Orbach Presenting: Eugeney Ryzhyk, Igor Brevdo.
UKERNA IP Multicast Mini Workshop Intra-domain Multicast Hands-on Lab Exercises Networkshop 2006.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
High Performance Computing & Communication Research Laboratory 12/11/1997 [1] Hyok Kim Performance Analysis of TCP/IP Data.
Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises.
(1) A Beginner’s Quick Start to SIMICS. (2) Disclaimer This is a quick start document to help users get set up quickly Does not replace the user guide.
Hacker’s Strategies Revealed WEST CHESTER UNIVERSITY Computer Science Department Yuchen Zhou March 22, 2002.
Raw Sockets Vivek Ramachandran. A day in the life of Network Packet.
Lab 2: SSL Security Attack June 17, 2008 Hyun Jin Kim.
Srihari Makineni & Ravi Iyer Communications Technology Lab
Click to edit Master subtitle style
Chapter 9 Hardware Address & Frame Type Identification Hardware address of frame Addressing schemes Ethernet Frame header format.
Packet Capture and Analysis: An Introduction to Wireshark 1.
An Architecture and Prototype Implementation for TCP/IP Hardware Support Mirko Benz Dresden University of Technology, Germany TERENA 2001.
Module 1: Configuring Routing by Using Routing and Remote Access.
Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises (Lab 2: Sorting)
A record and replay mechanism using programmable network interface cards Laurent Lefèvre INRIA / LIP (UMR CNRS, INRIA, ENS, UCB)
Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises: Lab 5 (Deep Packet Inspection)
LRPC Firefly RPC, Lightweight RPC, Winsock Direct and VIA.
Authors: Danhua Guo 、 Guangdeng Liao 、 Laxmi N. Bhuyan 、 Bin Liu 、 Jianxun Jason Ding Conf. : The 4th ACM/IEEE Symposium on Architectures for Networking.
438 labs. Labs Lab 1: Refreshing C and Linux Programming 2 Lab 1: Refreshing C and Linux Programming 2 – First: Getting familiar with development.
Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises: Lab 4 (Network Packet Filtering)
Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises: Lab 1 (Performance measurement)
Architecture of a Proactive Security Tool Vivek Ramachandran.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Understanding Virtualization Overhead.
BTstack Youngho Oh. Table of contents  BTstack features  BTstack Architecture  Host Controller Interface(HCI)  Bluetooth Stack  BLE event task 
Mobile Packet Sniffer Ofer Borosh Vadim Lanzman Dr. Chen Avin
An Embedded Wireless Mini-Server with Database Support Presented by: Amit Kumar.
Chapter 3 Part 1 Switching and Bridging
Chapter 4: Threads Modified by Dr. Neerja Mhaskar for CS 3SH3.
6. The Open Network Lab Overview and getting started
Chapter4 Packet and Protocol.
Networks Problem Set 3 Due Nov 10 Bonus Date Nov 9
Introduction An introduction to the software and organization of the Internet Lab.
Current Generation Hypervisor Type 1 Type 2.
Chapter 3: Operating Systems
A Quick Guide to Ethereal/Wireshark
Cross Platform Development using Software Matrix
Cross-platform Libraries Technology Presentation
Lab 2 – Hub/Switch Data Link Layer
LAN Vulnerabilities.
Networks Problem Set 3 Due Oct 29 Bonus Date Oct 26
Traffic Analysis with Ethereal
Lab 2 – Hub/Switch Data Link Layer
IP Network Layer and Ethernet Encapsulation
Network Administration CNET-443
Advanced Network Training
Introduction An introduction to the software and organization of the Internet Lab.
An introduction to the organization of the Internet Lab
An introduction to the organization of the Internet Lab
Chapter 4: Threads.
Chapter 2: The Linux System Part 1
Half-Sync/Half-Async (HSHA) and Leader/Followers (LF) Patterns
An introduction to the organization of the Internet Lab
© 2012 Elsevier, Inc. All rights reserved.
Computer System Laboratory
Packet Sniffing and Spoofing
Presentation transcript:

Programming Multi-Core Processors based Embedded Systems A Hands-On Experience on Cavium Octeon based Platforms Lab Exercises

Lab # 3: Network Packet Sniffing 3-2

Lab Goals Objective Packet capture / filter / analyze - A case study Learning parallel programming using threads Utilizing many core systems efficiently Performance measurement Packet capture / filter / analyze - A case study We will use series of labs to achieve our objectives. Today's lab is about packet sniffing 3-3

Prerequisites Sniffing Mechanism Capturing of network packets arriving or departing from a network interface Mechanism We use raw sockets as follows rawSock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)) This system call picks every packet going out or coming in on an Ethernet interface 3-4

Prerequisites Testing You can use loop back device as a network interface Use Netperf or MPAC for traffic generation on the network interface 3-5

Lab Setup System 1 System 2 1 GigE Link 3-6 Sender Receiver 2 4 6 1 3 5 7 Sender Receiver Packet Sniffer 1 GigE Link System 1 System 2 Data Packets Core Packet Mapping to Cores 3-6

Sniffing Labs Framework One thread, called the dispatcher, sniffs the packets from the interface and puts it in one of the workers’ queues Filtering / Analysis Any kind of processing on a packet is the responsibility of the workers Each worker has its own queue or shared queue depending on sniffer application architecture Dispatcher assigns packets to worker queues 3-7

Sniffer Application Architecture MPAC packet sniffer version 1 Single queue Dispatcher can access whole queue Each worker thread can access only dedicated locations In-site sniffing No copying from dispatcher to worker space Each location access is mutually exclusive Controlled by a flag per location No locking overhead Get packet, if flag = 1 (workers) Location Access Function = Put packet, if flag = 0 (Dispatcher) 3-8

MPAC Packet Sniffer (Version 1) T1 T0 TN-1 Dispatcher putting space TN Dispatcher putting direction Workers getting direction TN Worker Threads 3-9

Lab 3 – Packet Sniffing Sniff a frame Objective This lab captures Ethernet packets which are destined to or departing from a specific interface Objective Can a dispatcher sniff at the line rate Hands on experience of plain sniffing Observing the base case performance of the dispatcher – worker model 3-10

Lab 3 - Sniffing Observations Observe the throughput performance with increasing number of threads Use core affinity and observe throughput 3-11

Cross Compile for Target System Cross Compile on Host System Go to Cavium SDK directory and run the command host$ source env-setup <OCTEON-MODEL> (where <OCTEON-MODEL> is the model of your target board. E.g. OCTEON_CN56XX) host$ cd /<path-to-mpac>/mpac_1.2 host$ ./configure --host=i386-redhat-linux-gnu --target=mips64-octeon-linux-gnu export CC=mips64-octeon-linux-gnu-gcc host$ make clean host$ make CC=mips64-octeon-linux-gnu-gcc 3-12

Run on target system Copy executable “mpac_net_bm” and “mpac_sniffer_app” from the directory mpac_1.2/apps/sniffer/sniffer_MQ_optimized/ on target system target$ ./mpac_net_bm –c <Receiver> –d <duration> –l <# of threads> target$ ./mpac_net_bm –c <Sender> –d <duration> –l <# of threads> -i <IP of Receiver> target$ ./mpac_sniffer_app –n<# of Threads> –d<duration> -f<interface to sniff> -e 3 3-13

Lab 3 – Sniffing (MPAC sniffer version 3) $ ./mpac_sniffer_app -f eth0 -d 30 -e 3 -q 1000 -n <# of Threads> $ ./mpac_sniffer_app -f lo -d 30 -e 3 -q 1000 -n <# of Threads> 3-14