OpenFlow Representation of Encapsulation Metadata.

Slides:



Advertisements
Similar presentations
Naming, Addressing, & Discovery
Advertisements

Access Control List (ACL)
LACP Project Proposal.
Introduction to IPv6 Presented by: Minal Mishra. Agenda IP Network Addressing IP Network Addressing Classful IP addressing Classful IP addressing Techniques.
1 Features of IPv6 Larger Address Extended Address Hierarchy Flexible Header Format Improved Options Provision For Protocol Extension Support for Auto-configuration.
Netprog: IPv61 IPv6 Refs: Chapter 10, Appendix A.
Socket Programming with IPv6. Why IPv6? Addressing and routing scalability Address space exhaustion Host autoconfiguration QoS of flow using flowlabel.
IPv6 The Next Generation Presented by Anna La Mura Jens Waldecker.
1 Internet Protocol Version 6 (IPv6) What the caterpillar calls the end of the world, nature calls a butterfly. - Anonymous.
Programmable Virtual Networks
A SOFT Way for OpenFlow Interoperability Testing Maciej Kuźniar, Peter Perešini, Marco Canini†, Daniele Venzano, Dejan Kostić‡ EPFL †TU Berlin/T-Labs ‡IMDEA.
MotoHawk Training CAN Controller Area Network.
KMIP Vendor Extension Management KMIP supports ‘extensions’ but provides no mechanism for coordination of values between clients and servers or between.
Internet Control Message Protocol (ICMP). Introduction The Internet Protocol (IP) is used for host-to-host datagram service in a system of interconnected.
CS 268: Lectures 13/14 (Route Lookup and Packet Classification) Ion Stoica April 1/3, 2002.
U of R eXtensible Catalog Team MetaCat. Problem Domain.
Ch 23 1 Based on Data Communications and Networking, 4th Edition. by Behrouz A. Forouzan, McGraw-Hill Companies, Inc., 2007 Ameera Almasoud.
Data Plane Verification. Background: What are network policies Alice can talk to Bob Skype traffic must go through a VoIP transcoder All traffic must.
Chapter 9 Classification And Forwarding. Outline.
MPEG-2 Transport streams tMyn1 MPEG-2 Transport streams The MPEG-2 Systems Standard specifies two methods for multiplexing the audio, video and other data.
Routing Table : closer look w.lilakiatsakun. Sample Routing Table Static Route Dynamic Routing Protocol (RIP) Directly Connected Network Administrative.
1 IPv6 Refs: Chapter 10, Appendix A. 2 IPv6 availability Generally not part of O.S. Available in beta for many operating systems. 6-Bone is experimental.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
1Group 07 IPv6 2 1.ET/06/ ET/06/ ET/06/ EE/06/ EE/06/ EE/06/6473 Group 07 IPv6.
Overview of Mini-Edit and other Tools Access DB Oracle DB You Need to Send Entries From Your Std To the Registry You Need to Get Back Updated Entries From.
1 Lot 3 - Développements MNGT to FAC-CM Interface Version 5 Baris DEMIRAY / Michelle WETTERWALD
Jon Turner, John DeHart, Fred Kuhns Computer Science & Engineering Washington University Wide Area OpenFlow Demonstration.
Sponsored by the National Science Foundation Tutorial: An Introduction to OpenFlow using POX GENI Engineering Conference 20 June 2014.
1 IPFIX Protocol Specifications IPFIX IETF-59 March 3, 2004 Benoit Claise Mark Fullmer Reinaldo Penno Paul Calato Stewart Bryant Ganesh Sadasivan.
Access Control List (ACL) W.lilakiatsakun. ACL Fundamental ► Introduction to ACLs ► How ACLs work ► Creating ACLs ► The function of a wildcard mask.
Sujayyendhiren RS, Kaiqi Xiong and Minseok Kwon Rochester Institute of Technology Motivation Experimental Setup in ProtoGENI Conclusions and Future Work.
Routing Table : closer look w.lilakiatsakun. Sample Routing Table Static Route Dynamic Routing Protocol (RIP) Directly Connected Network Administrative.
(Business) Process Centric Exchanges
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 3, 09/11/2003 Prof. Roy Levow.
Access-Lists Securing Your Router and Protecting Your Network.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Sponsored by the National Science Foundation 1 GEC16, March 21, 2013 Are you ready for the tutorial? 1.Did you do the pre-work? A.Are you able to login.
EXPOSING OVS STATISTICS FOR Q UANTUM USERS Tomer Shani Advanced Topics in Storage Systems Spring 2013.
Arbitrary Packet Matching in Openflow
Customizing OVS using P4 Muhammad Shahbaz with Sean Choi, Ben Pfaff, Chaitanya Kodeboyina, Changhoon Kim, Nick McKeown, Nick Feamster, and Jen Rexford.
1 Lot 3 - Développements MNGT to FAC-CM Interface Version 4 Baris DEMIRAY / Michelle WETTERWALD
P. Bosshart, D. Daly, G. Gibb, M. Izzard, N. McKeown, J. Rexford, C. Schlesinger, D. Talayco, A. Vahdat, G. Varghese, D. Walker SIGCOMM CCR, 2014 Presented.
Multicasting  A message can be unicast, multicast, or broadcast. Let us clarify these terms as they relate to the Internet.
Shadow MACs: Scalable Label- switching for Commodity Ethernet Author: Kanak Agarwal, John Carter, Eric Rozner and Colin Dixon Publisher: HotSDN 2014 Presenter:
Introduction to Mininet, Open vSwitch, and POX
Multi-part Messages in KMIP John Leiseboer, QuintessenceLabs.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
MPLS over L2TPv3 Encapsulation IETF VersionIHLTOSTotal length IdentificationFlagsFragment offset TTL Protocol ==
CEN 5501C - Computer Networks - Spring UF/CISE - Newman1 Computer Networks Chapter 4 – Source Routing Bridges.
Comp 335 File Structures Fundamental File Structure Concepts.
Author : Lynn Choi, Hyogon Kim, Sunil Kim, Moon Hae Kim Publisher/Conf : IEEE/ACM TRANSACTIONS ON NETWORKING Speaker : De yu Chen Data :
WMO GRIB Edition 3 Enrico Fucile Inter-Program Expert Team on Data Representation Maintenance and Monitoring IPET-DRMM Geneva, 30 May – 3 June 2016.
8 Byte BGP Communities Finding a practical way forward.
Software OpenFlow Solutions using Open vSwitch
P4: Programming Protocol-Independent Packet Processors
Bundle Protocol Specification
Design of the Control Unit for Single-Cycle Instruction Execution
Hubs Hubs are essentially physical-layer repeaters:
An NP-Based Router for the Open Network Lab Overview by JST
Code Review for IPv4 Metarouter Header Format
Implementing an OpenFlow Switch on the NetFPGA platform
Issues in Client/Server Programming
Offloading Linux LAG devices Via Open vSwitch and TC
Flow Monitoring in OVS Ashish Varma VMware.
Chapter 15. Internet Protocol
Empowering OVS with eBPF
Refs: Chapter 10, Appendix A
How OAM Identified in Overlay Protocols draft-mirsky-rtgwg-oam-identify Greg Mirsky IETF-104 March 2019, Prague.
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

