amorenoz / ovs-dbg

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

Error parsing (set_field, 4501->vlan_vid) #37

Closed amorenoz closed 2 years ago

amorenoz commented 3 years ago
echo "cookie=0xb8c7cc70, duration=94969.048s, table=65, n_packets=29904, n_bytes=2485836, idle_age=0, priority=100,reg15=0x1,metadata=0x2 actions=push_vlan:0x8100,set_field:4501->vlan_vid,output:3,pop_vlan" | ./bin/ofparse openflow pretty
Traceback (most recent call last):
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/kv.py", line 233, in parse
    key, val = self._decoders.decode(keyword, value_str)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/kv.py", line 114, in decode
    result = decoder(value_str)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/ofp_act.py", line 116, in decode_set_field
    val_result = field_decoders.decode(dst, val)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/kv.py", line 114, in decode
    result = decoder(value_str)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/decoders.py", line 92, in __init__
    raise ValueError(
ValueError: Integer value 4501 is bigger than size 12

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

Traceback (most recent call last):
  File "/home/amorenoz/code/ovs-dbg/./bin/ofparse", line 6, in <module>
    main.main()
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/ofparse/main.py", line 148, in main
    maincli()
  File "/usr/lib/python3.9/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.9/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context().obj, *args, **kwargs)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/ofparse/ofp.py", line 40, in pretty
    return pprint(flow_factory=create_ofp_flow, opts=opts)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/ofparse/process.py", line 84, in pprint
    process_flows(flow_factory, callback, opts.get("filename"), opts.get("filter"))
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/ofparse/process.py", line 34, in process_flows
    flow = flow_factory(line, idx)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/ofparse/ofp.py", line 211, in create_ofp_flow
    return OFPFlow.from_string(string, idx)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/ofp.py", line 95, in from_string
    aparser.parse(actions)
  File "/home/amorenoz/code/ovs-dbg/ovs_dbg/kv.py", line 235, in parse
    raise ParseError(
ovs_dbg.kv.ParseError: Error parsing key-value (set_field, 4501->vlan_vid)
amorenoz commented 3 years ago

4501->vlan_vid weird. although the vlan_vid field is 16 bits wide the man page says only the 12 lsb should be non-zero, and 4501 has bit 12 set...

amorenoz commented 3 years ago

Talked to OVN folks and this seems to be a bug on their side. I'll double check before I close this bug with a big cudos to ofparse :)