コード例 #1
0
def mlx5_ifc_ste_v0_gre_bits_tag_parser(bin_str):
    ret = {}
    ret["gre_c_present"] = _val(bin_str[0: 1])
    ret["reserved_at_1"] = _val(bin_str[1: 2])
    ret["gre_k_present"] = _val(bin_str[2: 3])
    ret["gre_s_present"] = _val(bin_str[3: 4])
    ret["strict_src_route"] = _val(bin_str[4: 5])
    ret["recur"] = _val(bin_str[5: 8])
    ret["flags"] = _val(bin_str[8: 13])
    ret["version"] = _val(bin_str[13: 16])
    ret["gre_protocol"] = _val(bin_str[16: 32])
    ret["checksum"] = _val(bin_str[32: 48])
    ret["offset"] = _val(bin_str[48: 64])
    ret["gre_key_h"] = _val(bin_str[64: 88])
    ret["gre_key_l"] = _val(bin_str[88: 96])
    ret["seq_num"] = _val(bin_str[96: 128])
    return ret
コード例 #2
0
def mlx5_ifc_ste_v0_eth_l3_ipv6_src_bits_tag_parser_p(bin_str):
    ret = {}
    ret["src_ip"] = _val(bin_str[0: 128])
    return ret
コード例 #3
0
def mlx5_ifc_ste_v0_mpls_bits_tag_parser(bin_str):
    ret = {}
    ret["mpls0_label"] = _val(bin_str[0: 20])
    ret["mpls0_exp"] = _val(bin_str[20: 23])
    ret["mpls0_s_bos"] = _val(bin_str[23: 24])
    ret["mpls0_ttl"] = _val(bin_str[24: 32])
    ret["mpls1_label"] = _val(bin_str[32: 64])
    ret["mpls2_label"] = _val(bin_str[64: 96])
    ret["reserved_at_60"] = _val(bin_str[96: 118])
    ret["mpls4_s_bit"] = _val(bin_str[118: 119])
    ret["mpls4_qualifier"] = _val(bin_str[119: 120])
    ret["mpls3_s_bit"] = _val(bin_str[120: 121])
    ret["mpls3_qualifier"] = _val(bin_str[121: 122])
    ret["mpls2_s_bit"] = _val(bin_str[122: 123])
    ret["mpls2_qualifier"] = _val(bin_str[123: 124])
    ret["mpls1_s_bit"] = _val(bin_str[124: 125])
    ret["mpls1_qualifier"] = _val(bin_str[125: 126])
    ret["mpls0_s_bit"] = _val(bin_str[126: 127])
    ret["mpls0_qualifier"] = _val(bin_str[127: 128])
    return ret
コード例 #4
0
def mlx5_ifc_ste_src_gvmi_qp_v1_bits_tag_parser(bin_str):
	ret = {}
	ret["loopback_synd"] = _val(bin_str[0: 8])
	ret["reserved_at_8"] = _val(bin_str[8: 15])
	ret["defal_lb"] = _val(bin_str[15: 16])
	ret["source_gvmi"] = _val(bin_str[16: 32])
	ret["force_lb"] = _val(bin_str[32: 33])
	ret["reserved_at_21"] = _val(bin_str[33: 34])
	ret["source_is_requestor"] = _val(bin_str[34: 35])
	ret["reserved_at_23"] = _val(bin_str[35: 40])
	ret["source_qp"] = _val(bin_str[40: 64])
	ret["reserved_at_40"] = _val(bin_str[64: 96])
	ret["reserved_at_60"] = _val(bin_str[96: 128])
	return ret
コード例 #5
0
def mlx5_ifc_ste_v0_eth_l2_tnl_bits_tag_parser_p(bin_str):
    ret = {}
    ret["dmac"] = _val(bin_str[0: 48])
    ret["ethertype"] = _val(bin_str[48: 64])
    ret["l2_tunneling_network_id"] = _val(bin_str[64: 88])
    ret["ip_fragmented"] = _val(bin_str[96: 97])
    ret["tcp_syn"] = _val(bin_str[97: 98])
    ret["encp_type"] = _val(bin_str[98: 100])
    ret["ip_version"] = conv_ip_version(_val(bin_str[100: 102]))
    ret["l4_type"] = _val(bin_str[102: 104])
    ret["first_prio"] = _val(bin_str[104: 107])
    ret["first_cfi"] = _val(bin_str[107: 108])
    ret["gre_key_flag"] = _val(bin_str[111: 112])
    ret["first_vlan_qualifier"] = _val(bin_str[112: 114])
    ret["first_vid"] = _val(bin_str[116: 128])
    return ret
