Junos OS Support for OpenFlow v1.0 Beta Draft



Similar documents
Junos OS. DDoS Protection Configuration Guide. Release Published: Copyright 2012, Juniper Networks, Inc.

Junos OS. DDoS Protection Configuration Guide. Release Published: Copyright 2012, Juniper Networks, Inc.

Network Configuration Example

Network Configuration Example

Network Configuration Example

Junos OS. Firewall Filters Configuration Guide. Release Published: Copyright 2012, Juniper Networks, Inc.

Network Configuration Example

SDN, OpenFlow and the ONF

Intrusion Detection and Prevention

Junos Pulse Mobile Security Dashboard. User Guide. Release 4.2. February 2013 Revision , Juniper Networks, Inc.

Junos OS. Distributed Denial-of-Service Protection Feature Guide. Release Published: Copyright 2013, Juniper Networks, Inc.

Junos OS for EX Series Ethernet Switches

Network Configuration Example

Junos OS for EX Series Ethernet Switches

Network Configuration Example

Network Configuration Example

Passive Flow Monitoring

Technology Overview. Class of Service Overview. Published: Copyright 2014, Juniper Networks, Inc.

Junos OS. MPLS Network Operations Guide. Published: Copyright 2012, Juniper Networks, Inc.

Network Configuration Example

Unless otherwise noted, all references to STRM refer to STRM, STRM Log Manager, and STRM Network Anomaly Detection.

Managing Service Design for PTP Timing

Load Balancing. Published: Copyright 2012, Juniper Networks, Inc.

Junos OS. Firewall Filters Feature Guide for Routing Devices. Release Published: Copyright 2013, Juniper Networks, Inc.

Junos Space. Service Now User Guide. Release Published: Copyright 2013, Juniper Networks, Inc.

Network Configuration Example

Junos OS. MPLS Configuration Guide for Security Devices. Release Published: Copyright 2012, Juniper Networks, Inc.

Network Configuration Example

Junos OS for EX Series Ethernet Switches

Monitoring Network Traffic Using sflow Technology on EX Series Ethernet Switches

OpenFlow Switch Specification

Junos OS. DHCP Relay Agent Feature Guide for Subscriber Management. Release Published: Copyright 2013, Juniper Networks, Inc.

Junos OS. Layer 2 Bridging and Transparent Mode for Security Devices. Release 12.1X44-D10. Published:

Junos OS. Tunnel and Encryption Services Interfaces Feature Guide for Routing Devices. Release Modified:

Junos OS. System Log Messages. Release Modified: Copyright 2015, Juniper Networks, Inc.

Dell OpenFlow Deployment and User Guide Dell Software-Defined Networking (SDN)

Junos Switching Basics

MONITORING NETWORK TRAFFIC USING sflow TECHNOLOGY ON EX SERIES ETHERNET SWITCHES

Junos Pulse Secure Access Service

Real-Time Performance Monitoring Services

Firewall Filters Feature Guide for EX9200 Switches

Network Configuration Example

OpenFlow Switch Specification

Technology Overview. Lawful Intercept Using Flow-Tap. Published: Copyright 2014, Juniper Networks, Inc.

J-Flow on J Series Services Routers and Branch SRX Series Services Gateways

HP OpenFlow Protocol Overview

SRX High Availability Design Guide

Management Software. Web Browser User s Guide AT-S106. For the AT-GS950/48 Gigabit Ethernet Smart Switch. Version Rev.

OpenFlow Switch Specification Version ( Protocol version 0x04 )

Junos OS. Firewall User Authentication for Security Devices. Release 12.1X44-D10. Published: Copyright 2013, Juniper Networks, Inc.

Junos Pulse. Administration Guide. Release 3.0. Published: Copyright 2012, Juniper Networks, Inc.

Juniper Secure Analytics

Dell OpenFlow Deployment and User Guide 3.0 Dell Software-Defined Networking (SDN)

Subscriber Traffic Redirection

Configuration and File Management Feature Guide for QFabric Systems

Cisco IOS Flexible NetFlow Command Reference

Junos OS for EX Series Ethernet Switches

Junos OS for EX Series Ethernet Switches

OpenFlow Switch Specification

Juniper Secure Analytics

OpenFlow Switch Specification

Configuring Flexible NetFlow

Junos Space Security Director

Network Configuration Example

Junos OS. Flow Monitoring Feature Guide for Routing Devices. Release Published: Copyright 2014, Juniper Networks, Inc.

Chapter 2 Quality of Service (QoS)

VLANs. Application Note

CCT vs. CCENT Skill Set Comparison

AlliedWare Plus OS How To Use sflow in a Network

Introduction to Junos Space Network Director

Juniper Secure Analytics

By default, STRM provides an untrusted SSL certificate. You can replace the untrusted SSL certificate with a self-signed or trusted certificate.

Quality of Service (QoS): Managing Bandwidth More Effectively on the Series 2600/2600-PWR and Series 2800 Switches

"Charting the Course...

Management Software. User s Guide AT-S84. For the AT-9000/24 Layer 2 Gigabit Ethernet Switch. Version Rev. B

Cloud Analytics Engine Compute Agent API Reference

Junos Space. Network Director Monitor Mode User Guide. Release 1.5. Published: Copyright 2013, Juniper Networks, Inc.

How To Connect To A Network On A Pc Or Mac (For Mac) On A Microsoft Mac 2.5 (For Ipo) On An Ipo 2.2 (For Pc) On Zephone (For Pnet) On

Configuring NetFlow-lite

enetworks TM IP Quality of Service B.1 Overview of IP Prioritization

JUNOS Command Line Interface. Copyright 2003 Juniper Networks, Inc. 1

基 於 SDN 與 可 程 式 化 硬 體 架 構 之 雲 端 網 路 系 統 交 換 器

FastIron Ethernet Switch Software Defined Networking (SDN)

Junos OS. Routing Protocols and Policies Configuration Guide for Security Devices. Release Published:

After you have created your text file, see Adding a Log Source.

NetFlow Aggregation. Feature Overview. Aggregation Cache Schemes

Software Defined Networking

Terminal Server Configuration and Reference Errata