OpenFlow Representation of Encapsulation Metadata

2 Mapping Geneve Option to an OXM oxm_classoxm_field vendor id / experimenter id oxm_length HMHM option classtype Variable length data (max 124 bytes) length 23 R oxm_class = 0xffff (experimenter oxm) oxm_field = ONFOXM_ET_TUN_METADATA. oxm_length includes experimenter id, so max length when HM = 1 is (255 – 4) / 2 = 125 However if MSB of experimenter id is non-zero, max length when HM = 1 is ( ) / 2=127 Encode Geneve Length into oxm_length and handle one Geneve option per oxm. This makes a Geneve option (128 – 1) = 127 bytes and would fit the OXM. Other alternatives Can we get oxm_classes for Geneve option class registry ? Reduce Geneve type space from 8 to 7 bits ? variable length payload (max 127 bytes)

OVS infrastructure changes We start with a short demo and code flow to highlight the changes. Our tunnel configuration ovs-vsctl show cf02d4b4-d5d7-4c63-a e135328df Bridge "br0" Port "br0" Interface "br0" type: internal Port "vmtap100" Interface "vmtap100" Port geneve Interface geneve type: geneve options: {remote_ip=flow}

Demo ovs-ofctl -OOpenFlow13 add-flow br0 "in_port=1, tun_id=0x32, tun_src= tun_metadata=ab1234cddeadbeefab1234cddeadbeef/ffff00ff, actions=output:2” We need to be able to support multiple of tun_metadata= matches and set actions in a single flow mod. Each tun_metadata= option maps to a single OXM of variable length. The value itself is transparent to the infra code except for some validations. ovs-appctl ofproto/trace br0 "recirc_id(0),tun_id=0x32,tun_src= ,tun_dst= ,tun_metadata=ab1234cddeadbeefab12,in_port(1)" Bridge: br0 Flow: tun_src= ,tun_dst= ,tun_tos=0,tun_ttl=0,,in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_ty pe=0x0000 Rule: table=0 cookie=0 tun_id=0x32,tun_src= ,tun_metadata=ab12xxcd/ffff00ff,in_port=1 OpenFlow actions=output:2 Final flow: tun_src= ,tun_dst= ,tun_tos=0,tun_ttl=0,,in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_ty pe=0x0000 Megaflow: pkt_mark=0,recirc_id=0,tun_id=0x32,tun_src= ,tun_dst= ,tun_metadata=ab12xxcd/ffff00ff,tun_tos=0,tun_ttl=0,,in_port=1,dl _type=0x0000 Datapath actions: 3 I am representing wildcard don’t care bytes with xx in the final flow.

