func l3Separator(currentPacket *packet.Packet, context flow.UserContext) bool {
	return currentPacket.L3ACLPermit(l3Rules)
}
User defined function for separating packets
package main
import (
	"flag"
	"github.com/intel-go/nff-go/flow"
	"github.com/intel-go/nff-go/packet"
)
var (
	l3Rules *packet.L3Rules
)
func main() {
	var err error
	outport := flag.Uint("outport", 1, "port for sender")
	inport := flag.Uint("inport", 0, "port for receiver")
	flag.Parse()
	config := flow.Config{
		CPUList: "0-7",
	}
	flow.CheckFatal(flow.SystemInit(&config))
	l3Rules, err = packet.GetL3ACLFromTextTable("firewall.conf")
	flow.CheckFatal(err)
	inputFlow, err := flow.SetReceiver(uint16(*inport))
	flow.CheckFatal(err)
	rejectFlow, err := flow.SetSeparator(inputFlow, l3Separator, nil)
	flow.CheckFatal(err)
	flow.CheckFatal(flow.SetStopper(rejectFlow))
	flow.CheckFatal(flow.SetSender(inputFlow, uint16(*outport)))
	flow.CheckFatal(flow.SystemStart())
}