Junos OS. Layer 2 Overview, Routing Instances, and Basic Services Feature Guide for Routing Devices. Release Published:

Network QoS Policies. In This Section XRS Quality of Service Guide Page 79

VXLAN: Scaling Data Center Capacity. White Paper

Network Configuration Example

Cisco IOS Flexible NetFlow Technology

What is VLAN Routing?

Hands On Activities: TCP/IP Network Monitoring and Management

OpenFlow and Software Defined Networking presented by Greg Ferro. OpenFlow Functions and Flow Tables

: Interconnecting Cisco Networking Devices Part 1 v2.0 (ICND1)

Junos Pulse. Windows In-Box Junos Pulse Client Quick Start Guide. Published: Copyright 2013, Juniper Networks, Inc.

Implementing L2 at the Data Center Access Layer on Juniper Networks Infrastructure

Chapter 11 Network Address Translation

Transcription:

Junos OS Support for OpenFlow v1.0 Beta Draft Published: 2012-12-20

Juniper Networks, Inc. 1194 North Mathilda Avenue Sunnyvale, California 94089 USA 408-745-2000 www.juniper.net This product includes the Envoy SNMP Engine, developed by Epilogue Technology, an Integrated Systems Company. Copyright 1986-1997, Epilogue Technology Corporation. All rights reserved. This program and its documentation were developed at private expense, and no part of them is in the public domain. This product includes memory allocation software developed by Mark Moraes, copyright 1988, 1989, 1993, University of Toronto. This product includes FreeBSD software developed by the University of California, Berkeley, and its contributors. All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite Releases is copyrighted by the Regents of the University of California. Copyright 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994. The Regents of the University of California. All rights reserved. GateD software copyright 1995, the Regents of the University. All rights reserved. Gate Daemon was originated and developed through release 3.0 by Cornell University and its collaborators. Gated is based on Kirton s EGP, UC Berkeley s routing daemon (routed), and DCN s HELLO routing protocol. Development of Gated has been supported in part by the National Science Foundation. Portions of the GateD software copyright 1988, Regents of the University of California. All rights reserved. Portions of the GateD software copyright 1991, D. L. S. Associates. This product includes software developed by Maker Communications, Inc., copyright 1996, 1997, Maker Communications, Inc. Juniper Networks, Junos, Steel-Belted Radius, NetScreen, and ScreenOS are registered trademarks of Juniper Networks, Inc. in the United States and other countries. The Juniper Networks Logo, the Junos logo, and JunosE are trademarks of Juniper Networks, Inc. All other trademarks, service marks, registered trademarks, or registered service marks are the property of their respective owners. Juniper Networks assumes no responsibility for any inaccuracies in this document. Juniper Networks reserves the right to change, modify, transfer, or otherwise revise this publication without notice. Products made or sold by Juniper Networks or components thereof might be covered by one or more of the following patents that are owned by or licensed to Juniper Networks: U.S. Patent Nos. 5,473,599, 5,905,725, 5,909,440, 6,192,051, 6,333,650, 6,359,479, 6,406,312, 6,429,706, 6,459,579, 6,493,347, 6,538,518, 6,538,899, 6,552,918, 6,567,902, 6,578,186, and 6,590,785. Junos OS Support for OpenFlow v1.0 Beta Draft All rights reserved. The information in this document is current as of the date on the title page. YEAR 2000 NOTICE Juniper Networks hardware and software products are Year 2000 compliant. Junos OS has no known time-related limitations through the year 2038. However, the NTP application is known to have some difficulty in the year 2036. END USER LICENSE AGREEMENT The Juniper Networks product that is the subject of this technical documentation consists of (or is intended for use with) Juniper Networks software. Use of such software is subject to the terms and conditions of the End User License Agreement ( EULA ) posted at http://www.juniper.net/support/eula.html. By downloading, installing or using such software, you agree to the terms and conditions of that EULA. ii

Table of Contents Chapter 1 Junos OS Support for OpenFlow v1.0 Overview and Configuration........ 7 Understanding Junos OS Support for OpenFlow v1.0........................ 7 OpenFlow Overview.............................................. 7 OpenFlow Virtual Switches........................................ 8 OpenFlow Interfaces.............................................. 8 OpenFlow Flows................................................. 9 Installing Support for OpenFlow v1.0 on Devices Running Junos OS............ 9 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS......... 10 Configuring the OpenFlow Interfaces................................ 10 Configuring the OpenFlow Protocol.................................. 11 Configuring the OpenFlow Routing Instance (MX Series)................ 11 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS............. 12 Junos OS Support for OpenFlow v1.0 Compliance Matrix.................... 15 Chapter 2 Summary of OpenFlow Configuration Statements.................... 23 [edit protocols openflow] Hierarchy Level............................... 23 address (Protocols OpenFlow)........................................ 24 controller (Protocols OpenFlow)....................................... 25 default-action (Protocols OpenFlow)................................... 26 interfaces (Protocols OpenFlow)...................................... 26 openflow (Protocols OpenFlow)....................................... 27 port (Protocols OpenFlow)........................................... 28 protocol (Protocols OpenFlow)....................................... 29 role (Protocols OpenFlow)........................................... 29 switch (Protocols OpenFlow)......................................... 30 traceoptions (Protocols OpenFlow).................................... 31 Chapter 3 OpenFlow Operational Mode Commands............................ 33 OpenFlow Operational Mode Commands............................... 33 show openflow capability............................................ 34 show openflow controller............................................ 38 show openflow filters............................................... 40 show openflow flows................................................ 43 show openflow interfaces............................................ 46 show openflow statistics flows........................................ 49 show openflow statistics interfaces.................................... 52 show openflow statistics packet....................................... 55 show openflow statistics summary..................................... 57 show openflow statistics tables....................................... 58 show openflow summary............................................ 60 show openflow switch............................................... 61 iii

Junos OS Support for OpenFlow v1.0 Chapter 4 Index............................................................ 63 Index......................................................... 65 iv

