I experiment on the kernel of linux environment.

Size: px
Start display at page:

Download "I experiment on the kernel of linux environment."

Transcription

1 I experiment on the kernel of linux environment. RX checksum offload ==================================== The linux kernel can t calculate TCP and UDP checksum if skb->ip_summed is CHECKSUM_UNNECESSARY. But the kernel always calculates the IP layer checksum whenever skb->ip_summed is any value. If you want that kernel doesn t calculate IP layer checksum, you have to modify the linux-<version>/net/ipv4/ip_input.c file. In linux/net/ipv4/ip_input.c int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt) #line 415 if (ip_fast_csum((u8 *)iph, iph->ihl)!= 0) goto inhdr_error; if (ip_fast_csum((u8 *)iph, iph->ihl)!= 0) goto inhdr_error; TX checksum offload ======================================== In the linux/include/linux/netdevice.h, the flag, (struct net_device *)dev->features, supports checksum offload capability. /* Net device features */ int features; #define NETIF_F_IP_CSUM 2 /* Can checksum only TCP/UDP over IPv4. */ #define NETIF_F_NO_CSUM 4 /* Does not require checksum. F.e. loopack. */ #define NETIF_F_HW_CSUM 8 /* Can checksum all the packets. */ When (struct net_device *)dev->features = NETIF_F_HW_CSUM, the TCP/UDP/IP checksum of packets were calculated by kernel. To eliminate the TCP/UDP/IP checksum overhand, we have to modify the kernel source. To have kernel stop the IP layer checksum calculation for transmit packet, we have to modify the source code here.

2 In linux/net/ipv4/ip_output.c inline void ip_send_check(struct iphdr *iph) iph->check = 0; int ip_build_xmit() # line 758: To have kernel stop the TCP checksum calculation for transmit packet, we have to modify the source code here. In linux/net/ipv4/tcp.c static inline int skb_add_data(struct sk_buff *skb, char *from, int copy) int err = 0; unsigned int csum; int off = skb->len; csum = csum_and_copy_from_user(from, skb_put(skb, copy),copy, 0, &err); csum = copy_from_user( skb_put(skb, copy),from,copy);

