Input: Payload; FlowTable]; TableLength mask=GetFlowMask(Payload);
for each i TableLength do for each bit in the mask do
   if bit = 1 then
     state=CheckMatchField(offset, FlowTable[i]); if state is true then
       update offset to next match field; end
     else state=false;
       break; end
   end end
  if state is true then
    ExecuteAction(Payload, FlowTable[i]);
    break; end
if no action executed then
  ExecuteMiss(Payload); end
Algorithm 1: Packets process in switch plane.