Exemple #1
0
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')
Exemple #2
0
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))
Exemple #3
0
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')
Exemple #4
0
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)))