コード例 #6
0
def mlx5_ifc_ste_eth_l2_src_dst_v1_bits_tag_parser_p(bin_str):
    ret = {}
    ret["dmac"] = _val(bin_str[0:32] + bin_str[64:80])
    ret["smac"] = _val(bin_str[32:64] + bin_str[112:128])
    ret["reserved_at_50"] = _val(bin_str[80:82])
    ret["functional_lb"] = _val(bin_str[82:83])
    ret["reserved_at_53"] = _val(bin_str[83:88])
    ret["port"] = _val(bin_str[88:90])
    ret["l3_type"] = _val(bin_str[90:92])
    ret["reserved_at_5c"] = _val(bin_str[92:94])
    ret["first_vlan_qualifier"] = _val(bin_str[94:96])
    ret["first_priority"] = _val(bin_str[96:99])
    ret["first_cfi"] = _val(bin_str[99:100])
    ret["first_vlan_id"] = _val(bin_str[100:112])
    return ret
コード例 #7
0
def mlx5_ifc_ste_eth_l2_tnl_v1_bits_tag_parser_p(bin_str):
    ret = {}
    ret["l2_tunneling_network_id"] = _val(bin_str[0:32])
    ret["dmac"] = _val(bin_str[32:80])
    ret["l3_ethertype"] = _val(bin_str[80:96])
    ret["reserved_at_60"] = _val(bin_str[96:99])
    ret["ip_fragmented"] = _val(bin_str[99:100])
    ret["reserved_at_64"] = _val(bin_str[100:102])
    ret["encp_type"] = _val(bin_str[102:104])
    ret["reserved_at_68"] = _val(bin_str[104:106])
    ret["l3_type"] = _val(bin_str[106:108])
    ret["l4_type"] = _val(bin_str[108:110])
    ret["first_vlan_qualifier"] = _val(bin_str[110:112])
    ret["first_priority"] = _val(bin_str[112:115])
    ret["first_cfi"] = _val(bin_str[115:116])
    ret["first_vlan_id"] = _val(bin_str[116:128])
    return ret
コード例 #8
0
def mlx5_ifc_ste_def0_v1_bits_parser(bin_str):
    ret = {}
    ret["metadata_reg_c_0"] = _val(bin_str[0: 32])
    ret["metadata_reg_c_1"] = _val(bin_str[32: 64])
    ret["dmac"] = _val(bin_str[64: 112])
    ret["ethertype"] = _val(bin_str[112: 128])
    ret["reserved_at_60"] = _val(bin_str[128: 129])
    ret["sx_sniffer"] = _val(bin_str[129: 130])
    ret["functional_loopback"] = _val(bin_str[130: 131])
    ret["ip_frag"] = _val(bin_str[131: 132])
    ret["qp_type"] = _val(bin_str[132: 134])
    ret["encapsulation_type"] = _val(bin_str[134: 136])
    ret["port"] = _val(bin_str[136: 138])
    ret["outer_l3_type"] = _val(bin_str[138: 140])
    ret["outer_l4_type"] = _val(bin_str[140: 142])
    ret["first_vlan_qualifier"] = _val(bin_str[142: 144])
    ret["first_priority"] = _val(bin_str[144: 147])
    ret["first_cfi"] = _val(bin_str[147: 148])
    ret["first_vlan_id"] = _val(bin_str[148: 160])
    ret["reserved_at_80"] = _val(bin_str[160: 170])
    ret["force_loopback"] = _val(bin_str[170: 171])
    ret["reserved_at_8b"] = _val(bin_str[171: 174])
    ret["second_vlan_qualifier"] = _val(bin_str[174: 176])
    ret["second_priority"] = _val(bin_str[176: 179])
    ret["second_cfi"] = _val(bin_str[179: 180])
    ret["second_vlan_id"] = _val(bin_str[180: 192])
    ret["smac"] = _val(bin_str[192: 240])
    ret["inner_ipv4_checksum_ok"] = _val(bin_str[240: 241])
    ret["inner_l4_checksum_ok"] = _val(bin_str[241: 242])
    ret["outer_ipv4_checksum_ok"] = _val(bin_str[242: 243])
    ret["outer_l4_checksum_ok"] = _val(bin_str[243: 244])
    ret["inner_l3_ok"] = _val(bin_str[244: 245])
    ret["inner_l4_ok"] = _val(bin_str[245: 246])
    ret["outer_l3_ok"] = _val(bin_str[246: 247])
    ret["outer_l4_ok"] = _val(bin_str[247: 248])
    ret["tcp_cwr"] = _val(bin_str[248: 249])
    ret["tcp_ece"] = _val(bin_str[249: 250])
    ret["tcp_urg"] = _val(bin_str[250: 251])
    ret["tcp_ack"] = _val(bin_str[251: 252])
    ret["tcp_psh"] = _val(bin_str[252: 253])
    ret["tcp_rst"] = _val(bin_str[253: 254])
    ret["tcp_syn"] = _val(bin_str[254: 255])
    ret["tcp_fin"] = _val(bin_str[255: 256])
    return ret;
