Port modification

Port modification is used to change the characteristics of a port in an OpenFlow instance on the switch via the controller. The controller sends an OFP_PORT_MOD message to the switch that can change the characteristics of a specific port.

The following command checks the state of the port configuration for all ports of an instance.

Syntax


show openflow instance <instance-name> port-statistics

Example

switch(of-inst-t1)# show openflow instance t1 port-statistics
Number of Ports :1
Port 1/1        : Up
Status
Admin. Status     : Enabled        Flood    : Enabled
Receive           : Enabled        Forward  : Enabled
Packet_in         : Disabled
Statistics
Collisions        : 0
Rx Packets        : 0             TxPackets : 47
Rx Bytes          : 0             TxBytes   : 10718
Rx Dropped        : 0             TxDropped : 0
Rx Errors         : 0             TxErrors  : 0
Frame Errors      : 0
CRC Errors        : 0
Overrun Errors    : 0

Example: OpenFlow version 1.0

Wireshark Capture of a sample Port-Mod message for a 1.0 instance

OpenFlow Protocol
 Header
  Version: 0x01
  Type: Port Mod (CSM) (15)
  Length: 32
  Transaction ID: 4
 Port Modification
  Port #: 5
   MAC Address: HewlettP_02:2c:bb (84:34:97:02:2c:bb)
Port ConfigFlags
.... .... .... .... .... .... .... ...0 = Port is administratively down: No (0)
.... .... .... .... .... .... .... ..0. = Disable 802.1D spanning tree on port: No (0)
.... .... .... .... .... .... .... .0.. = Drop non-802.1D packets received on port: No (0)
.... .... .... .... .... .... .... 0... = Drop received 802.1D STP packets: No (0)
.... .... .... .... .... .... ...1 .... = Do not include this port when flooding: Yes (1)
.... .... .... .... .... .... ..0. .... = Drop packets forwarded to port: No (0)
.... .... .... .... .... .... .0.. .... = Do not send packet-in msgs for port: No (0)
Port Config Mask
.... .... .... .... .... .... .... ...0 = Port is administratively down: No (0)
.... .... .... .... .... .... .... ..0. = Disable 802.1D spanning tree on port: No (0)
.... .... .... .... .... .... .... .0.. = Drop non-802.1D packets received on port: No (0)
.... .... .... .... .... .... .... 0... = Drop received 802.1D STP packets: No (0)
.... .... .... .... .... .... ...1 .... = Do not include this port when flooding: Yes (1)
.... .... .... .... .... .... ..0. .... = Drop packets forwarded to port: No (0)
.... .... .... .... .... .... .0.. .... = Do not send packet-in msgs for port: No (0)
Port Advertise Flags
.... .... .... .... .... .... .... ...0 = 10 Mb half-duplex rate support: No (0)
.... .... .... .... .... .... .... ..0. = 10 Mb full-duplex rate support: No (0)
.... .... .... .... .... .... .... .0.. = 100 Mb half-duplex rate support: No (0)
.... .... .... .... .... .... .... 0... = 100 Mb full-duplex rate support: No (0)
... .... .... .... .... .... ...0 .... = 1 Gb half-duplex rate support: No (0)
.... .... .... .... .... .... ..0. .... = 1 Gb full-duplex rate support: No (0)
.... .... .... .... .... .... .0.. .... = 10 Gb full-duplex rate support: No (0)
.... .... .... .... .... .... 0... .... = Copper medium support: No (0)
.... .... .... .... .... ...0 .... .... = Fiber medium support: No (0)
.... .... .... .... .... ..0. .... .... = Auto-negotiation support: No (0)
 .... .... .... .... .... .0.. .... .... = Pause support: No (0)
.... .... .... .... .... 0... .... .... = Asymmetric pause support: No (0)
Pad: 0
Pad: 0
Pad: 0
Pad: 0

Example: OpenFlow version 1.3