List of Tables Chapter 1 Junos OS Support for OpenFlow v1.0 Overview and Configuration........ 7 Table 1: Software Packages for OpenFlow v1.0 Support..................... 10 Table 2: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Message Set........................................................... 15 Table 3: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Match Conditions..................................................... 18 Table 4: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Wild Cards......................................................... 19 Table 5: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Flow Actions........................................................ 19 Table 6: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Statistics...................................................... 20 Table 7: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Features....................................................... 21 Chapter 3 OpenFlow Operational Mode Commands............................ 33 Table 8: OpenFlow Operational Mode Commands........................ 33 Table 9: show openflow capability Output Fields......................... 34 Table 10: show openflow controller Output Fields......................... 38 Table 11: show openflow filters Output Fields............................. 40 Table 12: show openflow flows Output Fields............................. 43 Table 13: show openflow interfaces Output Fields......................... 46 Table 14: show openflow statistics flows Output Fields.................... 49 Table 15: show openflow statistics interfaces Output Fields................. 52 Table 16: show openflow statistics packet Output Fields................... 55 Table 17: show openflow statistics tables Output Fields.................... 58 Table 18: show openflow summary Output Fields......................... 60 Table 19: show openflow switch Output Fields............................ 61 v

Junos OS Support for OpenFlow v1.0 vi

CHAPTER 1 Junos OS Support for OpenFlow v1.0 Overview and Configuration Understanding Junos OS Support for OpenFlow v1.0 on page 7 Installing Support for OpenFlow v1.0 on Devices Running Junos OS on page 9 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS on page 12 Junos OS Support for OpenFlow v1.0 Compliance Matrix on page 15 Understanding Junos OS Support for OpenFlow v1.0 OpenFlow Overview on page 7 OpenFlow Virtual Switches on page 8 OpenFlow Interfaces on page 8 OpenFlow Flows on page 9 OpenFlow Overview OpenFlow is an open standard that permits you to control traffic and run experimental protocols in an existing network using a remote controller. The OpenFlow components consist of a controller, an OpenFlow or OpenFlow-enabled switch, and the OpenFlow protocol. The OpenFlow protocol is a Layer 2 protocol that permits an OpenFlow controller access to the data plane of an OpenFlow-enabled switch over an SSL or TCP/IP socket connection. Using OpenFlow, you can control traffic paths by creating, deleting, and modifying flow entries in each device along a path. Flow entries specify match conditions against which packets are compared, and a set of instructions that are applied to matching packets. You can configure certain devices running the Junos operating system (Junos OS) as OpenFlow-enabled switches. The Junos OS process, openflowd, handles OpenFlow functionality on these devices. When implementing OpenFlow in an existing network, you should isolate experimental flows from production flows so that normal network traffic is not impacted. In devices running Junos OS, you isolate OpenFlow traffic by configuring one or more virtual switches that act as logically separate flood domains. The controller and virtual switch communicate by exchanging OpenFlow protocol 7

Junos OS Support for OpenFlow v1.0 messages. The controller uses the OpenFlow protocol messages to add, delete, and modify flows on a switch. For more information about OpenFlow, see the OpenFlow Consortium website at http://www.openflow.org/. OpenFlow Virtual Switches To isolate and control OpenFlow traffic on a device running Junos OS, you configure virtual switches. Each virtual switch configuration contains the set of ports participating in OpenFlow, the controller connection information, and the default action executed when a packet does not match a flow entry. You configure OpenFlow protocol information and virtual switches at the [edit protocols openflow] hierarchy level. Depending on the platform, a default VLAN or bridge domain is assigned to each virtual switch. This VLAN or bridge domain acts as a logically separate flood domain, which isolates OpenFlow traffic from normal traffic. On MX Series 3D Universal Edge Routers, you must also configure a separate virtual switch routing instance at the [edit routing-instances] hierarchy level. Each virtual switch establishes an independent connection with the controller and is represented by a unique runtime datapath ID consisting of the management port MAC address and an internally assigned virtual switch ID. The controller and virtual switch connect to each other using an SSL or TCP/IP socket connection on the management plane. Thus, every switch managed by a controller needs to be connected to the management network (connected using the me or fxp management port) and should be reachable from the controller IP address. After establishing a connection, the controller and virtual switch exchange echo request and reply messages as a keepalive mechanism. If the 5-second keepalive interval expires with no response, the connection is considered lost. The switch attempts to reestablish the connection for 10 seconds. If the connection cannot be established, the switch deletes normal flow entries, and after 30 seconds, purges flow entries that are installed in hardware. OpenFlow Interfaces You must configure interfaces participating in OpenFlow as Layer 2 interfaces. MX Series routers support ethernet-bridge encapsulation and protocol family bridge. EX Series Ethernet Switches and QFX Series switches support protocol family ethernet-switching. You configure interfaces on the router or switch at the [edit interfaces interface-name] hierarchy level. When you configure an OpenFlow virtual switch on a device running Junos OS, you must also specify the Layer 2 interfaces participating in OpenFlow. To configure a Layer 2 interface as OpenFlow-enabled, you must add the interface to the OpenFlow virtual switch configuration at the [edit protocols openflow switch switch-name interfaces] hierarchy level. On MX Series routers, you must also configure all of the OpenFlow interfaces under the associated routing instance. 8