コード例 #9
0
def mlx5_ifc_ste_def2_v1_bits_parser(bin_str):
    ret = {}
    ret["metadata_reg_a"] = _val(bin_str[0: 32])
    ret["outer_ip_version"] = _val(bin_str[32: 36])
    ret["outer_ip_ihl"] = _val(bin_str[36: 40])
    ret["outer_ip_dscp"] = _val(bin_str[40: 46])
    ret["outer_ip_ecn"] = _val(bin_str[46: 48])
    ret["outer_ip_ttl"] = _val(bin_str[48: 56])
    ret["outer_ip_protocol"] = _val(bin_str[56: 64])
    ret["outer_ip_identification"] = _val(bin_str[64: 80])
    ret["outer_ip_flags"] = _val(bin_str[80: 83])
    ret["outer_ip_fragment_offset"] = _val(bin_str[83: 96])
    ret["outer_ip_total_length"] = _val(bin_str[96: 112])
    ret["outer_ip_checksum"] = _val(bin_str[112: 128])
    ret["reserved_180"] = _val(bin_str[128: 140])
    ret["outer_ip_flow_label"] = _val(bin_str[140: 160])
    ret["outer_eth_packet_length"] = _val(bin_str[160: 176])
    ret["outer_ip_payload_length"] = _val(bin_str[176: 192])
    ret["outer_l4_sport"] = _val(bin_str[192: 208])
    ret["outer_l4_dport"] = _val(bin_str[208: 224])
    ret["outer_data_offset"] = _val(bin_str[224: 228])
    ret["reserved_1e4"] = _val(bin_str[228: 229])
    ret["reserved_1e5"] = _val(bin_str[229: 230])
    ret["outer_ip_frag"] = _val(bin_str[230: 231])
    ret["tcp_ns"] = _val(bin_str[231: 232])
    ret["tcp_cwr"] = _val(bin_str[232: 233])
    ret["tcp_ece"] = _val(bin_str[233: 234])
    ret["tcp_urg"] = _val(bin_str[234: 235])
    ret["tcp_ack"] = _val(bin_str[235: 236])
    ret["tcp_psh"] = _val(bin_str[236: 237])
    ret["tcp_rst"] = _val(bin_str[237: 238])
    ret["tcp_syn"] = _val(bin_str[238: 239])
    ret["tcp_fin"] = _val(bin_str[239: 240])
    ret["outer_ip_frag_first"] = _val(bin_str[240: 241])
    ret["reserved_1f0"] = _val(bin_str[241: 248])
    ret["inner_ipv4_checksum_ok"] = _val(bin_str[248: 249])
    ret["inner_l4_checksum_ok"] = _val(bin_str[249: 250])
    ret["outer_ipv4_checksum_ok"] = _val(bin_str[250: 251])
    ret["outer_l4_checksum_ok"] = _val(bin_str[251: 252])
    ret["inner_l3_ok"] = _val(bin_str[252: 253])
    ret["inner_l4_ok"] = _val(bin_str[253: 254])
    ret["outer_l3_ok"] = _val(bin_str[254: 255])
    ret["outer_l4_ok"] = _val(bin_str[255: 256])
    return ret
