I want to develop a kernel module that will capture all the network packets and allow/drop them.

I have a few questions-

1. Is netfilter the only option ?

2. What are "packet drivers" . I saw http://www.crynwr.com/ . Can I use something from here to build my firewall driver that operates at the kernel space ?