Chapter 1: Junos OS Support for OpenFlow v1.0 Overview and Configuration OpenFlow Flows For each ingress interface participating in OpenFlow, a single filter is created and applied to the interface in the input direction. The filter name is the concatenation of the interface name and an internally assigned virtual switch ID. The filter consists of one or more terms with match conditions and actions. OpenFlow flows are mapped to the filters as filter terms. OpenFlow controller requests to add, delete, and modify flows result in the addition, deletion, or modification of terms in the filter. Each flow entry corresponds to a filter term entry. However, each flow entry might map to one or more filter terms depending on the match condition for the ingress port. If the ingress port is a wildcard match, the flow entry appears as a term in all of the OpenFlow interface filters. For example, suppose that the OpenFlow controller sends a request to add a new flow entry with a wildcard match for the ingress port field. In this case, the flow is added as a new filter term for all OpenFlow interfaces on that virtual switch. Filter terms are ordered based on the OpenFlow flow priority. Higher priority terms are installed above lower priority terms. You can configure the default action for packets that do not match on any flow entry as either drop, which discards the packet, or packet-in, which accepts the packet and forwards it to the controller. The default action is specific to the OpenFlow virtual switch and is the same across all filters. If you do not explicitly configure the default action, the default is packet-in. Each flow entry has an idle timeout and a hard timeout associated with it. The idle timeout is the number of seconds after which the flow entry is removed from the flow table provided there are no matching packets. The hard timeout is the number of seconds after which the flow entry is removed from the flow table regardless of the number of matching packets. When the controller sends a flow entry modification message (OFPT_FLOW_MOD) to the switch, it can specify the idle timeout or hard timeout for that flow entry. The default idle timeout value is 0, which indicates that the flow entry does not time out. The minimum configurable idle timeout is 11 seconds. If the controller requests an idle timeout that is less than the minimum value, the switch rejects the flow modification message and a sends an error back to the controller. Related Documentation Installing Support for OpenFlow v1.0 on Devices Running Junos OS on page 9 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS on page 12 Junos OS Support for OpenFlow v1.0 Compliance Matrix on page 15 OpenFlow Operational Mode Commands on page 33 openflow (Protocols OpenFlow) on page 27 Installing Support for OpenFlow v1.0 on Devices Running Junos OS You can add support for OpenFlow v1.0 on a device running Junos OS by copying the software package to your device and then installing the package. The OpenFlow v1.0 9

Junos OS Support for OpenFlow v1.0 software package is identified by the jsdn prefix, and the filename string begins with the following format: jsdn-platformid-release where: platformid is the identifier for the platform. Table 1 on page 10 lists the supported devices and the corresponding identifiers for the software package. release is the identifier for the Junos OS release, for example, 12.3. Table 1: Software Packages for OpenFlow v1.0 Support Platform Package Devices MX jsdn MX240 To install the OpenFlow v1.0 software package on a device running Junos OS: 1. Download the software package to the device. 2. Install the software package using the request system software add operational mode command. user@host> request system software add path-to-jsdn-package Related Documentation Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS on page 12 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS Configuring the OpenFlow Interfaces on page 10 Configuring the OpenFlow Protocol on page 11 Configuring the OpenFlow Routing Instance (MX Series) on page 11 Configuring the OpenFlow Interfaces Configure all interfaces participating in OpenFlow as Layer 2 interfaces. On MX Series routers: Configure the physical link-layer encapsulation type and the logical interface protocol family. [edit interfaces interface-name] user@host# set encapsulation ethernet-bridge user@host# set unit 0 family bridge 10

Chapter 1: Junos OS Support for OpenFlow v1.0 Overview and Configuration On EX Series and QFX Series switches: Configure the logical interface protocol family. [edit interfaces interface-name] user@host# set unit 0 family ethernet-switching Configuring the OpenFlow Protocol To configure support for OpenFlow v1.0, create a virtual switch instance, and configure the controller information, participating interfaces, and optionally, the default action for packets that do not match a flow entry. 1. Configure the controller IP address and connection protocol. [edit protocols openflow switch switch-name] user@host# set controller address address user@host# set protocol tcp 2. Specify all interfaces participating in OpenFlow. [edit protocols openflow switch switch-name] user@host# set interfaces interface-name1 user@host# set interfaces interface-name2 3. (Optional) Configure the default-action statement for packets that do not match on an existing flow entry. If you do not configure the default-action statement, the default is packet-in. [edit protocols openflow switch switch-name] user@host# set default-action (drop packet-in) 4. (Optional) Configure OpenFlow traceoptions. [edit protocols openflow] user@host# set traceoptions flag all user@host# set traceoptions file file-name Configuring the OpenFlow Routing Instance (MX Series) On MX Series routers, configure each virtual switch as a separate routing instance using bridge domains and VLANs. This isolates the experimental OpenFlow traffic from the normal network traffic. 1. Configure the routing instance type as virtual switch. [edit routing-instances routing-instance-name] user@host# set instance-type virtual-switch 2. Configure the bridge domain name and VLAN ID. [edit routing-instances routing-instance-name] user@host# set bridge-domains bridge-domain-name vlan-id none 3. Configure the OpenFlow interfaces that will be bound to the routing instance. [edit routing-instances routing-instance-name] user@host# set bridge-domains bridge-domain-name interface interface-name1 11

Junos OS Support for OpenFlow v1.0 user@host# set bridge-domains bridge-domain-name interface interface-name2 user@host# set bridge-domains bridge-domain-name interface interface-name3 The unicast routing table name for a routing instance is routing-instance-name.inet.0. For example, if you configure a routing instance with the name rt-bd-1, the corresponding IP unicast table is rt-bd-1.inet.0. Related Documentation Understanding Junos OS Support for OpenFlow v1.0 on page 7 Installing Support for OpenFlow v1.0 on Devices Running Junos OS on page 9 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS on page 12 OpenFlow Operational Mode Commands on page 33 openflow (Protocols OpenFlow) on page 27 [edit protocols openflow] Hierarchy Level on page 23 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS This example shows how to configure OpenFlow v1.0 support on an MX240 router running Junos OS. Requirements on page 12 Overview on page 12 Configuration on page 13 Requirements MX240 router running Junos OS Release 12.3 or later. OpenFlow interfaces are already configured with an IP address. Router has a TCP connection to the controller. Router is connected to the management network through the fxp0 interface. Overview In this example, you configure three MX240 router interfaces, ge-1/0/0, ge-1/1/0, and xe-0/0/0, as OpenFlow interfaces. You first configure the interfaces as Layer 2 interfaces using ethernet-bridge encapsulation and protocol family bridge. MX Series routers require a separate virtual switch routing instance to isolate the experimental OpenFlow traffic from the normal network traffic. This example configures a virtual switch routing instance, rt-bd-1, using instance type virtual-switch at the [edit routing-instances] hierarchy level. Within the routing instance, the bridge domain of-bridge includes all of the interfaces participating in OpenFlow. You configure the OpenFlow protocol and OpenFlow virtual switch at the [edit protocols openflow] hierarchy level. In this example, the virtual switch connects to the controller over a TCP connection at IP address 192.168.68.159. The virtual switch configuration 12