コード例 #10
0
def mlx5_ifc_ste_def26_v1_bits_parser(bin_str):
        ret = {}
    
        ret["inner_ip_src_addr"] = _val(bin_str[0: 32])
        ret["inner_ip_dst_addr"] = _val(bin_str[32: 64])
        ret["inner_l4_sport"] = _val(bin_str[64: 80])
        ret["inner_l4_dport"] = _val(bin_str[80: 96])
        ret["tunnel_header_0"] = _val(bin_str[96: 128])
        ret["tunnel_header_1"] = _val(bin_str[128: 160])
        ret["reserved_at_a0"] = _val(bin_str[160: 192])
        ret["port_number_dup"] = _val(bin_str[192: 194])
        ret["inner_l3_type"] = _val(bin_str[194: 196])
        ret["inner_l4_type"] = _val(bin_str[196: 198])
        ret["inner_first_vlan_type"] = _val(bin_str[198: 200])
        ret["port_number"] = _val(bin_str[200: 202])
        ret["outer_l3_type"] = _val(bin_str[202: 204])
        ret["outer_l4_type"] = _val(bin_str[204: 206])
        ret["outer_first_vlan_type"] = _val(bin_str[206: 208])
        ret["outer_l4_dport"] = _val(bin_str[208: 224])
        ret["reserved_at_e0"] = _val(bin_str[224: 256])
        ret["src_ipv6_127_96"] = _val(bin_str[256: 288])
        ret["src_ipv6_95_64"] = _val(bin_str[288: 320])
        ret["src_ipv6_63_32"] = _val(bin_str[320: 352])
        ret["src_ipv6_31_0"] = _val(bin_str[352: 384])
        ret["reserved_at_80"] = _val(bin_str[384: 387])
        ret["ip_frag"] = _val(bin_str[387: 388])
        ret["reserved_at_84"] = _val(bin_str[388: 394])
        ret["l3_type"] = _val(bin_str[394: 396])
        ret["l4_type"] = _val(bin_str[396: 398])
        ret["first_vlan_type"] = _val(bin_str[398: 400])
        ret["first_priority"] = _val(bin_str[400: 403])
        ret["first_cfi"] = _val(bin_str[403: 404])
        ret["first_vlan_id"] = _val(bin_str[404: 416])
        ret["reserved_at_a0"] = _val(bin_str[416: 427])
        ret["l2_ok"] = _val(bin_str[427: 428])
        ret["l3_ok"] = _val(bin_str[428: 429])
        ret["l4_ok"] = _val(bin_str[429: 430])
        ret["second_vlan_type"] = _val(bin_str[430: 432])
        ret["second_priority"] = _val(bin_str[432: 435])
        ret["second_cfi"] = _val(bin_str[435: 436])
        ret["second_vlan_id"] = _val(bin_str[436: 448])
        ret["smac"] = _val(bin_str[448: 496])
        ret["ip_porotcol"] = _val(bin_str[496: 504])
        ret["tcp_cwr"] = _val(bin_str[504: 505])
        ret["tcp_ece"] = _val(bin_str[505: 506])
        ret["tcp_urg"] = _val(bin_str[506: 507])
        ret["tcp_ack"] = _val(bin_str[507: 508])
        ret["tcp_psh"] = _val(bin_str[508: 509])
        ret["tcp_rst"] = _val(bin_str[509: 510])
        ret["tcp_syn"] = _val(bin_str[510: 511])
        ret["tcp_fin"] = _val(bin_str[511: 512])
        return ret;
コード例 #11
0
def mlx5_ifc_ste_def6_v1_bits_parser(bin_str):
        ret = {}
        
        ret["dst_ipv6_127_96"] = _val(bin_str[0: 32])
        ret["dst_ipv6_95_64"] = _val(bin_str[32: 64])
        ret["dst_ipv6_63_32"] = _val(bin_str[64: 96])
        ret["dst_ipv6_31_0"] = _val(bin_str[96: 128])
        ret["reserved_at_80"] = _val(bin_str[128: 192])
        ret["outer_l4_sport"] = _val(bin_str[192: 208])
        ret["outer_l4_dport"] = _val(bin_str[208: 224])
        ret["reserved_e0"] = _val(bin_str[224: 228])
        ret["l4_ok"] = _val(bin_str[228: 229])
        ret["l3_ok"] = _val(bin_str[229: 230])
        ret["ip_frag"] = _val(bin_str[230: 231])
        ret["tcp_ns"] = _val(bin_str[231: 232])
        ret["tcp_cwr"] = _val(bin_str[232: 233])
        ret["tcp_ece"] = _val(bin_str[233: 234])
        ret["tcp_urg"] = _val(bin_str[234: 235])
        ret["tcp_ack"] = _val(bin_str[235: 236])
        ret["tcp_psh"] = _val(bin_str[236: 237])
        ret["tcp_rst"] = _val(bin_str[237: 238])
        ret["tcp_syn"] = _val(bin_str[238: 239])
        ret["tcp_fin"] = _val(bin_str[239: 240])
        ret["reserved_f0"] = _val(bin_str[240: 256])
        return ret;