3 if (!err) kb->csum = csum_block_add(skb->csum, csum, off); kb->csum = csum_block_add(skb->csum, csum, off); return 0; skb_trim(skb, off); return -EFAULT; static inline int tcp_copy_to_page(struct sock *sk, char *from, struct sk_buff *skb, struct page *page, int off, int copy) int err = 0; unsigned int csum; csum = csum_and_copy_from_user(from, page_address(page)+off, copy, 0, &err); csum = copy_from_user(page_address(page)+off, from, copy); if (!err) skb->len); skb->len); if (skb->ip_summed == CHECKSUM_NONE) skb->csum = csum_block_add(skb->csum, csum, if (skb->ip_summed == CHECKSUM_NONE) skb->csum = csum_block_add(skb->csum, csum,

4 In linux/net/ipv4/tcp_ipv4.c /* This routine computes an IPv4 TCP checksum. */ void tcp_v4_send_check(struct sock *sk, struct tcphdr *th, int len, struct sk_buff *skb) if (skb->ip_summed == CHECKSUM_HW) th->check = ~tcp_v4_check(th, len, sk->saddr, sk->daddr, 0); skb->csum = offsetof(struct tcphdr, check); else th->check = tcp_v4_check(th, len, sk->saddr, sk->daddr, csum_partial((char *)th, th->doff<<2, skb->csum)); Is : if (skb->ip_summed == CHECKSUM_HW) static void tcp_v4_send_reset(struct sk_buff *skb) #line 1269 arg.csum = csum_tcpudp_nofold(skb->nh.iph->daddr, skb->nh.iph->saddr, /*XXX*/ sizeof(struct tcphdr), IPPROTO_TCP, 0); rg.csumoffset = offsetof(struct tcphdr, check) / 2; Is : arg.csum = 0; static void tcp_v4_send_ack(struct sk_buff *skb, u32 seq, u32 ack, u32 win, u32 ts) #line 1326

5 arg.csum = csum_tcpudp_nofold(skb->nh.iph->daddr, skb->nh.iph->saddr, arg.iov[0].iov_len, IPPROTO_TCP, 0); arg.csumoffset = offsetof(struct tcphdr, check) / 2; Is: arg.csum = 0; static int tcp_v4_send_synack(struct sock *sk, struct open_request *req, struct dst_entry *dst) #line 1430 th->check = tcp_v4_check(th, skb->len, req->af.v4_req.loc_addr, req->af.v4_req.rmt_addr, csum_partial((char *)th, skb->len, skb->csum)); th->check=0; To have kernel stop the UDP checksum calculation for transmit packet, we have to modify the source code here. In linux/net/ipv4/udp.c int udp_sendmsg(struct sock *sk, struct msghdr *msg, int len) #line 566 err = ip_build_xmit(sk, (sk->no_check == UDP_CSUM_NOXMIT? udp_getfrag_nosum :udp_getfrag), &ufh, ulen, &ipc, rt, msg->msg_flags); Is: sk->no_check = UDP_CSUM_NOXMIT; err = ip_build_xmit(sk, (sk->no_check == UDP_CSUM_NOXMIT? udp_getfrag_nosum :udp_getfrag), &ufh, ulen, &ipc, rt, msg->msg_flags);

6 How to build Linux kernel : =============================================== You can reference README in kernel tarball. -- If you install the full sources, put the kernel tarball in a directory where you have permissions (eg. your home directory) and unpack it: tar zxvf linux-<version>.tar.gz -- Make sure you have no stale.o files and dependencies lying around: cd linux-<version> make mrproper -- Do a "make menuconfig" to configure the basic kernel. Alternate configuration commands are: "make menuconfig" Text based color menus, radiolists & dialogs. "make xconfig" X windows based configuration tool. "make oldconfig" Default all questions based on the contents of your existing./.config file. -- Do a "make dep" to set up all the dependencies correctly. -- Do a "make bzimage" to create a compressed kernel image. -- If you configured any of the parts of the kernel as `modules', you will have to do "make modules" followed by "make modules_install". -- Copy the kernel image bzimage and System.map to /boot area. -- Modify boot management program (ex. LILO, GRUB, etc.) -- Reboot

I experiment on the kernel of linux environment.

I experiment on the kernel of linux environment. I experiment on the kernel of linux 2.6.10 environment. RX checksum offload ==================================== The linux kernel can t calculate TCP and UDP checksum if skb->ip_summed is CHECKSUM_UNNECESSARY.

More information

Linux Kernel Compilation

Linux Kernel Compilation Linux Kernel Compilation from source to running Muli Ben-Yehuda mulix@mulix.org IBM Haifa Research Labs Linux Kernel Development, TAU Linux Workshop, July 2003 p.1/9 introduction In this talk, I will talk

More information

12.0 Appendix tcpip.c. /* File name: tcpip.c This file just provides big buffer memory location For other modules to print */

12.0 Appendix tcpip.c. /* File name: tcpip.c This file just provides big buffer memory location For other modules to print */ 12.0 Appendix 12.1 tcpip.c /* File name: tcpip.c This file just provides big buffer memory location For other modules to print */ #include "module_header.h" char big_buffer[bufsize]="\0"; int init_module(){return

More information

Tutorial 2. Linux networking, sk_buff and stateless packet filtering. Roei Ben-Harush Check Point Software Technologies Ltd.

Tutorial 2. Linux networking, sk_buff and stateless packet filtering. Roei Ben-Harush Check Point Software Technologies Ltd. Tutorial 2 Linux networking, sk_buff and stateless packet filtering Agenda 1 Linux file system - networking 2 3 4 sk_buff Stateless packet filtering About next assignment 2 Agenda 1 Linux file system -

More information

UDP and the sendto Socket API

UDP and the sendto Socket API UDP and the sendto Socket API There are several mechanisms through which an application may use the socket API to initiate the transmission of a UDP datagram. We begin with a study of sendto() because

More information

There are three separate utilities for configuring Linux kernel and they are listed below: Command-line interface # make config. Figure 1.

There are three separate utilities for configuring Linux kernel and they are listed below: Command-line interface # make config. Figure 1. There are three separate utilities for configuring Linux kernel and they are listed below: Command-line interface # make config Character-based menu interface # make menuconfig Figure 1 Figure 2 X-window

More information

Networking Subsystem in Linux. Manoj Naik IBM Almaden Research Center

Networking Subsystem in Linux. Manoj Naik IBM Almaden Research Center Networking Subsystem in Linux Manoj Naik IBM Almaden Research Center Scope of the talk Linux TCP/IP networking layers Socket interfaces and structures Creating and using INET sockets Linux IP layer Socket

More information

XDP in Practice DDoS Gilberto Bertin

XDP in Practice DDoS Gilberto Bertin XDP in Practice DDoS Mitigation @Cloudflare Gilberto Bertin About me Systems Engineer at Cloudflare London DDoS Mitigation Team Enjoy messing with networking and Linux kernel Agenda Cloudflare DDoS mitigation

More information

jelly-near jelly-far

jelly-near jelly-far sudo./run Two interfaces created: os0, os1 Two networks created: (add to /etc/networks) peanut where os0 will connect 192.168.0.0 grape where os1 will connect 192.168.1.0 Two IP addresses in peanut: (add

More information

High Speed Packet Filtering on Linux

High Speed Packet Filtering on Linux past, present & future of High Speed Packet Filtering on Linux Gilberto Bertin $ whoami System engineer at Cloudflare DDoS mitigation team Enjoy messing with networking and low level things Cloudflare

More information

Operating System. Hanyang University. Hyunmin Yoon Operating System Hanyang University

Operating System. Hanyang University. Hyunmin Yoon Operating System Hanyang University Hyunmin Yoon (fulcanelli86@gmail.com) 2 Linux development ENVIRONMENT 2 3 References ubuntu documentation Kernel/Compile https://help.ubuntu.com/community/kernel/compile 3 4 Tools $ software-properties-gtk

More information

Building Customized Linux Kernels A live demonstration. Mark Post August 17, 2004 Session # 9280

Building Customized Linux Kernels A live demonstration. Mark Post August 17, 2004 Session # 9280 Building Customized Linux Kernels A live demonstration Mark Post August 17, 2004 Session # 9280 Documentation The Linux Documentation Project http://www.tldp.org/ Look for the Kernel HOWTO http://www.tldp.org/howto/kernel-howto/

More information

Stacked Vlan - Performance Improvement and Challenges

Stacked Vlan - Performance Improvement and Challenges Stacked Vlan - Performance Improvement and Challenges Toshiaki Makita NTT Open Source Software Center Today's topics Stacked vlan Performance Improvement and Challenges Interoperability Problem 2 Who is

More information

Lecture 1. Virtualization, Linux kernel (modules and networking) and Netfilter Winter 15/16. Roei Ben-Harush 2015

Lecture 1. Virtualization, Linux kernel (modules and networking) and Netfilter Winter 15/16. Roei Ben-Harush 2015 Lecture 1 Virtualization, Linux kernel (modules and networking) and Netfilter Winter 15/16 Agenda 1 2 3 4 Virtualization Linux kernel modules and networking Netfilter About first Assignment 2 Agenda 1

More information

Scripting Linux system calls with Lua. Lua Workshop 2018 Pedro Tammela CUJO AI

Scripting Linux system calls with Lua. Lua Workshop 2018 Pedro Tammela CUJO AI Scripting Linux system calls with Lua Pedro Tammela CUJO AI Scripting system calls Customizing system calls at the kernel level Why bother? Through scripts, users can adapt the operating system behavior

More information

Once Only Drop Capability in the Linux Routing Software

Once Only Drop Capability in the Linux Routing Software Once Only Drop Capability in the Linux Routing Software Submitted to the Department of Computer Science College of Computing Sciences New Jersey Institute of Technology in Partial Fulfillment of the Requirements

More information

Linux Networking Dietary Restrictions. David S. Miller (Red Hat Inc.)

Linux Networking Dietary Restrictions. David S. Miller (Red Hat Inc.) Linux Networking Dietary Restrictions David S. Miller (Red Hat Inc.) Small is Beautiful Critical Linux Networking Structures struct sk_buff struct dst_entry struct rtable 216 bytes 160 bytes 216 bytes

More information

===Socket API User/ OS interface === COP

===Socket API User/ OS interface === COP The COP (connection oriented reliable packet stream) protocol COP is a packet oriented transport protocol whose objective is to tame some aspects of the bad behavior of UDP. Application ===Socket API User/

More information

destination a (eth1)

destination a (eth1) ECE 4110 Lab 9: Configuring a Linux Machine as a Router and Modifying the Operating System Date Assigned: November 8, 2010 Due Date: November 15, 2010 Please note this is a much longer lab than the others

More information

Firewalling for Free: An Enterprise Firewall Without the Enterprise Price. Name: Shawn Grimes Date: November 25, 2001 Course: CT-401

Firewalling for Free: An Enterprise Firewall Without the Enterprise Price. Name: Shawn Grimes Date: November 25, 2001 Course: CT-401 Firewalling for Free: An Enterprise Firewall Without the Enterprise Price Name: Shawn Grimes Date: November 25, 2001 Course: CT-401 Table of Contents Introduction..1 Nature of Bridging Firewalls 1 Physical

More information

DPDK+eBPF KONSTANTIN ANANYEV INTEL

DPDK+eBPF KONSTANTIN ANANYEV INTEL x DPDK+eBPF KONSTANTIN ANANYEV INTEL BPF overview BPF (Berkeley Packet Filter) is a VM in the kernel (linux/freebsd/etc.) allowing to execute bytecode at various hook points in a safe manner. It is used

More information

Master thesis: A Linux implementation of MulTFRC

Master thesis: A Linux implementation of MulTFRC Master thesis: A Linux implementation of MulTFRC Adrian Jørgensen Master s Thesis Spring 2014 Master thesis: A Linux implementation of MulTFRC Adrian Jørgensen 19th May 2014 ii Abstract The use of multimedia

More information

Ex.no:2 Date: Kernel Configuration, Compilation and Installation

Ex.no:2 Date: Kernel Configuration, Compilation and Installation Ex.no:2 Date: Kernel Configuration, Compilation and Installation AIM: To download latest Linux kernel from the web configure the source, compile the kernel and install the kernel in client machine. Procedure:

More information

Operating Systems. 17. Sockets. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Operating Systems. 17. Sockets. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski Operating Systems 17. Sockets Paul Krzyzanowski Rutgers University Spring 2015 1 Sockets Dominant API for transport layer connectivity Created at UC Berkeley for 4.2BSD Unix (1983) Design goals Communication

More information

A practical introduction to XDP

A practical introduction to XDP A practical introduction to XDP Jesper Dangaard Brouer (Red Hat) Andy Gospodarek (Broadcom) Linux Plumbers Conference (LPC) Vancouver, Nov 2018 1 What will you learn? Introduction to XDP and relationship

More information

FreeBSD Network Stack Optimizations for Modern Hardware

FreeBSD Network Stack Optimizations for Modern Hardware FreeBSD Network Stack Optimizations for Modern Hardware Robert N. M. Watson FreeBSD Foundation EuroBSDCon 2008 Introduction Hardware and operating system changes TCP input and output paths Hardware offload

More information

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich XXX Tolerating Malicious Drivers in Linux Silas Boyd-Wickizer and Nickolai Zeldovich How could a device driver be malicious? Today's device drivers are highly privileged Write kernel memory, allocate memory,...

More information

1. Introduction. 1.1 What is TCP and how does it work?

1. Introduction. 1.1 What is TCP and how does it work? Abstract Nowadays, there are more and more data intensive applications requiring high file transfer over high bandwidth-delay networks. In order to take advantage of the new backbone capacities, which

More information

Kernel configuration The kernel configuration and build system is based on multiple Make files. All Makefiles inside the sub directories in kernel source interacts with the main Makefile which is present

More information

UDP Encapsulation in Linux netdev0.1 Conference February 16, Tom Herbert

UDP Encapsulation in Linux netdev0.1 Conference February 16, Tom Herbert UDP Encapsulation in Linux netdev0.1 Conference February 16, 2015 Tom Herbert Topics UDP encapsulation Common offloads Foo over UDP (FOU) Generic UDP Encapsulation (GUE) Basic idea

More information

RTLinux Installation Instructions

RTLinux Installation Instructions RTLinux Installation Instructions FSM Labs, Inc. http://www.fsmlabs.com April 20, 2001 Abstract This document is intended to guide the user through the installation steps needed to compile and install

More information

Building socket-aware BPF programs

Building socket-aware BPF programs Building socket-aware BPF programs Joe Stringer Cilium.io Linux Plumbers 2018, Vancouver, BC Joe Stringer BPF Socket Lookup Nov 13, 2018 1 / 32 Joe Stringer BPF Socket Lookup Nov 13, 2018 2 / 32 Background

More information

Chapter 10: I/O Subsystems (2)

Chapter 10: I/O Subsystems (2) ADRIAN PERRIG & TORSTEN HOEFLER ( 252-0062-00 ) Networks and Operating Systems Chapter 10: I/O Subsystems (2) BE CAREFUL WITH I/O DEVICES! Our Small Quiz True or false (raise hand) Open files are part

More information

Sockets 15H2. Inshik Song

Sockets 15H2. Inshik Song Sockets 15H2 Inshik Song Internet CAU www server (www.cau.ac.kr) Your web browser (Internet Explorer/Safari) Sockets 2 How do we find the server? Every computer on the Internet has an Internet address.

More information

Chapter 10: I/O Subsystems (2)

Chapter 10: I/O Subsystems (2) ADRIAN PERRIG & TORSTEN HOEFLER ( 252-0062-00 ) Networks and Operating Systems Chapter 10: I/O Subsystems (2) BE CAREFUL WITH I/O DEVICES! Our Small Quiz True or false (raise hand) Open files are part

More information

QEMU and the Linux Kernel

QEMU and the Linux Kernel CSC 256/456: Operating Systems QEMU and the Linux Kernel John Criswell! University of Rochester 1 Outline Useful tools! Compiling the Linux Kernel! QEMU! Linux Kernel Details 2 Useful Tools 3 screen Virtual

More information

rx hardening & udp gso willem de bruijn

rx hardening & udp gso willem de bruijn rx hardening & udp gso willem de bruijn Network rx stack hardening PoD [redacted (3x)] Local Priv CVE-2017-1000112: ufo overwrite skb_shared_info CVE-2017-1000111: packet_reserve use-after-free user namespaces

More information

MultiPath TCP : Linux Kernel implementation

MultiPath TCP : Linux Kernel implementation MultiPath TCP : Linux Kernel implementation Presenter: Christoph Paasch IP Networking Lab UCLouvain, Belgium August 28, 2012 http://multipath-tcp.org IP Networking Lab http://multipath-tcp.org 1/ 29 Networks

More information

ExecVus. Alexandru Totolici

ExecVus. Alexandru Totolici ExecVus Alexandru Totolici a way to visualize control-flow in! software execution 2 planned for: code collapse code reordering improved selection of exec. path zoom in/out of control flow scented graph

More information

Writing drivers for the Linux Crypto subsystem

Writing drivers for the Linux Crypto subsystem May 18, 2014 Marek Vasut Software engineer at DENX S.E. since 2011 Embedded and Real-Time Systems Services, Linux kernel and driver development, U-Boot development, consulting, training. Versatile Linux

More information

Interested in learning more? Global Information Assurance Certification Paper. Copyright SANS Institute Author Retains Full Rights

Interested in learning more? Global Information Assurance Certification Paper. Copyright SANS Institute Author Retains Full Rights Global Information Assurance Certification Paper Copyright SANS Institute Author Retains Full Rights This paper is taken from the GIAC directory of certified professionals. Reposting is not permited without

More information

CSE 124 Discussion Section Sockets Programming 10/10/17

CSE 124 Discussion Section Sockets Programming 10/10/17 CSE 124 Discussion Section Sockets Programming 10/10/17 Topics What s a socket? Creating a socket Connecting a socket Sending data Receiving data Resolving URLs to IPs Advanced socket options Live code

More information

Socket Programming. Dr. -Ing. Abdalkarim Awad. Informatik 7 Rechnernetze und Kommunikationssysteme

Socket Programming. Dr. -Ing. Abdalkarim Awad. Informatik 7 Rechnernetze und Kommunikationssysteme Socket Programming Dr. -Ing. Abdalkarim Awad Informatik 7 Rechnernetze und Kommunikationssysteme Before we start Can you find the ip address of an interface? Can you find the mac address of an interface?

More information

Oral. Total. Dated Sign (2) (5) (3) (2)

Oral. Total. Dated Sign (2) (5) (3) (2) R N Oral Total Dated Sign (2) (5) (3) (2) Assignment Group- A_07 Problem Definition Write a program using TCP socket for wired network for following Say Hello to Each other ( For all students) File transfer

More information

Our Small Quiz. Chapter 9: I/O Subsystems (2) Generic I/O functionality. The I/O subsystem. The I/O Subsystem.

Our Small Quiz. Chapter 9: I/O Subsystems (2) Generic I/O functionality. The I/O subsystem. The I/O Subsystem. ADRIAN PERRIG & TORSTEN HOEFLER ( 252-0062-00 ) s and Operating Systems Chapter 9: I/O Subsystems (2) Our Small Quiz True or false (raise hand) Open files are part of the process address-space Unified

More information

{ } Embedded Montreal Meetup. Char *lecture = Lecture 2 Deep Packet Inspection in Userspace ;

{ } Embedded Montreal Meetup. Char *lecture = Lecture 2 Deep Packet Inspection in Userspace ; { } Embedded Montreal Meetup October 17 th, 2014 Ron Brash Embedded Developer Ron.brash@gmail.com Char *lecture = Lecture 2 Deep Packet Inspection in Userspace ; Objectives Quick introduction Refresher

More information

*************************************************************************************

************************************************************************************* ************************************************************************************* Title:- To Implement Packet sniffer. Name:-Pawar Gaurav Sudhir Roll_no:-322053 Div:-TE[B3] *************************************************************************************

More information

Networks and Operating Systems ( ) Chapter 10: I/O Subsystems (2)

Networks and Operating Systems ( ) Chapter 10: I/O Subsystems (2) ADRIAN PERRIG & TORSTEN HOEFLER Networks and Operating Systems (252-0062-00) Chapter 10: I/O Subsystems (2) BE CAREFUL WITH I/O DEVICES! Administrivia If you re an exchange student and very far away from

More information

Linux Kernel Update - from scratch (almost) Platform: Archlinux, UEFI, GRUB2, and initramfs. Prof. Rossano Pablo Pinto

Linux Kernel Update - from scratch (almost) Platform: Archlinux, UEFI, GRUB2, and initramfs. Prof. Rossano Pablo Pinto Linux Kernel Update - from scratch (almost) Platform: Archlinux, UEFI, GRUB2, and initramfs FATEC Americana May/2017 - v0.9 Agenda Install development software Overview of the steps Archlinux 64 bits with

More information

Performing Maintenance Operations

Performing Maintenance Operations This chapter describes how to back up and restore Cisco Mobility Services Engine (MSE) data and how to update the MSE software. It also describes other maintenance operations. Guidelines and Limitations,

More information

Network device drivers in Linux

Network device drivers in Linux Network device drivers in Linux Aapo Kalliola Aalto University School of Science Otakaari 1 Espoo, Finland aapo.kalliola@aalto.fi ABSTRACT In this paper we analyze the interfaces, functionality and implementation

More information

Our Small Quiz. Chapter 10: I/O Subsystems (2) Generic I/O functionality. The I/O subsystem. The I/O Subsystem. The I/O Subsystem

Our Small Quiz. Chapter 10: I/O Subsystems (2) Generic I/O functionality. The I/O subsystem. The I/O Subsystem. The I/O Subsystem ADRIAN PERRIG & TORSTEN HOEFLER ( 252-0062-00 ) s and Operating Systems Chapter 10: I/O Subsystems (2) BE CAREFUL WITH I/O DEVICES! Our Small Quiz True or false (raise hand) Open files are part of the

More information

Ethernet switch support in the Linux kernel

Ethernet switch support in the Linux kernel ELC 2018 Ethernet switch support in the Linux kernel Alexandre Belloni alexandre.belloni@bootlin.com Copyright 2004-2018, Bootlin. Creative Commons BY-SA 3.0 license. Corrections, suggestions, contributions

More information

DPDK Tunneling Offload RONY EFRAIM & YONGSEOK KOH MELLANOX

DPDK Tunneling Offload RONY EFRAIM & YONGSEOK KOH MELLANOX x DPDK Tunneling Offload RONY EFRAIM & YONGSEOK KOH MELLANOX Rony Efraim Introduction to DC w/ overlay network Modern data center (DC) use overly network like Virtual Extensible LAN (VXLAN) and GENEVE

More information

Hacking Linux Applications by implementing a new Syscall

Hacking Linux Applications by implementing a new Syscall Report System Software Wintersemester 2009 CA644 Brian Stone Hacking Linux Applications by implementing a new Syscall cand. Dipl. Inf. Tobias Müller , 59212333 BSc. Hugh Nowlan ,

More information

Writing your own netfilter match

Writing your own netfilter match LinuxFocus article number 367 http://linuxfocus.org Writing your own netfilter match Abstract: by Nicolas Bouliane About the author: Nicolas is a young warrior in the free software

More information

416 Distributed Systems. Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018

416 Distributed Systems. Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018 416 Distributed Systems Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018 1 Last Time Modularity, Layering, and Decomposition Example: UDP layered on top of IP to provide

More information

Introduction to Oracle VM (Xen) Networking

Introduction to Oracle VM (Xen) Networking Introduction to Oracle VM (Xen) Networking Dongli Zhang Oracle Asia Research and Development Centers (Beijing) dongli.zhang@oracle.com May 30, 2017 Dongli Zhang (Oracle) Introduction to Oracle VM (Xen)

More information

XDP in practice: integrating XDP into our DDoS mitigation pipeline

XDP in practice: integrating XDP into our DDoS mitigation pipeline XDP in practice: integrating XDP into our DDoS mitigation pipeline Gilberto Bertin Cloudflare Ltd. London, UK gilberto@cloudflare.com Abstract To absorb large DDoS (distributed denial of service) attacks,

More information

Building Ethernet Drivers on RTLinux-GPL 1

Building Ethernet Drivers on RTLinux-GPL 1 Building Ethernet Drivers on RTLinux-GPL 1 Sergio Pérez, Joan Vila, Ismael Ripoll Department of Computer Engineering Universitat Politècnica de Valencia Camino de Vera, s/n. 46022 Valencia,SPAIN {serpeal,jvila,iripoll@disca.upv.es

More information

DSP/BIOS Link. Installation Guide Published on 20 th OCT Copyright 2009 Texas Instruments Incorporated.

DSP/BIOS Link. Installation Guide Published on 20 th OCT Copyright 2009 Texas Instruments Incorporated. DSP/BIOS Link Installation Guide 1.64.00.03 Published on 20 th OCT 2009 Copyright 2009 Texas Instruments Incorporated. 2 Platform Support Products Version 1.64.00.03 IMPORTANT NOTICE Texas Instruments

More information

Combining ktls and BPF for Introspection and Policy Enforcement

Combining ktls and BPF for Introspection and Policy Enforcement Combining ktls and BPF for Introspection and Policy Enforcement Daniel Borkmann, John Fastabend Cilium.io Linux Plumbers 2018, Vancouver, Nov 14, 2018 Daniel Borkmann, John Fastabend ktls and BPF Nov 14,

More information

University of Colorado at Colorado Springs CS4500/ Fall 2018 Operating Systems Project 1 - System Calls and Processes

University of Colorado at Colorado Springs CS4500/ Fall 2018 Operating Systems Project 1 - System Calls and Processes University of Colorado at Colorado Springs CS4500/5500 - Fall 2018 Operating Systems Project 1 - System Calls and Processes Instructor: Yanyan Zhuang Total Points: 100 Out: 8/29/2018 Due: 11:59 pm, Friday,

More information

UC20 Linux USB Driver User Guide

UC20 Linux USB Driver User Guide UC20 Linux USB Driver User Guide UMTS/HSPA Module Series Rev. UC20_Linux_USB_Driver_User_Guide_V1.0 Date: 2013-06-09 www.quectel.com Our aim is to provide customers with timely and comprehensive service.

More information

Linux Firewall Exploration Lab

Linux Firewall Exploration Lab SEED Labs Linux Firewall Exploration Lab 1 Linux Firewall Exploration Lab Copyright c 2006-2014 Wenliang Du, Syracuse University. The development of this document is/was funded by three grants from the

More information

ADRIAN PERRIG & TORSTEN HOEFLER ( ) 10: I/O

ADRIAN PERRIG & TORSTEN HOEFLER ( ) 10: I/O ADRIAN PERRIG & TORSTEN HOEFLER s and Operating Systems (252-0062-00) Chapter 10: I/O Subsystems (2) Administrivia If you re an exchange student and very far away from Zurich during the exam period and

More information

Processes communicating. Network Communication. Sockets. Addressing processes 4/15/2013

Processes communicating. Network Communication. Sockets. Addressing processes 4/15/2013 Processes communicating Network Communication Process: program running within a host. within same host, two processes communicate using inter-process communication (defined by OS). processes in different

More information

Packet Header Formats

Packet Header Formats A P P E N D I X C Packet Header Formats S nort rules use the protocol type field to distinguish among different protocols. Different header parts in packets are used to determine the type of protocol used

More information

Programming Internet with Socket API. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

Programming Internet with Socket API. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806 Programming Internet with Socket API Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806 10/19/2015 CSCI 445 - Fall 2015 1 Acknowledgements Some pictures

More information

Scalable Emulation of IP Networks through Virtualization

Scalable Emulation of IP Networks through Virtualization Scalable Emulation of IP Networks through Virtualization by Amit P Kucheria B.E. (Computer Science and Engineering), SSGMCE, India, 1998 Submitted to the Department of Electrical Engineering and Computer

More information

APPLICATION. NOTE Date:

APPLICATION. NOTE Date: Product: Hurricane LX800 Title: Installing the Micrel KS884X Ethernet Driver using Linux Concerned Versions All General Information This paper discusses the implementation of the Micrel KS8842 ethernet

More information

Hardware Checksumming

Hardware Checksumming Hardware Checksumming David S. Miller Red Hat Inc. Overview Internet checksumming basics Hardware History Tunneling and Encapsulation Arguments for a ubiquitous 1 s complement checksum Internet Checksumming

More information

CSCI-GA Operating Systems. Networking. Hubertus Franke

CSCI-GA Operating Systems. Networking. Hubertus Franke CSCI-GA.2250-001 Operating Systems Networking Hubertus Franke frankeh@cs.nyu.edu Source: Ganesh Sittampalam NYU TCP/IP protocol family IP : Internet Protocol UDP : User Datagram Protocol RTP, traceroute

More information

itmbench: Generalized API for Internet Traffic Managers

itmbench: Generalized API for Internet Traffic Managers itmbench: Generalized API for Internet Traffic Managers Gali Diamant Leonid Veytser Ibrahim Matta Azer Bestavros Mina Guirguis Liang Guo Yuting Zhang Sean Chen Computer Science Department Boston University

More information

LINUX KERNEL PRABHAT RANJAN. (

LINUX KERNEL PRABHAT RANJAN. ( LINUX KERNEL PRABHAT RANJAN (email : prabhat_ranjan@daiict.ac.in) OUTLINE Different states of kernel Directory structure of kernel source Description of various directory proc file system Kernel Compilation

More information

Socket Programming for TCP and UDP

Socket Programming for TCP and UDP CSCI4430 Data Communication and Computer Networks Socket Programming for TCP and UDP ZHANG, Mi Jan. 19, 2017 Outline Socket Programming for TCP Introduction What is TCP What is socket TCP socket programming

More information

Socket (Session) Aware Change of IP SACIP network functionality. Samo Pogačnik

Socket (Session) Aware Change of IP SACIP network functionality. Samo Pogačnik Socket (Session) Aware Change of IP SACIP network functionality Samo Pogačnik Key notes about SACIP On the fly changes of network access point of a (mobile) user / endpoint device Possibility for preserving

More information

Linux Device Drivers Interrupt Requests

Linux Device Drivers Interrupt Requests Overview 1 2 3 Installation of an interrupt handler Interface /proc 4 5 6 7 primitive devices can be managed only with I/O regions, most devices require a more complicated approach, devices cooperate with

More information

416 Distributed Systems. Networks review; Day 2 of 2 And start of RPC Jan 13, 2016

416 Distributed Systems. Networks review; Day 2 of 2 And start of RPC Jan 13, 2016 416 Distributed Systems Networks review; Day 2 of 2 And start of RPC Jan 13, 2016 1 Last Time Modularity, Layering, and Decomposition Example: UDP layered on top of IP to provide application demux ( ports

More information

Building, Running and Monitoring the Linux kernel

Building, Running and Monitoring the Linux kernel Building, Running and Monitoring the Linux kernel Prak6kum Kernel Programming University of Hamburg Scien6fic Compu6ng Winter semester 2015/2016 Konstan6nos Chasapis Konstan6nos.chasapis@informa6k.uni-hamburg.de

More information

What is a Linux Device Driver? Kevin Dankwardt, Ph.D. VP Technology Open Source Careers

What is a Linux Device Driver? Kevin Dankwardt, Ph.D. VP Technology Open Source Careers What is a Linux Device Driver? Kevin Dankwardt, Ph.D. VP Technology Open Source Careers kdankwardt@oscareers.com What does a driver do? Provides a more convenient interface to user-space for the hardware.

More information

MV V310 Android 4.0 Compilation

MV V310 Android 4.0 Compilation MV V310 Android 4.0 Compilation Microvision Co., Ltd. Document Information Version 1.0 File Name MVV310 Android Compilation.doc Date 2012. 4. 17 Satus Working Revision History Date Version Update Descriptions

More information

Running Network Services under User-Mode

Running Network Services under User-Mode Running Network Services under User-Mode Linux, Part I Mick Bauer Abstract Leverage the Linux kernel's virtualization features to isolate network dæmons. In my May 2006 Paranoid Penguin column, I expounded

More information

IPCoreL An Intuitive Packet Injection Programming Language

IPCoreL An Intuitive Packet Injection Programming Language IPCoreL An Intuitive Packet Injection Programming Language Programming Language Proprosal By Phillip Duane Douglas, Jr. Introduction IPCoreL is a programming language that will be geared towards newcomers

More information

Final Step #7. Memory mapping For Sunday 15/05 23h59

Final Step #7. Memory mapping For Sunday 15/05 23h59 Final Step #7 Memory mapping For Sunday 15/05 23h59 Remove the packet content print in the rx_handler rx_handler shall not print the first X bytes of the packet anymore nor any per-packet message This

More information

PROBLEMSAND EXERCISES

PROBLEMSAND EXERCISES Departamento de Tecnología Electrónica Computer Networking Unit 3: Transport layer PROBLEMSAND EXERCISES Transport Layer 95 Pr1: port numbers Suppose that the client A initiates a TCP connection to a Web

More information

Network Adapter Flow Steering

Network Adapter Flow Steering Network Adapter Flow Steering OFA 2012 Author: Tzahi Oved Date: March 2012 Receive Steering Evolution The traditional Single Ring All ingress traffic to land on a single receive ring Kernel threads / DPC

More information

Lecture 20. Log into Linux. Copy directory /home/hwang/cs375/lecture20 Project 5 due today. Project 6 posted, due Tuesday, April 8. Questions?

Lecture 20. Log into Linux. Copy directory /home/hwang/cs375/lecture20 Project 5 due today. Project 6 posted, due Tuesday, April 8. Questions? Lecture 20 Log into Linux. Copy directory /home/hwang/cs375/lecture20 Project 5 due today. Project 6 posted, due Tuesday, April 8. Questions? Thursday, March 27 CS 375 UNIX System Programming - Lecture

More information

Term Project Phase I: System Calls

Term Project Phase I: System Calls cse331 fall 2011 Term Project Phase I: System Calls Goal: You will learn how to make a system call and about reading / writing user space from / to the kernel by adding a new function to the kernel. The

More information

CS519: Computer Networks. Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing

CS519: Computer Networks. Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing : Computer Networks Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing Recall our protocol layers... ... and our protocol graph IP gets the packet to the host Really

More information

The Linux Network Subsystem

The Linux Network Subsystem The Linux Network Subsystem Unable to handle kernel paging request at virtual address 4d1b65e8 Unable Covers to handle Linux kernel paging version request at virtual 2.6.25 address 4d1b65e8 pgd = c0280000

More information

User Manual. SysKonnect SK-98xx V2.0 Gigabit Ethernet Adapter

User Manual. SysKonnect SK-98xx V2.0 Gigabit Ethernet Adapter User Manual SysKonnect SK-98xx V2.0 Gigabit Ethernet Adapter SysKonnect SK-98xx V2.0 Gigabit Ethernet Adapter User Manual (v2.10 17 February, 2003) Visit our web site: http://www.syskonnect.com SysKonnect

More information

MV 4412 Android 4.0 Compilation

MV 4412 Android 4.0 Compilation MV 4412 Android 4.0 Compilation Microvision Co., Ltd. Document Information Version 1.0 File Name MV4412 Android Compilation.doc Date 2012. 7. 12 Satus Working Revision History Date Version Update Descriptions

More information

Ref: A. Leon Garcia and I. Widjaja, Communication Networks, 2 nd Ed. McGraw Hill, 2006 Latest update of this lecture was on

Ref: A. Leon Garcia and I. Widjaja, Communication Networks, 2 nd Ed. McGraw Hill, 2006 Latest update of this lecture was on IP Version 4 (IPv4) Header (Continued) Identification (16 bits): One of the parameters of any network is the maximum transmission unit (MTU) parameter. This parameter specifies the maximum size of the

More information

How Double-Fetch Situations turn into Double-Fetch Vulnerabilities:

How Double-Fetch Situations turn into Double-Fetch Vulnerabilities: How Double-Fetch Situations turn into Double-Fetch Vulnerabilities: A Study of Double Fetches in the Linux Kernel Pengfei Wang, Jens Krinke, Kai Lu, Gen Li, Steve Dodier-Lazaro College of Computer National

More information

CREATION OF A MINIMAL STAND ALONE RTAI SYSTEM ================================================

CREATION OF A MINIMAL STAND ALONE RTAI SYSTEM ================================================ Requirements :: --------------- CREATION OF A MINIMAL STAND ALONE RTAI SYSTEM ================================================ * I prepared my stand alone RTAI for the following hardware configurations.

More information

What is an L3 Master Device?

What is an L3 Master Device? What is an L3 Master Device? David Ahern Cumulus Networks Mountain View, CA, USA dsa@cumulusnetworks.com Abstract The L3 Master Device (l3mdev) concept was introduced to the Linux networking stack in v4.4.

More information

Dan Boneh, John Mitchell, Dawn Song. Denial of Service

Dan Boneh, John Mitchell, Dawn Song. Denial of Service Dan Boneh, John Mitchell, Dawn Song Denial of Service What is network DoS? Goal: take out a large site with little computing work How: Amplification Small number of packets big effect Two types of amplification

More information

PCIe 10G SFP+ Network Card

PCIe 10G SFP+ Network Card PCIe 10G SFP+ Network Card User Manual Ver. 1.00 All brand names and trademarks are properties of their respective owners. Contents: Chapter 1: Introduction... 3 1.1 Product Introduction... 3 1.2 Features...

More information

Context. Distributed Systems: Sockets Programming. Alberto Bosio, Associate Professor UM Microelectronic Departement

Context. Distributed Systems: Sockets Programming. Alberto Bosio, Associate Professor UM Microelectronic Departement Distributed Systems: Sockets Programming Alberto Bosio, Associate Professor UM Microelectronic Departement bosio@lirmm.fr Context Computer Network hosts, routers, communication channels Hosts run applications

More information