Little bit of OVS internals. ofctl context (can also come come via OpenFlow FlowMod) parse_ofp_str__ parse FlowMod string and build a match structure { for each type=value in the command line mf_parse() maps type to mf_field mf_from_tun_metadata_string() mf_set() sets value in match match_set_tun_metadata_masked() } ofputil_put_ofp11_match build ofpbuf to send to vswitchd. { oxm_put_match nx_put_raw for each field in match, append to ofpbuf its nx_match format. }

Little bit of OVS internals. vswitchd context handle_flow_mod { ofputil_decode_flow_mod decode flowMod buffer and construct a match structure (within struct ofputil_flow_mod) ofputil_pull_ofp11_match oxm_pull_match nx_pull_raw for each oxm in the FlowMod message nx_pull_match_entry extract mf_field, mf_value and mask check for duplicates mf_are_prereqs_ok check prereqs for mf_field mf_set set value in match } Once we have a populated ofputil_flow_mod struct, we proceed to add_flow() This flow is looked up on a miss upcall (tunnel key constructed via odp_tun_key_from_attr) In case a set tunnel action is specified the corresponding action is build via odp_put_tunnel_action -> tun_key_to_attr handle_upcalls() then installs datapath flows in a batch.

What exists Working geneve encapsulation in the datapath.

Infrastructure extensions mf_field assumes fixed length fields. – This should be extended so the parse specifies the length. For fixed length field the parsed length == mf->n_bytes. A field may only appear once in a flow mod. – mf_set needs to be extended to set a value at an offset within the match field. The offset is the output of parse. For fields that can appear only once the offset will always be 0.

Infrastructure extensions struct flow sparse representation limits its size to 252 bytes. – separate flow_tnl and struct flow. flow_tnl would be variable length depending on the metadata. – Implications on the classifier. Two lookups per match ? Geneve pkt can contain upto 252 bytes of option data. flow_tnl.metadata should be able to accommodate this max.

ofctl / dpctl apis How do we support adding and dumping options that could be pretty big ? – Only show bits that are relevant and do not show wildcard bits.

Geneve critial and non critical options We will install a drop flow if a critical option is present in the packet and the corresponding flow is not found. How do we handle unsupported non-critical options. – Can we add a new configuration bitmask that specifies what options are supported by a tunnel endpoint ? AND during lookup we only check these options (and log the ones that are present and not supported)

Next steps Can we implement Geneve support in phases ? Implement infrastructure extensions needed for Geneve first.

Questions / Feedback.