コード例 #12
0
def mlx5_ifc_ste_def25_v1_bits_parser(bin_str):
        ret = {}

        ret["inner_ip_src_addr"] = _val(bin_str[0: 32])
        ret["inner_ip_dst_addr"] = _val(bin_str[32: 64])
        ret["inner_l4_sport"] = _val(bin_str[64: 80])
        ret["inner_l4_dport"] = _val(bin_str[80: 96])
        ret["tunnel_header_0"] = _val(bin_str[96: 128])
        ret["tunnel_header_1"] = _val(bin_str[128: 160])
        ret["reserved_at_a0"] = _val(bin_str[160: 192])
        ret["port_number_dup"] = _val(bin_str[192: 194])
        ret["inner_l3_type"] = _val(bin_str[194: 196])
        ret["inner_l4_type"] = _val(bin_str[196: 198])
        ret["inner_first_vlan_type"] = _val(bin_str[198: 200])
        ret["port_number"] = _val(bin_str[200: 202])
        ret["outer_l3_type"] = _val(bin_str[202: 204])
        ret["outer_l4_type"] = _val(bin_str[204: 206])
        ret["outer_first_vlan_type"] = _val(bin_str[206: 208])
        ret["outer_l4_dport"] = _val(bin_str[208: 224])
        ret["reserved_at_e0"] = _val(bin_str[224: 256])
        return ret;
コード例 #13
0
def mlx5_ifc_ste_def22_v1_bits_tag_parser(bin_str):
        ret = {};
        ret["outer_ip_src_addr"] = _val(bin_str[0: 32])
        ret["outer_ip_dst_addr"] = _val(bin_str[32: 64])
        ret["outer_l4_sport"] = _val(bin_str[64: 80])
        ret["outer_l4_dport"] = _val(bin_str[80: 96])
        ret["reserved_at_40"] = _val(bin_str[96: 97])
        ret["sx_sniffer"] = _val(bin_str[97: 98])
        ret["functional_loopback"] = _val(bin_str[98: 99])
        ret["outer_ip_frag"] = _val(bin_str[99: 100])
        ret["qp_type"] = _val(bin_str[100: 102])
        ret["encapsulation_type"] = _val(bin_str[102: 104])
        ret["port"] = _val(bin_str[104: 106])
        ret["outer_l3_type"] = _val(bin_str[106: 108])
        ret["outer_l4_type"] = _val(bin_str[108: 110])
        ret["first_vlan_qualifier"] = _val(bin_str[110: 112])
        ret["first_priority"] = _val(bin_str[112: 115])
        ret["first_cfi"] = _val(bin_str[115: 116])
        ret["first_vlan_id"] = _val(bin_str[116: 128])
        ret["metadata_reg_c_0"] = _val(bin_str[128: 160])
        ret["dmac"] = _val(bin_str[160: 192] + bin_str[240: 256])
        ret["smac"] = _val(bin_str[192: 240])
        return ret;
コード例 #14
0
def mlx5_ifc_ste_def24_v1_bits_tag_parser(bin_str):
        ret = {};
        ret["metadata_reg_c_2"] = _val(bin_str[0: 32])
        ret["metadata_reg_c_3"] = _val(bin_str[32: 64])
        ret["metadata_reg_c_0"] = _val(bin_str[64: 96])
        ret["metadata_reg_c_1"] = _val(bin_str[96: 128])
        ret["outer_ip_src_addr"] = _val(bin_str[128: 160])
        ret["outer_ip_dst_addr"] = _val(bin_str[160: 192])
        ret["outer_l4_sport"] = _val(bin_str[192: 208])
        ret["outer_l4_dport"] = _val(bin_str[208: 224])
        ret["inner_ip_protocol"] = _val(bin_str[224: 232])
        ret["inner_l3_type"] = _val(bin_str[232: 234])
        ret["inner_l4_type"] = _val(bin_str[234: 236])
        ret["inner_first_vlan_type"] = _val(bin_str[236: 238])
        ret["inner_ip_frag"] = _val(bin_str[238: 239])
        ret["functional_lb"] = _val(bin_str[239: 240])
        ret["outer_ip_protocol"] = _val(bin_str[240: 248])
        ret["outer_l3_type"] = _val(bin_str[248: 250])
        ret["outer_l4_type"] = _val(bin_str[250: 252])
        ret["outer_first_vlan_type"] = _val(bin_str[252: 254])
        ret["outer_ip_frag"] = _val(bin_str[254: 255])
        ret["functional_lb_dup"] = _val(bin_str[255: 256])
        return ret;
