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"
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"