Wireshark Capture of a sample Port-Mod message for a 1.3 instance
OpenFlow Protocol
 Header
  Version: 0x04
  Type: Port Mod (CSM) (16)
   Length: 40
  Transaction ID: 4043243760 
  Port Modification
  Port #: 2
  Pad: 0
   Pad: 0
   Pad: 0
   Pad: 0
 MAC Address: HewlettP_02:2c:be (84:34:97:02:2c:be)
   Pad: 0
  Pad: 0
  Port ConfigFlags
.... .... .... .... .... .... .... ...0 = Port is administratively down: No (0)
.... .... .... .... .... .... .... ..0. = Disable 802.1D spanning tree on port: No (0)
.... .... .... .... .... .... .... .0.. = Drop non-802.1D packets received on port: No (0)
.... .... .... .... .... .... .... 0... = Drop received 802.1D STP packets: No (0)
.... .... .... .... .... .... ...0 .... = Do not include this port when flooding: No (0)
.... .... .... .... .... .... ..0. .... = Drop packets forwarded to port: No (0)
.... .... .... .... .... .... .1.. .... = Do not send packet-in msgs for port: Yes (1)
  Port Config Mask
.... .... .... .... .... .... .... ...0 = Port is administratively down: No (0)
.... .... .... .... .... .... .... ..0. = Disable 802.1D spanning tree on port: No (0)
.... .... .... .... .... .... .... .0.. = Drop non-802.1D packets received on port: No (0)
.... .... .... .... .... .... .... 0... = Drop received 802.1D STP packets: No (0)
.... .... .... .... .... .... ...0 .... = Do not include this port when flooding: No (0)
.... .... .... .... .... .... ..0. .... = Drop packets forwarded to port: No (0)
.... .... .... .... .... .... .1.. .... = Do not send packet-in msgs for port: Yes (1)
 Port Advertise Flags
.... .... .... .... .... .... .... ...0 = 10 Mb half-duplex rate support: No (0)
.... .... .... .... .... .... .... ..0. = 10 Mb full-duplex rate support: No (0)
.... .... .... .... .... .... .... .0.. = 100 Mb half-duplex rate support: No (0)
.... .... .... .... .... .... .... 0... = 100 Mb full-duplex rate support: No (0)
.... .... .... .... .... .... ...0 .... = 1 Gb half-duplex rate support: No (0)
.... .... .... .... .... .... ..0. .... = 1 Gb full-duplex rate support: No (0)
.... .... .... .... .... .... .0.. .... = 10 Gb full-duplex rate support: No (0)
.... .... .... .... .... .... 0... .... = Copper medium support: No (0)
.... .... .... .... .... ...0 .... .... = Fiber medium support: No (0)
.... .... .... .... .... ..0. .... .... = Auto-negotiation support: No (0)
.... .... .... .... .... .0.. .... .... = Pause support: No (0)
.... .... .... .... .... 0... .... .... = Asymmetric pause support: No (0)
  Pad: 0
  Pad: 0
 Pad: 0
 Pad: 0   

Example

Send a Port-Mod command to the switch using dpctl, a controller utility.

root@openflow-ubuntu-10:/home/openflow# dpct ltcp:10.20.30.50:6633 port-desc

... {no="6", hw_addr="00:1b:3f:cf:76:fa", name="A6", config="0x0", state="0x1",
curr="0x0", adv="0x0", supp="0x0", peer="0x0", curr_spd="100000000kbps",
max_spd="100000000kbps"} ...

root@openflow-ubuntu-10:/home/openflow# dcptl tcp:10.20.30.50:6633 port-mod
port=6,addr=00:1b:3f:cf:76:fa,conf=0x40,mask=0x40

SENDING:
port_mod{port="6", hwaddr="00:1b:3f:cf:76:fa", config="0x00000040",
mask="0x40", adv="0x0"}
OK

root@openflow-ubuntu-10:/home/openflow# dcptl tcp:10.20.30.50:6633 port-desc
... {no="6", hw_addr="00:1b:3f:cf:76:fa", name="A6", config="0x40",
state="0x1", curr="0x0", adv="0x0", supp="0x0", peer="0x0",
curr_spd="100000000kbps", max_spd="100000000kbps"} ...