コード例 #15
0
def mlx5_ifc_ste_v0_eth_l2_dst_bits_tag_parser_p(bin_str):
    ret = {}
    ret["dmac"] = _val(bin_str[0: 48])
    ret["ethertype"] = _val(bin_str[48: 64])
    ret["qp_type"] = _val(bin_str[64: 66])
    ret["ethertype_filter"] = _val(bin_str[66: 67])
    ret["sx_sniffer"] = _val(bin_str[68: 69])
    ret["force_lb"] = _val(bin_str[69: 70])
    ret["functional_lb"] = _val(bin_str[70: 71])
    ret["port"] = _val(bin_str[71: 72])
    ret["first_prio"] = _val(bin_str[76: 79])
    ret["first_cfi"] = _val(bin_str[79: 80])
    ret["first_vlan_qualifier"] = _val(bin_str[80: 82])
    ret["first_vid"] = _val(bin_str[84: 96])
    ret["ip_fragmented"] = _val(bin_str[96: 97])
    ret["tcp_syn"] = _val(bin_str[97: 98])
    ret["encp_type"] = _val(bin_str[98: 100])
    ret["ip_version"] = conv_ip_version(_val(bin_str[100: 102]))
    ret["l4_type"] = _val(bin_str[102: 104])
    ret["second_priority"] = _val(bin_str[108: 111])
    ret["second_cfi"] = _val(bin_str[111: 112])
    ret["second_vlan_qualifier"] = _val(bin_str[112: 114])
    ret["second_vlan_id"] = _val(bin_str[116: 128])
    return ret
コード例 #16
0
def mlx5_ifc_ste_eth_l2_dst_v1_bits_tag_parser_p(bin_str):
	ret = {}
	ret["reserved_at_0"] = _val(bin_str[0: 1])
	ret["sx_sniffer"] = _val(bin_str[1: 2])
	ret["functional_lb"] = _val(bin_str[2: 3])
	ret["ip_fragmented"] = _val(bin_str[3: 4])
	ret["qp_type"] = _val(bin_str[4: 6])
	ret["encapsulation_type"] = _val(bin_str[6: 8])
	ret["port"] = _val(bin_str[8: 10])
	ret["l3_type"] = _val(bin_str[10: 12])
	ret["l4_type"] = _val(bin_str[12: 14])
	ret["first_vlan_qualifier"] = _val(bin_str[14: 16])
	ret["first_priority"] = _val(bin_str[16: 19])
	ret["first_cfi"] = _val(bin_str[19: 20])
	ret["first_vlan_id"] = _val(bin_str[20: 32])
	ret["dmac"] = _val(bin_str[32: 80])
	ret["l3_ethertype"] = _val(bin_str[80: 96])
	ret["reserved_at_60"] = _val(bin_str[96: 102])
	ret["tcp_syn"] = _val(bin_str[102: 103])
	ret["reserved_at_67"] = _val(bin_str[103: 106])
	ret["force_lb"] = _val(bin_str[106: 107])
	ret["l2_ok"] = _val(bin_str[107: 108])
	ret["l3_ok"] = _val(bin_str[108: 109])
	ret["l4_ok"] = _val(bin_str[109: 110])
	ret["second_vlan_qualifier"] = _val(bin_str[110: 112])
	ret["second_priority"] = _val(bin_str[112: 115])
	ret["second_cfi"] = _val(bin_str[115: 116])
	ret["second_vlan_id"] = _val(bin_str[116: 128])
	return ret
コード例 #17
0
def mlx5_ifc_ste_v0_eth_l2_src_dst_bits_tag_parser_p(bin_str):
    ret = {}
    ret["dmac"] = _val(bin_str[0: 48])
    ret["smac"] = _val(bin_str[48: 96])
    ret["sx_sniffer"] = _val(bin_str[96: 97])
    ret["force_lb"] = _val(bin_str[97: 98])
    ret["functional_lb"] = _val(bin_str[98: 99])
    ret["port"] = _val(bin_str[99: 100])
    ret["ip_version"] = conv_ip_version(_val(bin_str[100: 102]))
    ret["first_prio"] = _val(bin_str[108: 111])
    ret["first_cfi"] = _val(bin_str[111: 112])
    ret["first_vlan_qualifier"] = _val(bin_str[112: 114])
    ret["first_vid"] = _val(bin_str[116: 128])
    return ret