Chapter 1: Junos OS Support for OpenFlow v1.0 Overview and Configuration must include all of the interfaces participating in OpenFlow. OpenFlow traffic will only ingress or egress from these interfaces. The default-action statement indicates the action the switch should take for packets that do not have a matching flow entry. This example explicitly configures the default action for packets that do not have a matching flow entry as packet-in. If you omit the default-action statement, the default action is packet-in, which indicates that packets with no matching flow entry should be sent to the controller for processing. This example also configures OpenFlow traceoptions. In this case, the flag all indicates that all OpenFlow events should be captured and logged. Since the example does not configure a specific filename for the log file, OpenFlow events are logged in the default OpenFlow log file /var/log/ofd. Configuration Step-by-Step Procedure 1. Configure the OpenFlow interfaces as Layer 2 interfaces. [edit interfaces] user@host# set ge-1/0/0 encapsulation ethernet-bridge unit 0 family bridge user@host# set ge-1/1/0 encapsulation ethernet-bridge unit 0 family bridge user@host# set xe-0/0/0 encapsulation ethernet-bridge unit 0 family bridge 2. Configure the virtual switch routing instance. [edit routing-instances] user@host# set rt-bd-1 instance-type virtual-switch user@host# set rt-bd-1 bridge-domains of-bridge vlan-id none user@host# set rt-bd-1 bridge-domains of-bridge interface ge-1/0/0.0 user@host# set rt-bd-1 bridge-domains of-bridge interface ge-1/1/0.0 user@host# set rt-bd-1 bridge-domains of-bridge interface xe-0/0/0.0 3. Configure the IP address of the OpenFlow controller. [edit protocols openflow switch switch1] user@host# set controller address 192.168.68.159 4. Configure the protocol for the connection to the OpenFlow controller. [edit protocols openflow switch switch1] user@host# set protocol tcp 5. Configure the interfaces participating in OpenFlow. [edit protocols openflow switch switch1] user@host# set ge-1/0/0.0 user@host# set ge-1/1/0.0 user@host# set xe-0/0/0.0 6. (Optional) Configure the default action for packets that do not have a matching flow entry. [edit protocols openflow switch switch1] user@host# set default-action packet-in 7. (Optional) Configure OpenFlow traceoptions. [edit protocols openflow] 13

Junos OS Support for OpenFlow v1.0 user@host# set traceoptions flag all Results From configuration mode, confirm your configuration by entering the show interfaces, show routing-instances, and show protocols openflow commands. If the output does not display the intended configuration, repeat the instructions in this example to correct the configuration. user@host# show interfaces ge-1/0/0 { encapsulation ethernet-bridge; unit 0 { family bridge; } } ge-1/1/0 { encapsulation ethernet-bridge; unit 0 { family bridge; } } xe-0/0/0 { encapsulation ethernet-bridge; unit 0 { family bridge; } } user@host# show routing-instances rt-bd-1 { instance-type virtual-switch; bridge-domains { of-bridge { vlan-id none; interface ge-1/0/0.0; interface ge-1/1/0.0; interface xe-0/0/0.0; } } } user@host# show protocols openflow [edit protocols openflow] switch switch1 { default-action packet-in; interfaces { ge-1/0/0.0; ge-1/1/0.0; xe-0/0/0.0; } controller { address 192.168.68.159; protocol tcp; } } 14

Chapter 1: Junos OS Support for OpenFlow v1.0 Overview and Configuration traceoptions { flag all; } Related Documentation Understanding Junos OS Support for OpenFlow v1.0 on page 7 Installing Support for OpenFlow v1.0 on Devices Running Junos OS on page 9 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 OpenFlow Operational Mode Commands on page 33 openflow (Protocols OpenFlow) on page 27openflow on page 27 [edit protocols openflow] Hierarchy Level on page 23 Junos OS Support for OpenFlow v1.0 Compliance Matrix The following tables list the support for OpenFlow v1.0 messages, match conditions, wild cards, flow actions, statistics, and features. Table 2 on page 15 lists support for messages. Table 3 on page 18 lists support for match conditions. Table 4 on page 19 lists support for wild cards. Table 5 on page 19 lists support for flow actions. Table 6 on page 20 lists support for statistics. Table 7 on page 21 lists support for features. Table 2 on page 15 lists the support for OpenFlow v1.0 messages. Table 2: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Message Set Section Specification MX 5.1 OFPT_HELLO OFPT_ERROR OFPT_ECHO_REQUEST OFPT_ECHO_REPLY OFPT_VENDOR Not OFPT_FEATURES_REQUEST OFPT_FEATURES_REPLY OFPT_GET_CONFIG_REQUEST 15

Junos OS Support for OpenFlow v1.0 Table 2: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Message Set (continued) Section Specification MX OFPT_GET_CONFIG_REPLY OFPT_SET_CONFIG Not OFPT_PACKET_IN OFPT_PACKET_IN with buffer_id Not OFPT_FLOW_REMOVED OFPT_PORT_STATUS OFPT_PACKET_OUT OFPT_PACKET_OUT with buffer_id Not OFPT_FLOW_MOD OFPT_FLOW_MOD with buffer_id Not OFPT_PORT_MOD Not OFPT_STATS_REQUEST OFPT_STATS_REPLY OFPT_BARRIER_REQUEST OFPT_BARRIER_REPLY OFPT_QUEUE_GET_CONFIG_REQUEST OFPT_QUEUE_GET_CONFIG_REPLY 5.2.1 OFPT_PORT_MODE Not OFPPC_PORT_DOWN Not OFPPC_NO_STP Not OFPPC_NO_RECV Not OFPPC_NO_RECV_STP Not OFPPC_NO_FLOOD Not 16

Chapter 1: Junos OS Support for OpenFlow v1.0 Overview and Configuration Table 2: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Message Set (continued) Section Specification MX OFPPC_NO_FWD Not OFPPC_NO_PACKET_IN Not OFPPS_LINK_DOWN OFPPS_STP_LISTEN Not OFPPS_STP_LEARN Not OFPPS_STP_FORWARD Not OFPPS_STP_BLOCK Not OFPPS_STP_MASK Not OFPP_FLOOD OFPPF_10MB_HD OFPPF_10MB_FD OFPPF_100MB_HD OFPPF_100MB_FD OFPPF_1GB_HD OFPPF_1GB_FD OFPPF_10GB_FD OFPPF_COPPER OFPPF_FIBER OFPPF_AUTONEG OFPPF_PAUSE Not OFPPF_PAUSE_ASYM Not 17

