diff --git a/fuzzing/packet/.gitignore b/fuzzing/packet/.gitignore
index 818d7868797b745e3ae7288b3a38140ecff02e11..caa15264d86c49b6614d36db1444140617445726 100644
--- a/fuzzing/packet/.gitignore
+++ b/fuzzing/packet/.gitignore
@@ -1 +1,3 @@
 packet-fuzz.zip
+crashers
+suppressions
diff --git a/protocols/bgp/packet/fuzzing.go b/protocols/bgp/packet/fuzzing.go
index 7428662df2971a36dcc9046f6ab0d50b210eb504..0adaded071d6eb2f23ecd4eb92055daa266cd8bb 100644
--- a/protocols/bgp/packet/fuzzing.go
+++ b/protocols/bgp/packet/fuzzing.go
@@ -1,8 +1,13 @@
-// +build gofuzz
+// foobar
+// +bu ild go fuzz
 
 package packet
 
-import "bytes"
+import (
+	"bytes"
+
+	"github.com/bio-routing/bio-rd/protocols/bgp/types"
+)
 
 const (
 	INC_PRIO = 1
@@ -13,13 +18,32 @@ const (
 func Fuzz(data []byte) int {
 
 	buf := bytes.NewBuffer(data)
-	msg, err := Decode(buf)
-	if err != nil {
-		if msg != nil {
-			panic("msg != nil on error")
+	for _, option := range getAllOptions() {
+		msg, err := Decode(buf, &option)
+		if err != nil {
+			if msg != nil {
+				panic("msg != nil on error")
+			}
+
 		}
-		return KEEP
+		return INC_PRIO
 	}
+	return KEEP
+}
 
-	return INC_PRIO
+func getAllOptions() []types.Options {
+	parameters := []bool{true, false}
+	var ret []types.Options
+	for _, octet := range parameters {
+		for _, multi := range parameters {
+			for _, addPathX := range parameters {
+				ret = append(ret, types.Options{
+					Supports4OctetASN:     octet,
+					SupportsMultiProtocol: multi,
+					AddPathRX:             addPathX,
+				})
+			}
+		}
+	}
+	return ret
 }