コード例 #18
0
def mlx5_ifc_ste_v0_rx_steering_mult_bits_parser(bin_str, raw):
    ret = {}
    ret["entry_type"] = _val(bin_str[0: 4])
    ret["reserved_at_4"] = _val(bin_str[4: 8])
    ret["entry_sub_type"] = _val(bin_str[8: 16])
    ret["byte_mask"] = _val(bin_str[16: 32])
    ret["next_table_base_63_48"] = _val(bin_str[32: 48])
    ret["next_lu_type"] = _val(bin_str[48: 56])
    ret["next_table_base_39_32_size"] = _val(bin_str[56: 64])
    ret["next_table_base_31_5_size"] = _val(bin_str[64: 91])
    ret["linear_hash_enable"] = _val(bin_str[91: 92])
    ret["reserved_at_5c"] = _val(bin_str[92: 94])
    ret["next_table_rank"] = _val(bin_str[94: 96])
    ret["member_count"] = _val(bin_str[96: 112])
    ret["gvmi"] = _val(bin_str[112: 128])
    ret["qp_list_pointer"] = _val(bin_str[128: 160])
    ret["reserved_at_a0"] = _val(bin_str[160: 161])
    ret["tunneling_action"] = _val(bin_str[161: 164])
    ret["action_description"] = _val(bin_str[164: 168])
    ret["reserved_at_a8"] = _val(bin_str[168: 176])
    ret["counter_trigger_15_0"] = _val(bin_str[176: 192])
    ret["miss_address_63_48"] = _val(bin_str[192: 208])
    ret["counter_trigger_23_16"] = _val(bin_str[208: 216])
    ret["miss_address_39_32"] = _val(bin_str[216: 224])
    ret["miss_address_31_6"] = _val(bin_str[224: 250])
    ret["learning_point"] = _val(bin_str[250: 251])
    ret["fail_on_error"] = _val(bin_str[251: 252])
    ret["match_polarity"] = _val(bin_str[252: 253])
    ret["mask_mode"] = _val(bin_str[253: 254])
    ret["miss_rank"] = _val(bin_str[254: 256])
    ret["tag"] = mlx5_ste_v0_tag_parser(ret["entry_sub_type"], bin_str[256: 384], raw)
    return ret
コード例 #19
0
def mlx5_ifc_ste_eth_l3_ipv4_5_tuple_v1_bits_tag_parser_p(bin_str):
    ret = {}
    ret["src_ip"] = _val(bin_str[0:32])
    ret["dst_ip"] = _val(bin_str[32:64])
    ret["src_tcp/udp_port"] = _val(bin_str[64:80])
    ret["dst_tcp/udp_port"] = _val(bin_str[80:96])
    ret["reserved_at_60"] = _val(bin_str[96:100])
    ret["l4_ok"] = _val(bin_str[100:101])
    ret["l3_ok"] = _val(bin_str[101:102])
    ret["fragmented"] = _val(bin_str[102:103])
    ret["tcp_ns"] = _val(bin_str[103:104])
    ret["tcp_cwr"] = _val(bin_str[104:105])
    ret["tcp_ece"] = _val(bin_str[105:106])
    ret["tcp_urg"] = _val(bin_str[106:107])
    ret["tcp_ack"] = _val(bin_str[107:108])
    ret["tcp_psh"] = _val(bin_str[108:109])
    ret["tcp_rst"] = _val(bin_str[109:110])
    ret["tcp_syn"] = _val(bin_str[110:111])
    ret["tcp_fin"] = _val(bin_str[111:112])
    ret["dscp"] = _val(bin_str[112:118])
    ret["ecn"] = _val(bin_str[118:120])
    ret["protocol"] = _val(bin_str[120:128])
    return ret
