anchor.diff:  	Goto = [Call],
   	compile_meter(MeterInstr, Goto);
   
  -compile_body(MeterInstr, ActionList, ClearWriteInstr, MetadataInstr, {goto,Id}) ->
  +compile_body(MeterInstr, ActionList, ClearWriteInstr, MetadataInstr, TunnelId, {goto,Id}) ->
   	%%
   	%% Apply action list to packet, update action set and metadata
   	%% and reinject them to preparser from next table
  
positive.code: 	updated_actions(Tag, Specs, Actions#fast_actions{group =Id}).
  
  action_list(As) ->
  	action_list(As, {var,0,var_name(packet)}).
  
  action_list([], Packet) ->
  	Packet;
  action_list([#ofp_action_output{port =PortNo}|As], Packet) ->
  	Sink =
  		if
  			is_atom(PortNo) ->
  
negative.code: 			true ->
  				{integer,0,PortNo}
  		end,
  	action_call(output, [Packet,Sink,{var,0,var_name(blaze)}]);
  action_cast(#ofp_action_set_queue{queue_id =Queue}, Packet) ->
  	action_call(set_queue, [Packet,{integer,0,Queue}]);
  action_cast(#ofp_action_group{group_id =Group}, Packet) ->
  	action_call(group, [Packet,{integer,0,Group}]);
  action_cast(#ofp_action_push_vlan{ethertype =EthType}, Packet) ->
  	action_call(push_vlan, [Packet,{integer,0,EthType}]);
  action_cast(#ofp_action_pop_vlan{}, Packet) ->
  	action_call(pop_vlan, [Packet]);
  action_cast(#ofp_action_push_mpls{ethertype =EthType}, Packet) ->
  	action_call(push_mpls, [Packet,{integer,0,EthType}]);
  action_cast(#ofp_action_pop_mpls{ethertype =EthType}, Packet) ->
  	action_call(pop_mpls, [Packet,{integer,0,EthType}]);
  action_cast(#ofp_action_push_pbb{ethertype =EthType}, Packet) ->
  	action_call(push_pbb, [Packet,{integer,0,EthType}]);
  action_cast(#ofp_action_pop_pbb{}, Packet) ->
  	action_call(pop_pbb, [Packet]);
  action_cast(#ofp_action_set_field{field = #ofp_field{name =Name,value =Value}}, Packet) ->
  	action_call(set_field, [Packet,{atom,0,Name}, fast_value(Value)]);
  action_cast(#ofp_action_set_mpls_ttl{mpls_ttl =TTL}, Packet) ->
  	action_call(set_mpls_ttl, [Packet,{integer,0,TTL}]);
  action_cast(#ofp_action_dec_mpls_ttl{}, Packet) ->
  	action_call(decrement_mpls_ttl, [Packet]);
  action_cast(#ofp_action_set_nw_ttl{nw_ttl =TTL}, Packet) ->
  	action_call(set_ip_ttl, [Packet, {integer,0,TTL}]);
  action_cast(#ofp_action_dec_nw_ttl{}, Packet) ->
  	action_call(decrement_ip_ttl, [Packet]);
  action_cast(#ofp_action_copy_ttl_out{}, Packet) ->
  	action_call(copy_ttl_outwards, [Packet]);
  action_cast(#ofp_action_copy_ttl_in{}, Packet) ->
  	action_call(copy_ttl_inwards, [Packet]).
  
  action_call(Function, Args) ->
  	{call,0,{remote,0,{atom,0,linc_max_fast_actions},{atom,0,Function}},Args}.
  
  %% linc_max_splicer uses integers if the bit size of the field is 28 bits or
  %% less. The rest of LINC switch always uses binaries and bitstrings.
  