p4lang / switch

Consolidated switch repo (API, SAI and Nettlink)
152 stars 72 forks source link

make error: CRITICAL:p4c_bm.gen_json:'range' match type is not supported by bmv2 yet #84

Open imaginezz opened 7 years ago

imaginezz commented 7 years ago

I have installed bmv2 and p4c-bmv2 successfully as README said. But when I tried to make it ,it shows below. I think it is something wrong with p4c_bm it can't complie the P4 script in p4src, but I can't solve it.

make  all-recursive
make[1]: Entering directory `/home/jason/p4/switch'
Making all in p4-build
make[2]: Entering directory `/home/jason/p4/switch/p4-build'
make  all-recursive
make[3]: Entering directory `/home/jason/p4/switch/p4-build'
Making all in bmv2
make[4]: Entering directory `/home/jason/p4/switch/p4-build/bmv2'
PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages /usr/local/bin/p4c-bmv2 --pd ./switch/ --p4-prefix dc  --json ./switch.json /home/jason/p4/switch/p4src/switch.p4
parsing successful
Semantic warning: Parameter session_id of action negative_mirror defined in file /home/jason/p4/switch/p4src/acl.p4 at line 563 is not being used and will be removed
Semantic warning: Parameter fabric_mgid of action set_fabric_multicast defined in file /home/jason/p4/switch/p4src/fabric.p4 at line 211 is not being used and will be removed
Semantic warning: header type 'ieee802_1ah_t' is not reachable and will be removed
Semantic warning: header type 'ipsec_esp_t' is not reachable and will be removed
Semantic warning: header type 'ipsec_ah_t' is not reachable and will be removed
Semantic warning: header type 'arp_rarp_t' is not reachable and will be removed
Semantic warning: header type 'arp_rarp_ipv4_t' is not reachable and will be removed
Semantic warning: header type 'genv_opt_A_t' is not reachable and will be removed
Semantic warning: header type 'genv_opt_B_t' is not reachable and will be removed
Semantic warning: header type 'genv_opt_C_t' is not reachable and will be removed
Semantic warning: header type 'sflow_sample_cpu_t' is not reachable and will be removed
Semantic warning: parser function 'parse_roce' is not reachable and will be removed
Semantic warning: parser function 'parse_fcoe' is not reachable and will be removed
Semantic warning: parser function 'parse_vpls' is not reachable and will be removed
Semantic warning: parser function 'parse_pw' is not reachable and will be removed
Semantic warning: parser function 'parse_udp_v6' is not reachable and will be removed
Semantic warning: parser function 'parse_gre_v6' is not reachable and will be removed
Semantic warning: parser function 'parse_roce_v2' is not reachable and will be removed
Semantic warning: parser function 'parse_sctp' is not reachable and will be removed
Semantic warning: header instance 'outer_udp' is not reachable and will be removed
Semantic warning: header instance 'eompls' is not reachable and will be removed
Semantic warning: parser function 'parse_nsh' is not reachable and will be removed
Semantic warning: parser function 'parse_lisp' is not reachable and will be removed
Semantic warning: parser function 'parse_inner_sctp' is not reachable and will be removed
Semantic warning: parser function 'parse_trill' is not reachable and will be removed
Semantic warning: parser function 'parse_vntag' is not reachable and will be removed
Semantic warning: parser function 'parse_bfd' is not reachable and will be removed
Semantic warning: header instance 'sflow_sample' is not reachable and will be removed
Semantic warning: header instance 'sflow_raw_hdr_record' is not reachable and will be removed
Semantic warning: header instance 'global_config_metadata' is not reachable and will be removed
Semantic warning: field list 'mirror_info' is not reachable and will be removed
Semantic warning: table 'outer_multicast_rpf' is not reachable and will be removed
Semantic warning: table 'multicast_rpf' is not reachable and will be removed
Semantic warning: header type 'eompls_t' is not reachable and will be removed
Semantic warning: header type 'sflow_sample_t' is not reachable and will be removed
Semantic warning: header type 'sflow_raw_hdr_record_t' is not reachable and will be removed
Semantic warning: header instance 'roce' is not reachable and will be removed
Semantic warning: header instance 'fcoe' is not reachable and will be removed
Semantic warning: header instance 'roce_v2' is not reachable and will be removed
Semantic warning: header instance 'sctp' is not reachable and will be removed
Semantic warning: header instance 'nsh' is not reachable and will be removed
Semantic warning: header instance 'nsh_context' is not reachable and will be removed
Semantic warning: header instance 'lisp' is not reachable and will be removed
Semantic warning: header instance 'inner_sctp' is not reachable and will be removed
Semantic warning: header instance 'trill' is not reachable and will be removed
Semantic warning: header instance 'vntag' is not reachable and will be removed
Semantic warning: header instance 'bfd' is not reachable and will be removed
Semantic warning: parser function 'parse_set_prio_max' is not reachable and will be removed
Semantic warning: header type 'global_config_metadata_t' is not reachable and will be removed
Semantic warning: action 'outer_multicast_rpf_check_pass' is not reachable and will be removed
Semantic warning: action 'multicast_rpf_check_pass' is not reachable and will be removed
Semantic warning: action 'multicast_rpf_check_fail' is not reachable and will be removed
Semantic warning: header type 'roce_header_t' is not reachable and will be removed
Semantic warning: header type 'roce_v2_header_t' is not reachable and will be removed
Semantic warning: header type 'fcoe_header_t' is not reachable and will be removed
Semantic warning: header type 'sctp_t' is not reachable and will be removed
Semantic warning: header type 'nsh_t' is not reachable and will be removed
Semantic warning: header type 'nsh_context_t' is not reachable and will be removed
Semantic warning: header type 'trill_t' is not reachable and will be removed
Semantic warning: header type 'lisp_t' is not reachable and will be removed
Semantic warning: header type 'vntag_t' is not reachable and will be removed
Semantic warning: header type 'bfd_t' is not reachable and will be removed
semantic checking successful
Header type standard_metadata_t not byte-aligned, adding padding
Header type ingress_intrinsic_metadata_t not byte-aligned, adding padding
Header type ingress_metadata_t not byte-aligned, adding padding
Header type egress_metadata_t not byte-aligned, adding padding
Header type l2_metadata_t not byte-aligned, adding padding
Header type l3_metadata_t not byte-aligned, adding padding
Header type ipv4_metadata_t not byte-aligned, adding padding
Header type ipv6_metadata_t not byte-aligned, adding padding
Header type tunnel_metadata_t not byte-aligned, adding padding
Header type acl_metadata_t not byte-aligned, adding padding
Header type nat_metadata_t not byte-aligned, adding padding
Header type multicast_metadata_t not byte-aligned, adding padding
Header type nexthop_metadata_t not byte-aligned, adding padding
Header type security_metadata_t not byte-aligned, adding padding
Header type fabric_metadata_t not byte-aligned, adding padding
Header type int_metadata_i2e_t not byte-aligned, adding padding
Header type meter_metadata_t not byte-aligned, adding padding
Header type qos_metadata_t not byte-aligned, adding padding
WARNING:p4c_bm.gen_json:Your P4 program uses the modify_field() action primitive with 3 arguments (aka masked modify), bmv2 does not support it anymore and this compiler will replace your modify_field(a, b, c) with modify_field(a, (a & ~c) | (b & c))
WARNING:p4c_bm.gen_json:Your P4 program uses the modify_field() action primitive with 3 arguments (aka masked modify), bmv2 does not support it anymore and this compiler will replace your modify_field(a, b, c) with modify_field(a, (a & ~c) | (b & c))
WARNING:p4c_bm.gen_json:Your P4 program uses the modify_field() action primitive with 3 arguments (aka masked modify), bmv2 does not support it anymore and this compiler will replace your modify_field(a, b, c) with modify_field(a, (a & ~c) | (b & c))
INFO:p4c_bm.gen_json:you are using a mask in a match table, this is still an experimental feature
INFO:p4c_bm.gen_json:you are using a mask in a match table, this is still an experimental feature
INFO:p4c_bm.gen_json:you are using a mask in a match table, this is still an experimental feature
INFO:p4c_bm.gen_json:you are using a mask in a match table, this is still an experimental feature
CRITICAL:p4c_bm.gen_json:'range' match type is not supported by bmv2 yet
make[4]: *** [pd_files.ts] Error 1
make[4]: Leaving directory `/home/jason/p4/switch/p4-build/bmv2'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/jason/p4/switch/p4-build'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/jason/p4/switch/p4-build'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/jason/p4/switch'
make: *** [all] Error 2
antoninbas commented 7 years ago

You seem to be using an older version of p4c-bm. Range support was added to p4c-bm in June (https://github.com/p4lang/p4c-bm/pull/52)

imaginezz commented 7 years ago

I checked the version, the p4c-bm is the newest. I reinstalled p4c-bm and bmv2 again, and the Error is the same.

antoninbas commented 7 years ago

If you look at the latest p4c-bm code, you would be hard-pressed to find that error string... You can run p4c-bmv2 -v to check the version number, it should be 1.4.0. We changed the installation process recently and it is possible that your installation is picking up some old code. I would recommend deleting old files by hand before re-installing again. The following should work: sudo rm -rf /usr/local/lib/python2.7/dist-packages/p4c* sudo rm -rf /usr/local/bin/p4c-bmv2