コード例 #20
0
def mlx5_ifc_ste_v0_sx_transmit_bits_parser(bin_str, raw):
    ret = {}
    ret["entry_type"] = _val(bin_str[0: 4])
    ret["reserved_at_4"] = _val(bin_str[4: 8])
    ret["entry_sub_type"] = _val(bin_str[8: 16])
    ret["byte_mask"] = _val(bin_str[16: 32])
    ret["next_table_base_63_48"] = _val(bin_str[32: 48])
    ret["next_lu_type"] = _val(bin_str[48: 56])
    ret["next_table_base_39_32_size"] = _val(bin_str[56: 64])
    ret["next_table_base_31_5_size"] = _val(bin_str[64: 91])
    ret["linear_hash_enable"] = _val(bin_str[91: 92])
    ret["reserved_at_5c"] = _val(bin_str[92: 94])
    ret["next_table_rank"] = _val(bin_str[94: 96])
    ret["sx_wire"] = _val(bin_str[96: 97])
    ret["sx_func_lb"] = _val(bin_str[97: 98])
    ret["sx_sniffer"] = _val(bin_str[98: 99])
    ret["sx_wire_enable"] = _val(bin_str[99: 100])
    ret["sx_func_lb_enable"] = _val(bin_str[100: 101])
    ret["sx_sniffer_enable"] = _val(bin_str[101: 102])
    ret["action_type"] = _val(bin_str[102: 105])
    ret["reserved_at_69"] = _val(bin_str[105: 106])
    ret["action_description"] = _val(bin_str[106: 112])
    ret["gvmi"] = _val(bin_str[112: 128])
    ret["encap_pointer_vlan_data"] = _val(bin_str[128: 160])
    ret["loopback_syndome_en"] = _val(bin_str[160: 168])
    ret["loopback_syndome"] = _val(bin_str[168: 176])
    ret["counter_trigger"] = _val(bin_str[176: 192])
    ret["miss_address_63_48"] = _val(bin_str[192: 208])
    ret["counter_trigger_23_16"] = _val(bin_str[208: 216])
    ret["miss_address_39_32"] = _val(bin_str[216: 224])
    ret["miss_address_31_6"] = _val(bin_str[224: 250])
    ret["learning_point"] = _val(bin_str[250: 251])
    ret["go_back"] = _val(bin_str[251: 252])
    ret["match_polarity"] = _val(bin_str[252: 253])
    ret["mask_mode"] = _val(bin_str[253: 254])
    ret["miss_rank"] = _val(bin_str[254: 256])
    ret["tag"] = mlx5_ste_v0_tag_parser(ret["entry_sub_type"], bin_str[256: 384], raw)
    return ret
コード例 #21
0
def mlx5_ifc_ste_eth_l3_ipv4_misc_v1_bits_tag_parser(bin_str):
    ret = {}
    ret["identification"] = _val(bin_str[0:16])
    ret["flags"] = _val(bin_str[16:19])
    ret["fragment_offset"] = _val(bin_str[19:32])
    ret["total_length"] = _val(bin_str[32:48])
    ret["checksum"] = _val(bin_str[48:64])
    ret["version"] = _val(bin_str[64:68])
    ret["ihl"] = _val(bin_str[68:72])
    ret["time_to_live"] = _val(bin_str[72:80])
    ret["reserved_at_50"] = _val(bin_str[80:96])
    ret["reserved_at_60"] = _val(bin_str[96:124])
    ret["voq_internal_prio"] = _val(bin_str[124:128])
    return ret
コード例 #22
0
def mlx5_ifc_ste_eth_l4_v1_bits_tag_parser(bin_str):
	ret = {}
	ret["ipv6_version"] = _val(bin_str[0: 4])
	ret["reserved_at_4"] = _val(bin_str[4: 8])
	ret["dscp"] = _val(bin_str[8: 14])
	ret["ecn"] = _val(bin_str[14: 16])
	ret["ipv6_hop_limit"] = _val(bin_str[16: 24])
	ret["protocol"] = _val(bin_str[24: 32])
	ret["src_port"] = _val(bin_str[32: 48])
	ret["dst_port"] = _val(bin_str[48: 64])
	ret["first_fragment"] = _val(bin_str[64: 65])
	ret["reserved_at_41"] = _val(bin_str[65: 76])
	ret["flow_label"] = _val(bin_str[76: 96])
	ret["tcp_data_offset"] = _val(bin_str[96: 100])
	ret["l4_ok"] = _val(bin_str[100: 101])
	ret["l3_ok"] = _val(bin_str[101: 102])
	ret["fragmented"] = _val(bin_str[102: 103])
	ret["tcp_ns"] = _val(bin_str[103: 104])
	ret["tcp_cwr"] = _val(bin_str[104: 105])
	ret["tcp_ece"] = _val(bin_str[105: 106])
	ret["tcp_urg"] = _val(bin_str[106: 107])
	ret["tcp_ack"] = _val(bin_str[107: 108])
	ret["tcp_psh"] = _val(bin_str[108: 109])
	ret["tcp_rst"] = _val(bin_str[109: 110])
	ret["tcp_syn"] = _val(bin_str[110: 111])
	ret["tcp_fin"] = _val(bin_str[111: 112])
	ret["ipv6_paylen"] = _val(bin_str[112: 128])
	return ret