Junos OS Support for OpenFlow v1.0 Table 2: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Message Set (continued) Section Specification MX 5.3.1 OFPT_FEATURES_REPLY: Datapath ID N_buffers N_tables OFPC_FLOW_STATS OFPC_TABLE_STATS OFPC_PORT_STATS OFPC_STP OFPC_IP_REASM OFPC_QUEUE_STATS OFPC_ARP_MATCH_IP -1 1 Not Not 5.3.3 OFPT_FLOW_MOD: OFPFC_ADD OFPFC_ADD with OFPFF_CHECK_OVERLAP OFPFC_MODIFY OFPFC_MODIFY_STRICT OFPFC_DELETE OFPFC_DELETE_STRICT Table 3 on page 18 lists the support for OpenFlow v1.0 match conditions. Table 3: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Match Conditions Section Specification MX 5.2.3 dl_src (Ethernet source address) dl_dst (Ethernet destination address) dl_vlan (Input VLAN ID) dl_vlan_pcp (Input VLAN priority) dl_type (Ethernet frame type) nw_tos (IP TOS (6 bits DSCP)) nw_proto (IP Protocol or lower 8 bits of ARP opcode) nw_src (IP source address) nw_dst (IP destination address) tp_src (TCP/UDP source port) 18

Chapter 1: Junos OS Support for OpenFlow v1.0 Overview and Configuration Table 3: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Match Conditions (continued) Section Specification MX tp_dst (TCP/UDP destination port) Match all 12 tuples or a combination of tuples Table 4 on page 19 lists the support for OpenFlow v1.0 wild cards. Table 4: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Wild Cards Section Specification MX 5.2.3 OFPFW_IN_PORT OFPFW_DL_VLAN OFPFW_DL_SRC OFPFW_DL_DST OFPFW_DL_TYPE OFPFW_NW_PROTO OFPFW_TP_SRC OFPFW_TP_DST No wild cards set. Match entire 12 tuple. Table 5 on page 19 lists the support for OpenFlow v1.0 flow actions. Table 5: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Flow Actions Section Specification MX 5.2.4 OFPAT_OUTPUT: OFPP_IN_PORT OFPP_TABLE OFPP_NORMAL OFPP_FLOOD (except input and STP disabled ports) OFPP_ALL (except input port) OFPP_CONTROLLER OFPP_LOCAL Not Not 19

Junos OS Support for OpenFlow v1.0 Table 5: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Flow Actions (continued) Section Specification MX OFPAT_SET_VLAN_VID OFPAT_SET_VLAN_PCP OFPAT_STRIP_VLAN OFPAT_SET_DL_SRC OFPAT_SET_DL_DST OFPAT_SET_NW_SRC OFPAT_SET_NW_DST OFPAT_SET_NW_TOS OFPAT_SET_TP_SRC OFPAT_SET_TP_DST OFPAT_ENQUEUE Not Table 6 on page 20 lists the support for OpenFlow v1.0 statistics. Table 6: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Statistics Section Specification MX 5.3.5 OFPST_DESC OFPST_FLOW OFPST_AGGREGATE OFPST_TABLE OFPST_PORT OFPST_QUEUE OFPST_VENDOR Gracefully ignored Table 7 on page 21 lists the support for OpenFlow v1.0 features. 20

Chapter 1: Junos OS Support for OpenFlow v1.0 Overview and Configuration Table 7: Junos OS Support for OpenFlow v1.0 Compliance Matrix for Features Section Specification MX 5.3.3 Flow Idle Timeout Hard Timeout Flow Priority 4.4 Encryption. Controller and switch communicate through a TLS connection Not Related Documentation Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 OpenFlow Operational Mode Commands on page 33 21

Junos OS Support for OpenFlow v1.0 22

CHAPTER 2 Summary of OpenFlow Configuration Statements [edit protocols openflow] Hierarchy Level on page 23 [edit protocols openflow] Hierarchy Level protocols { openflow { switch switch-name { controller { address address; protocol tcp { port port; } role equal; } default-action action; interfaces { interface-name; } } traceoptions { file <filename> <files number> <match regular-expression> <size size> <world-readable no-world-readable>; flag flag; } } } Related Documentation Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS on page 12 openflow (Protocols OpenFlow) on page 27 OpenFlow Operational Mode Commands on page 33 23

Junos OS Support for OpenFlow v1.0 address (Protocols OpenFlow) Syntax address address; Hierarchy Level [edit protocols openflow switch switch-name controller] Release Information Statement introduced in Junos OS Release 12.3. Description Specify the IPv4 address of the OpenFlow controller that will manage OpenFlow on that virtual switch. The switch establishes a connection to the controller using this address. Options address IPv4 address of the OpenFlow controller. Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 controller (Protocols OpenFlow) on page 25 protocol (Protocols OpenFlow) on page 29 role (Protocols OpenFlow) on page 29 switch (Protocols OpenFlow) on page 30 24

Chapter 2: Summary of OpenFlow Configuration Statements controller (Protocols OpenFlow) Syntax controller { address address; protocol tcp { port port; } role equal; } Hierarchy Level [edit protocols openflow switch switch-name] Release Information Statement introduced in Junos OS Release 12.3. Description Configure the OpenFlow controller connection information for a virtual switch on an OpenFlow-enabled device running Junos OS. Options The remaining statements are explained separately. Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 address (Protocols OpenFlow) on page 24 protocol (Protocols OpenFlow) on page 29 role (Protocols OpenFlow) on page 29 switch (Protocols OpenFlow) on page 30 25

