amorenoz / ovs-dbg

Scripts to help debug OVS and OVN
Apache License 2.0
22 stars 8 forks source link

ofparse: Failed to parse load() #49

Closed amorenoz closed 2 years ago

amorenoz commented 2 years ago

Flow:

cookie=0xf9c067da66857ee2, duration=5346306.443s, table=10, n_packets=77859441166, n_bytes=80449118008430, idle_age=0, hard_age=65534, priority=1 actions=learn(table=20,hard_timeout=300,priority=1,cookie=0xf9c067da66857ee2,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:0->NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]->NXM_NX_TUN_ID[],output:OXM_OF_IN_PORT[]),output:1

Result:

$ ofparse -i of-br-tun openflow logic

Traceback (most recent call last):
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/kv.py", line 233, in parse
    key, val = self._decoders.decode(keyword, value_str)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/kv.py", line 114, in decode
    result = decoder(value_str)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/ofp_act.py", line 99, in decode_load_field
    return {"value": int(parts[0], 0), "dst": decode_field(parts[1])}
ValueError: invalid literal for int() with base 0: 'NXM_NX_TUN_ID[]'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/kv.py", line 233, in parse
    key, val = self._decoders.decode(keyword, value_str)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/kv.py", line 114, in decode
    result = decoder(value_str)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/ofp_act.py", line 173, in decode_exec
    exec_parser.parse(value)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/kv.py", line 235, in parse
    raise ParseError(
ovs_dbg.kv.ParseError: Error parsing key-value (load, NXM_NX_TUN_ID[]->NXM_NX_TUN_ID[])

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ktraynor/.local/bin/ofparse", line 6, in <module>
    main.main()
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/ofparse/main.py", line 153, in main
    maincli()
  File "/home/ktraynor/.local/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/ktraynor/.local/lib/python3.9/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/ktraynor/.local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/click/decorators.py", line 38, in new_func
    return f(get_current_context().obj, *args, **kwargs)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/ofparse/ofp.py", line 110, in logic
    process_flows(
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/ofparse/process.py", line 24, in process_flows
    flow = flow_factory(line, idx)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/ofparse/ofp.py", line 213, in create_ofp_flow
    return OFPFlow.from_string(string, idx)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/ofp.py", line 95, in from_string
    aparser.parse(actions)
  File "/home/ktraynor/.local/lib/python3.9/site-packages/ovs_dbg/kv.py", line 235, in parse
    raise ParseError(
ovs_dbg.kv.ParseError: Error parsing key-value (learn, table=20,hard_timeout=300,priority=1,cookie=0xf9c067da66857ee2,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:0->NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]->NXM_NX_TUN_ID[],output:OXM_OF_IN_PORT[])