示例#1
0
def acl_ut_entry_modify1(table_id, entry_id):
    global total, passed
    total.append(sys._getframe().f_code.co_name)
    e = nas_acl.EntryCPSObj(table_id=table_id, entry_id=entry_id)
    filters = {
        'DST_IP': '56.0.0.1',
        'IPV6_FLOW_LABEL': {'data': '34456', 'mask': '0xff'},
        'TCP_FLAGS': {'data': '0x17', 'mask': '0x3f'},
        'ECN': {'data': '0x2', 'mask': '0x2'},
        'IP_TYPE': 'IP',
        'IN_PORTS': [a_utl.get_if_name(3)],
    }
    actions = {
        'SET_DST_MAC': '01:00:79:08:78:BC',
        'MIRROR_INGRESS': {'index': mirror_id_1, 'data': mir_opq_1},
    }

    try:
        nas_acl.replace_entry_filter_list(
            table_id=table_id, entry_id=entry_id,
            filter_map=filters)
        nas_acl.replace_entry_action_list(
            table_id=table_id, entry_id=entry_id,
            action_map=actions)
    except RuntimeError:
        print (sys._getframe().f_code.co_name + " - Error Modifying Entry")
        return None

    print (sys._getframe().f_code.co_name +
           " - Modified Entry " + str(entry_id))
    raw_input(
        "Check entry is modified (Del SRCIP,SRCMAC,Redirect port. Changed IPv6Flowlabel mask,IN PORTS,Packet Action. Add DSTIP, DST-MAC action. Press Enter to continue...")
    passed.append(sys._getframe().f_code.co_name)
    return entry_id
示例#2
0
def acl_ut_entry_modify1(table_id, entry_id):
    global total, passed
    total.append(sys._getframe().f_code.co_name)
    e = nas_acl.EntryCPSObj(table_id=table_id, entry_id=entry_id)
    filters = {
        'DST_IP': '56.0.0.1',
        'IPV6_FLOW_LABEL': {'data': '34456', 'mask': '0xff'},
        'TCP_FLAGS': {'data': '0x17', 'mask': '0x3f'},
        'ECN': {'data': '0x2', 'mask': '0x2'},
        'IP_TYPE': 'IP',
        'IN_PORTS': [a_utl.get_if_name(3)],
    }
    actions = {
        'SET_DST_MAC': '01:00:79:08:78:BC',
        'MIRROR_INGRESS': {'index': mirror_id_1, 'data': mir_opq_1},
    }

    try:
        nas_acl.replace_entry_filter_list(
            table_id=table_id, entry_id=entry_id,
            filter_map=filters)
        nas_acl.replace_entry_action_list(
            table_id=table_id, entry_id=entry_id,
            action_map=actions)
    except RuntimeError:
        print (sys._getframe().f_code.co_name + " - Error Modifying Entry")
        return None

    print (sys._getframe().f_code.co_name +
           " - Modified Entry " + str(entry_id))
    raw_input(
        "Check entry is modified (Del SRCIP,SRCMAC,Redirect port. Changed IPv6Flowlabel mask,IN PORTS,Packet Action. Add DSTIP, DST-MAC action. Press Enter to continue...")
    passed.append(sys._getframe().f_code.co_name)
    return entry_id
def test_update_entry_action():
    print 'Creating ACL table'
    table_id = nas_acl.create_table('INGRESS', 100, ['IN_INTF'])
    print 'Table ID: %d' % table_id
    print 'Creating ACL entry'
    entry_id = nas_acl.create_entry(table_id, 1, {'IN_INTF': 'e101-001-0'},
                                    {'PACKET_ACTION': 'DROP'})
    print 'Entry ID: %d' % entry_id
    print 'Trying to set user trap ID with drop action (expected fail)'
    with pytest.raises(RuntimeError):
        nas_acl.replace_entry_action_list(table_id, entry_id, {
            'PACKET_ACTION': 'DROP',
            'SET_USER_TRAP_ID': 2
        })
    nas_acl.print_entry(table_id, entry_id)
    print 'Trying to set user trap ID with trap to CPU action'
    try:
        nas_acl.replace_entry_action_list(table_id, entry_id, {
            'PACKET_ACTION': 'TRAP_TO_CPU',
            'SET_USER_TRAP_ID': 2
        })
    except RuntimeError:
        assert False
    nas_acl.print_entry(table_id, entry_id)
    print 'Restoring ACL entry actions'
    try:
        nas_acl.replace_entry_action_list(table_id, entry_id,
                                          {'PACKET_ACTION': 'DROP'})
    except RuntimeError:
        assert False
    nas_acl.print_entry(table_id, entry_id)
    print 'Deleting ACL entry'
    nas_acl.delete_entry(table_id, entry_id)
    print 'Deleting ACL table'
    nas_acl.delete_table(table_id)
    nas_acl.replace_entry_filter_list(
        table_id=tid,
        entry_id=eid,
        filter_map=filters)
    nas_acl.print_entry(tid, eid)

    # Completely overwrite the action list with another set of actions
    print "Replaced action list - new action - Mirror egress"
    actions = {
        'MIRROR_EGRESS':
        {'index': mirr_id_2, 'data': mirr_opq_2}  # Attaching external obj
        # to ACL
        # action
    }
    nas_acl.replace_entry_action_list(
        table_id=tid,
        entry_id=eid,
        action_map=actions)
    nas_acl.print_entry(tid, eid)

except RuntimeError as r:
    print r

# Clean up
nas_acl.delete_entry(tid, eid)
nas_acl.delete_counter(tid, counter_id)

a_utl.mirror_delete(mirr_id_1)
a_utl.mirror_delete(mirr_id_2)
nas_acl.delete_table(tid)
print "Clean up Successful"
示例#5
0
                                      entry_id=eid,
                                      filter_map=filters)
    nas_acl.print_entry(tid, eid)

    # Completely overwrite the action list with another set of actions
    print "Replaced action list - new action - Mirror egress"
    actions = {
        'MIRROR_EGRESS': {
            'index': mirr_id_2,
            'data': mirr_opq_2
        }  # Attaching external obj
        # to ACL
        # action
    }
    nas_acl.replace_entry_action_list(table_id=tid,
                                      entry_id=eid,
                                      action_map=actions)
    nas_acl.print_entry(tid, eid)

except RuntimeError as r:
    print r

# Clean up
nas_acl.delete_entry(tid, eid)
nas_acl.delete_counter(tid, counter_id)

a_utl.mirror_delete(mirr_id_1)
a_utl.mirror_delete(mirr_id_2)
nas_acl.delete_table(tid)
print "Clean up Successful"