Junos OS Support for OpenFlow v1.0 default-action (Protocols OpenFlow) Syntax default-action (drop packet-in); Hierarchy Level [edit protocols openflow switch switch-name] Release Information Statement introduced in Junos OS Release 12.3. Description Specify the action executed by the OpenFlow-enabled device for packets that do not match an existing flow entry. Default If you do not include the default-action statement, the default action is packet-in. Options drop Drop packets that do not match an existing flow entry. packet-in Accept packets that do not match an existing flow entry, and forward the packet to the controller. Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 openflow (Protocols OpenFlow) on page 27 switch (Protocols OpenFlow) on page 30 interfaces (Protocols OpenFlow) Syntax interfaces interface-name; Hierarchy Level [edit protocols openflow switch switch-name] Release Information Statement introduced in Junos OS Release 12.3. Description Configure a Layer 2 interface as OpenFlow-enabled. Options interface-name Name of the interface. Required Privilege Level Related Documentation routing To view this statement in the configuration. routing-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 openflow (Protocols OpenFlow) on page 27 switch (Protocols OpenFlow) on page 30 26

Chapter 2: Summary of OpenFlow Configuration Statements openflow (Protocols OpenFlow) Syntax openflow { switch switch-name { controller { address address; protocol tcp { port port; role equal; } default-action action { interfaces { interface-name; } } traceoptions { file <filename> <files number> <match regular-expression> <size size> <world-readable no-world-readable>; flag flag; } } Hierarchy Level [edit protocols] Release Information Statement introduced in Junos OS Release 12.3. Description Configure support for OpenFlow v1.0. Default OpenFlow is disabled on the device. Options The remaining statements are explained separately. Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS on page 12 OpenFlow Operational Mode Commands on page 33 switch (Protocols OpenFlow) on page 30 traceoptions (Protocols OpenFlow) on page 31 27

Junos OS Support for OpenFlow v1.0 port (Protocols OpenFlow) Syntax port port; Hierarchy Level [edit protocols openflow switch switch-name controller protocol protocol] Release Information Statement introduced in Junos OS Release 12.3. Description Specify the OpenFlow controller port to which the OpenFlow-enabled virtual switch connects. Options port Numeric value specifying the OpenFlow controller port to which the device should connect. Range: 1024 through 65535 Default: 6633 Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 address (Protocols OpenFlow) on page 24 controller (Protocols OpenFlow) on page 25 protocol (Protocols OpenFlow) on page 29 28

Chapter 2: Summary of OpenFlow Configuration Statements protocol (Protocols OpenFlow) Syntax protocol tcp { port port; } Hierarchy Level [edit protocols openflow switch switch-name controller] Release Information Statement introduced in Junos OS Release 12.3. Description Specify the connection protocol that the OpenFlow-enabled device uses to connect to the OpenFlow controller. Options tcp Establish a TCP connection to the controller. The remaining statement is explained separately. Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 controller (Protocols OpenFlow) on page 25 port (Protocols OpenFlow) on page 28 protocol (Protocols OpenFlow) on page 29 role (Protocols OpenFlow) Syntax role equal; Hierarchy Level [edit protocols openflow switch switch-name controller] Release Information Statement introduced in Junos OS Release 12.3. Description Specify the role of each OpenFlow controller when configuring more than one controller for a virtual switch. A single controller configuration automatically puts the controller in active mode. In active mode, the virtual switch initiates a connection to the controller. Options equal Configure active/active mode for two controllers. Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 controller (Protocols OpenFlow) on page 25 29

Junos OS Support for OpenFlow v1.0 switch (Protocols OpenFlow) Syntax switch switch-name { controller { address address; protocol tcp { port port; role equal; } default-action (drop packet-in); interfaces { interface-name; } } Hierarchy Level [edit protocols openflow] Release Information Statement introduced in Junos OS Release 12.3. Description Configure an OpenFlow-enabled virtual switch. Each virtual switch establishes an independent connection with the controller. Options switch-name User-configured identifier for the virtual switch. The identifier should be 60 characters or less. The remaining statements are explained separately. Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 controller (Protocols OpenFlow) on page 25 default-action (Protocols OpenFlow) on page 26 interfaces (Protocols OpenFlow) on page 26 30

Chapter 2: Summary of OpenFlow Configuration Statements traceoptions (Protocols OpenFlow) Syntax traceoptions { file <filename> <files number> <match regular-expression> <size size> <world-readable no-world-readable>; flag flag; } Hierarchy Level [edit protocols openflow] Release Information Statement introduced in Junos OS Release 12.3. Description Define tracing operations for OpenFlow. Default If you do not include this statement, no OpenFlow-specific tracing operations are performed. Options file filename Name of the file to receive the output of the tracing operation. All files are placed in the /var/log directory. Default: /var/log/ofd files number (Optional) Maximum number of trace files. When a trace file named trace-file reaches its maximum size, it is renamed and compressed to trace-file.0.gz. When trace-file again reaches its maximum size, trace-file.0.gz is renamed trace-file.1.gz, and trace-file is renamed and compressed to trace-file.0.gz. This renaming scheme continues until the maximum number of trace files is reached. Then the oldest trace file is overwritten. If you specify a maximum number of files, you also must specify a maximum file size with the size option and a filename. Range: 2 through 1000 files Default: 10 files flag flag Tracing operation to perform. To specify more than one tracing operation, include multiple flag statements. You can include the following flags: all All OpenFlow events. configuration OpenFlow configuration events. flow OpenFlow flow events. filter OpenFlow filter events. function OpenFlow entry and exit events. packet-io OpenFlow packet in and packet out events. statistics OpenFlow statistics request and reply events. switch OpenFlow switch events. match regular-expression (Optional) Only log lines that match the regular expression. 31

Junos OS Support for OpenFlow v1.0 no-world-readable (Optional) Disable unrestricted file access, which restricts file access to the owner. This is the default. size size (Optional) Maximum size of each trace file in bytes, kilobytes (KB), megabytes (MB), or gigabytes (GB). If you do not specify a unit, the default is bytes. If you specify a maximum file size, you also must specify a maximum number of trace files with the files option and a filename. Syntax: size to specify bytes, sizek to specify KB, sizem to specify MB, or sizeg to specify GB Range: 10240 through 1073741824 bytes Default: 128 KB world-readable (Optional) Enable unrestricted file access. Required Privilege Level Related Documentation admin To view this statement in the configuration. admin-control To add this statement to the configuration. Understanding Junos OS Support for OpenFlow v1.0 on page 7 Configuring Support for OpenFlow v1.0 on Devices Running Junos OS on page 10 Example: Enabling OpenFlow v1.0 on a Device Running Junos OS on page 12 openflow (Protocols OpenFlow) on page 27 32

CHAPTER 3 OpenFlow Operational Mode Commands OpenFlow Operational Mode Commands on page 33 OpenFlow Operational Mode Commands Table 8 on page 33 summarizes the operational mode commands that you can use to monitor and troubleshoot OpenFlow operations on an OpenFlow-enabled device running Junos OS. Commands are listed in alphabetical order. Table 8: OpenFlow Operational Mode Commands Task Command Display support information for OpenFlow features, actions, and match conditions on the device. show openflow capability Display OpenFlow controller information and status. show openflow controller Display information for filters bound to OpenFlow interfaces. show openflow filters Display OpenFlow flow information. show openflow flows Display physical characteristics and status information for interfaces participating in OpenFlow. show openflow interfaces Display statistics for OpenFlow flow entries. show openflow statistics flows Display statistics for interfaces participating in OpenFlow. show openflow statistics interfaces Display statistics for Packet-in and Packet-out actions. show openflow statistics packet Display summary statistics for all OpenFlow flows. show openflow statistics summary Display statistics for OpenFlow flow tables. show openflow statistics tables Display summary information for OpenFlow flows. show openflow summary Display OpenFlow message statistics for an OpenFlow-enabled virtual switch. show openflow switch 33

Junos OS Support for OpenFlow v1.0 show openflow capability Syntax show openflow capability <feature match-condition action> Release Information Command introduced in Junos OS Release 12.3. Description Display support information for OpenFlow features, actions, and match conditions on the device. Options none Display support information for all OpenFlow capabilities. action (Optional) Display support information for OpenFlow actions. feature (Optional) Display support information for OpenFlow features. match-condition (Optional) Display support information for OpenFlow match conditions. Required Privilege Level Related Documentation admin OpenFlow Operational Mode Commands on page 33 List of Sample Output show openflow capability on page 36 show openflow capability action on page 37 show openflow capability feature on page 37 show openflow capability match-condition on page 37 Output Fields Table 9 on page 34 lists the output fields for the show openflow capability command. Output fields are listed in the approximate order in which they appear. Table 9: show openflow capability Output Fields Field Name Field Description Features Indicates Support for the Following OpenFlow Features Flow statistics Indicates if the switch supports OpenFlow flow statistics. Table statistics Indicates if the switch supports OpenFlow flow table statistics. Port statistics Indicates if the switch supports OpenFlow port statistics. 802.1d spanning tree Indicates if the switch supports the 802.1D Spanning Tree Protocol. Reassemble IP fragments Indicates if the switch supports reassembling IP fragments. Queue statistics Indicates if the switch supports OpenFlow queue statistics. Match IP addresses in ARP pkts Indicates if the switch supports matching on IP addresses in ARP packets. 34

Chapter 3: OpenFlow Operational Mode Commands Table 9: show openflow capability Output Fields (continued) Field Name Field Description Match Conditions Indicates Support for the Following OpenFlow Match Conditions Switch input port Displays support for matching against the ingress switch port. VLAN vid Displays support for matching against the VLAN identifier in the outermost VLAN tag. Ethernet source address Displays support for matching against the Ethernet source address. Ethernet destination address Displays support for matching against the Ethernet destination address. Ethernet frame type Displays support for matching against the Ethernet frame type. IP protocol Displays support for matching against the IP protocol or lower 8 bits of the ARP opcode. TCP/UDP source port Displays support for matching against the TCP or UDP source port. TCP/UDP destination port Displays support for matching against the TCP or UDP destination port. IP source address Displays support for matching against the IP source address. IP destination address Displays support for matching against the IP destination address. VLAN priority Displays support for matching against the VLAN priority in the outermost VLAN tag. IP ToS (DSCP field) Displays support for matching against the IPv4 ToS bits. Actions Indicates Support for the Following OpenFlow Actions Output to switch port Displays support for forwarding the packet to a specified port. Set the 802.1q VLAN id Displays support for the optional Modify-Field action to modify the existing 802.1q VLAN ID of the outermost VLAN tag in the frame header or to add a new header with the VLAN ID if none exists. Set the 802.1q priority Displays support for the optional Modify-Field action to modify the existing 802.1q VLAN priority of the outermost VLAN tag in the frame header or to add a new header with the VLAN priority if none exists. Strip the 802.1q header Displays support for the optional Pop-Tag action to remove the outermost VLAN header in the frame. Ethernet source address Displays support for the optional Modify-Field action to modify the Ethernet source address field in the frame header. 35

Junos OS Support for OpenFlow v1.0 Table 9: show openflow capability Output Fields (continued) Field Name Field Description Ethernet destination address Displays support for the optional Modify-Field action to modify the Ethernet destination address field in the frame header. IP source address Displays support for the optional Modify-Field action to modify the IP source address field and update the checksum in the packet header. IP destination address Displays support for the optional Modify-Field action to modify the IP destination address field and update the checksum in the packet header. IP ToS (DSCP) Displays support for the optional Modify-Field action to modify the IPv4 ToS field and update the IP checksum in the packet header. TCP/UDP source port Displays support for the optional Modify-Field action to modify the TCP or UDP source port field and update the checksum in the packet header. TCP/UDP destination port Displays support for the optional Modify-Field action to modify the TCP or UDP destination port field and update the checksum in the packet header. Output to queue Displays support for the optional Enqueue action to set the queue ID for the packet. Sample Output show openflow capability user@host> show openflow capability Flow statistics: Yes Table statistics: Yes Port statistics: Yes 802.1d spanning tree: No Reassemble IP fragments: Yes Queue statistics: Yes Match IP addresses in ARP pkts: Yes Openflowd platform match condition support: Switch input port: Yes VLAN vid: Yes Ethernet source address: Yes Ethernet destination address: Yes Ethernet frame type: Yes IP protocol: Yes TCP/UDP source port: Yes TCP/UDP destination port: Yes IP source address: Yes IP destination address: Yes VLAN priority: Yes IP ToS (DSCP field): Yes Openflowd platform action support: 36