def print_ofpt_port_mod(msg): """ Args: msg: OpenFlow message unpacked by python-openflow """ def _print_port_mod_config_mask(variable, name): """The mask field is used to select bits in the config field to change. The advertise field has no mask; all port features change together.""" print('PortMod %s: ' % name, end='') printed = False variable = _parse_phy_curr(variable) for i in variable: print(red(dissector.get_phy_config(i)), end='') printed = True else: _dont_print_0(printed) print() print('PortMod Port_no: %s HW_Addr: %s Pad: %s' % (yellow(msg.port_no.value), yellow(msg.hw_addr.value), msg.pad)) _print_port_mod_config_mask(msg.config.value, 'config') _print_port_mod_config_mask(msg.mask.value, 'mask') _print_port_mod_config_mask(msg.advertise.value, 'advertise')
def print_ofpt_set_config(msg): """ Args: msg: OpenFlow message unpacked by python-openflow """ flags = str(msg.flags) print('OpenFlow SetConfig - Flag: %s Miss_send_len: %s' % (yellow(flags.split('.')[1]), msg.miss_send_len))
def print_ofpt_port_mod(msg): """ Args: msg: OpenFlow message unpacked by python-openflow """ def _print_port_mod_config_mask(variable, name): print('PortMod %s: ' % name, end='') printed = False variable = _parse_phy_curr(variable) for i in variable: print(red(dissector.get_phy_config(i)), end='') printed = True else: _dont_print_0(printed) print() print('PortMod Port_no: %s HW_Addr: %s Pad: %s' % (yellow(msg.port_no.value), yellow(msg.hw_addr.value), msg.pad)) _print_port_mod_config_mask(msg.config.value, 'config') _print_port_mod_config_mask(msg.mask.value, 'mask') _print_port_mod_config_mask(msg.advertise.value, 'advertise')
def print_openflow_header(ofp): """ Print OpenFlow header Args: ofp: OFMessage class """ version = libs.tcpiplib.tcpip.get_ofp_version(ofp.header.version.value) name_version = '%s(%s)' % (version, ofp.header.version.value) name = "%s" % ofp.header.message_type name_type = '%s(%s)' % (name.split('.')[1], ofp.header.message_type.value) print('OpenFlow Version: %s Type: %s Length: %s XID: %s' % (name_version, yellow(name_type), ofp.header.length, red(ofp.header.xid)))