anchor.diff:      BadMsg = #ofp_message{type = not_a_valid_message, version = 4},
       R = of_driver:send_list(Connection, [GoodMsg, BadMsg]),
       ?assertMatch({error, [ok, {error, {bad_message, _}}]}, R),
  -    {#ofp_message{type = features_request, xid = RXID}, <<>>} = receive_msg(Socket, <<>>).
  +    {#ofp_message{type = features_request}, <<>>} = receive_msg(Socket, <<>>).
   
   sync_send_list_bad_message({Socket, ConnTable}) ->
       Connection = get_connection(ConnTable),
       GoodMsg = of_msg_lib:get_features(4),
       BadMsg = #ofp_message{type = not_a_valid_message, version = 4},
       Future = future(of_driver, sync_send_list, [Connection, [GoodMsg, BadMsg]]),
  -    {#ofp_message{type = features_request, xid = RXID}, Rest} = receive_msg(Socket, <<>>),
  +    {#ofp_message{type = features_request}, Rest} = receive_msg(Socket, <<>>),
       {#ofp_message{type = barrier_request, xid = BXID}, <<>>} = receive_msg(Socket, Rest),
       send_msg(Socket, barrier_reply(BXID)),
       Reply = wait_future(Future),
  
positive.code:     ?assertMatch(#ofp_message{type = features_reply, xid = RXID2}, Reply2),
      ?assertNot(meck:called(of_driver_handler_mock, handle_message, '_')).
  
  unsupported_version({Socket, ConnTable}) ->
      % XXX
      ok.
  
  send_bad_message({Socket, ConnTable}) ->
      Connection = get_connection(ConnTable),
      R = of_driver:send(Connection, #ofp_message{type = not_a_valid_message, version = 4}),
      ?assertMatch({error, {bad_message, _}}, R).
  
negative.code:                                   ]]]} end
      }.
  
  % XXX unsupported version
  
  setup() ->
  