<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Sziasztok!<br><br>Megnéztem PGeri EPG példáját. Sikerült az Ericssonos dpdk1 gépen életre keltenem a T4P4S-t, ma reggel beszéltem is Gergővel erről.<br><br>Közben igyekeztem az EPG kódot működőképessé varázsolni ami során két bugba is belefutottam:<br>1, Ha van egy lokális változónk amit az Ingress-en deklarálunk, akkor ha azt használni szeretnénk egy táblában key-ként, arra elhasalunk. Különböző a hibaüzenet, ha a változó underscore-ral kezdődő nevű és ha nem. Ez a két változat látható részletesen alul.<br>A probléma workaround-olható azzal, hogy ezeket a lokális változókat egy dummy header field-jeként definiáljuk, és azokat a header field-eket használjuk a táblában kulcsként.<br>2, if (hdr.eth.dst_addr[47:32] != _my_mac[47:32]) Ebből a kifejezésből valószínűleg rossz C kód generálódik, mert ez C fordítási hibát at.<br><br>Összességében jelenleg nekem az EPG kód fordul az Ericssonos gépen is T4P4S-szal, ezt remélhetőleg a napokban PGeri is megerősít majd.<br><br>Üdv,<br>Peti<br><br>=================================<br>Bug1 v1:<br>Ingressen<br></div><div dir="ltr">     ipv4_addr_t _nexthop4 = 0;</div><div dir="ltr">     Később egy táblában key = { _nexthop4 : exact; }</div><div dir="ltr"><br></div><div dir="ltr">Traceback (most recent call last):  File "src/compiler.py", line 471, in <module>    main()  File "src/compiler.py", line 466, in main    print_with_backtrace(sys.exc_info(), current_compilation['from'] if current_compilation else "(no compiled file)")  File "src/compiler.py", line 452, in main    hlir = load_from_p4(args, cache_dir_name)  File "/home/vpetya/t4p4s-root/t4p4s/src/compiler_load_p4.py", line 244, in load_from_p4    hlir = load_hlir(filename, cache_dir_name)  File "/home/vpetya/t4p4s-root/t4p4s/src/compiler_load_p4.py", line 163, in load_hlir    return continue_stages(stages, stage_idx, data)  File "/home/vpetya/t4p4s-root/t4p4s/src/compiler_load_p4.py", line 132, in continue_stages    new_data = loader(None, data)  File "/home/vpetya/t4p4s-root/t4p4s/src/compiler_load_p4.py", line 167, in <lambda>    return ([], lambda file, data: pickle.load(file) if file is not None else no_cache_loader(data) if data is not None else None)  File "/home/vpetya/t4p4s-root/t4p4s/src/compiler_load_p4.py", line 204, in <lambda>    'loaders': [cache_loader(lambda hlir: set_additional_attrs(hlir, args['p4v']))],  File "/home/vpetya/t4p4s-root/t4p4s/src/hlir16/hlir16_attrs.py", line 880, in set_additional_attrs    set_p4_main(hlir16)  File "/home/vpetya/t4p4s-root/t4p4s/src/hlir16/hlir16_attrs.py", line 280, in set_p4_main    name = <a href="http://bt.type_ref.name" target="_blank">bt.type_ref.name</a> if hasattr(bt, 'type_ref') else bt.path.nameAttributeError: 'NoneType' object has no attribute 'name'</div><div dir="ltr"><br>=================================<br>Bug1 v2:<br></div><div dir="ltr">Ingressen</div><div dir="ltr">     ipv4_addr_t nexthop4 = 0;</div><div dir="ltr">     Később egy táblában key = { nexthop4 : exact; }</div><div dir="ltr"><br>Exception: 'name'Traceback (most recent call last):  File "src/compiler.py", line 315, in generate_code    exec(code, localvars, localvars)  File "<string>", line 167, in <module>  File "/home/vpetya/t4p4s-root/t4p4s/src/hlir16/p4node.py", line 239, in __getattr__    return self.__dict__[key]KeyError: 'name'Error during the compilation of {'to': './build/dummyepg_2020@std/srcgen/dataplane.c', 'from': 'src/hardware_indep/<a href="http://dataplane.c.py" target="_blank">dataplane.c.py</a>'}Traceback (most recent call last):  File "src/compiler.py", line 471, in <module>    main()  File "src/compiler.py", line 466, in main    print_with_backtrace(sys.exc_info(), current_compilation['from'] if current_compilation else "(no compiled file)")  File "src/compiler.py", line 453, in main    generate_files()  File "src/compiler.py", line 442, in generate_files    generate_desugared_c(filename, os.path.join(base, filename))  File "src/compiler.py", line 363, in generate_desugared_c    code = generate_code(filepath, genfile, {'hlir16': hlir})  File "src/compiler.py", line 315, in generate_code    exec(code, localvars, localvars)  File "<string>", line 167, in <module>  File "/home/vpetya/t4p4s-root/t4p4s/src/hlir16/p4node.py", line 239, in __getattr__    return self.__dict__[key]KeyError: 'name'<br></div><div dir="ltr"><br>=================================<br>Bug2:<br></div><div dir="ltr">    if (hdr.eth.dst_addr[47:32] != _my_mac[47:32])</div><div dir="ltr"><br></div><div dir="ltr">/home/vpetya/t4p4s-root/t4p4s/build/dummyepg_2020@std//srcgen/dataplane.c: In function 'control_ingress':/home/vpetya/t4p4s-root/t4p4s/build/dummyepg_2020@std//srcgen/dataplane.c:639:104: error: invalid operands to binary >> (have 'uint8_t ** {aka unsigned char **}' and 'int')  if( ((( 0xffff& /* src/utils/<a href="http://codegen.sugar.py:98" target="_blank">codegen.sugar.py:98</a> */(hdr_header_instance_eth_field_ethernet_t_dstAddr_2>>32)))!=((uint16_t)0x1122)) ) { // src/utils/<a href="http://codegen.sugar.py:461" target="_blank">codegen.sugar.py:461</a>                                                                                                        ^/home/vpetya/t4p4s-root/t4p4s/build/dummyepg_2020@std//srcgen/dataplane.c:657:108: error: invalid operands to binary >> (have 'uint8_t ** {aka unsigned char **}' and 'int')  if( ((( 0xffffffff& /* src/utils/<a href="http://codegen.sugar.py:98" target="_blank">codegen.sugar.py:98</a> */(hdr_header_instance_eth_field_ethernet_t_dstAddr_1>>0)))!=((uint32_t)0x33445566)) ) { // src/utils/<a href="http://codegen.sugar.py:461" target="_blank">codegen.sugar.py:461</a>                                                                                                            ^/home/vpetya/P4AQM/dpdk-19.02/mk/internal/<a href="http://rte.compile-pre.mk:114" target="_blank">rte.compile-pre.mk:114</a>: recipe for target 'dataplane.o' failedmake[1]: *** [dataplane.o] Error 1make[1]: *** Waiting for unfinished jobs..../home/vpetya/P4AQM/dpdk-19.02/mk/<a href="http://rte.extapp.mk:14" target="_blank">rte.extapp.mk:14</a>: recipe for target 'all' failedmake: *** [all] Error 2</div></div></div></div></div></div></div></div></div></div></div></div>