Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: Mac OS
Platform: PC
-
1035
Description
Flowmods in the Neutron plugin have been failing recently. TunnelID matches are failing in OpenflowpluginTestCommandProvider. I narrowed this one down to the mask causing issues.
OSGI output from HEAD
---------------------
// OpenflowpluginTestCommandProvider
osgi> addMDFlow openflow:143948071978317 f77
2014-05-20 01:54:54.139 EDT [Gogo shell] INFO o.o.o.t.OpenflowpluginTestCommandProvider - TunnelID Match Called
2014-05-20 01:54:54.140 EDT [Gogo shell] INFO o.o.o.t.OpenflowpluginTestCommandProvider - TunnelID Match Called tunnel.getTunnelID ==> 10668
gogo: IllegalArgumentException: Invalid range: -1099511627519, expected: [[0‥18446744073709551615]].
When I comment out the mask the flowmod succeeds:
------------------------------------------------
private static MatchBuilder createTunnelIDMatch() {
MatchBuilder match = new MatchBuilder();
TunnelBuilder tunnel = new TunnelBuilder(); // tunnel id match
tunnel.setTunnelId(BigInteger.valueOf(10668));
// Commented out
// byte[] mask = new byte[]
;
// tunnel.setTunnelMask(new BigInteger(mask));
match.setTunnel(tunnel.build());
return match;
}
OSGI output with a successful flowmod after commenting out the mask:
--------------------------------------------------------------------
2014-05-20 02:12:07.703 EDT [md-sal-binding-notification-46] INFO o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [_flowRef=FlowRef [_value=KeyedInstanceIdentifier
], _barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf77, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=SetFieldCase [_setField=SetField [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, _transactionId=TransactionId [_value=26], augmentation=[]]
2014-05-20 02:12:07.703 EDT [md-sal-binding-notification-47] INFO o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [_flowRef=FlowRef [_value=KeyedInstanceIdentifier
], _barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf77, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=SetFieldCase [_setField=SetField [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, _transactionId=TransactionId [_value=26], augmentation=[]]
2014-05-20 02:12:07.703 EDT [md-sal-binding-notification-48] INFO o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [_flowRef=FlowRef [_value=KeyedInstanceIdentifier
], _barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf77, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=SetFieldCase [_setField=SetField [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, _transactionId=TransactionId [_value=26], augmentation=[]]
2014-05-20 02:12:07.703 EDT [md-sal-binding-notification-47] INFO o.o.o.t.FlowEventListenerLoggingImpl - added flow Xid.........................26
2014-05-20 02:12:07.703 EDT [md-sal-binding-notification-46] INFO o.o.o.t.FlowEventListenerLoggingImpl - added flow Xid.........................26
OVS flowmod instantiated w/o mask in the method
-----------------------------------------------
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=124.355s, table=2, n_packets=0, n_bytes=0, send_flow_rem priority=2,tun_id=0x29ac actions=set_field:0x29ac->tun_id
I can help debugging the root this week if it isn't obvious to you guys. I need to go through all of the flowmods as this was the first one I started with.
Thanks!
-Brent