summaryrefslogtreecommitdiffstats
path: root/test/fuzz/fuzz-network-parser
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:25:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:25:50 +0000
commit19f4f86bfed21c5326ed2acebe1163f3a83e832b (patch)
treed59b9989ce55ed23693e80974d94c856f1c2c8b1 /test/fuzz/fuzz-network-parser
parentInitial commit. (diff)
downloadsystemd-upstream.tar.xz
systemd-upstream.zip
Adding upstream version 241.upstream/241upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/fuzz/fuzz-network-parser')
-rw-r--r--test/fuzz/fuzz-network-parser/21-vlan.network5
-rw-r--r--test/fuzz/fuzz-network-parser/23-active-slave.network6
-rw-r--r--test/fuzz/fuzz-network-parser/23-bond199.network2
-rw-r--r--test/fuzz/fuzz-network-parser/23-emit-lldp.network5
-rw-r--r--test/fuzz/fuzz-network-parser/23-primary-slave.network6
-rw-r--r--test/fuzz/fuzz-network-parser/23-test1-bond199.network6
-rw-r--r--test/fuzz/fuzz-network-parser/24-lldp.network5
-rw-r--r--test/fuzz/fuzz-network-parser/24-search-domain.network7
-rw-r--r--test/fuzz/fuzz-network-parser/25-address-link-section.network5
-rw-r--r--test/fuzz/fuzz-network-parser/25-address-section-miscellaneous.network10
-rw-r--r--test/fuzz/fuzz-network-parser/25-address-section.network11
-rw-r--r--test/fuzz/fuzz-network-parser/25-fibrule-port-range.network11
-rw-r--r--test/fuzz/fuzz-network-parser/25-ipv6-address-label-section.network6
-rw-r--r--test/fuzz/fuzz-network-parser/25-link-section-unmanaged.network6
-rw-r--r--test/fuzz/fuzz-network-parser/25-neighbor-section.network6
-rw-r--r--test/fuzz/fuzz-network-parser/25-route-section.network8
-rw-r--r--test/fuzz/fuzz-network-parser/25-route-tcp-window-settings.network10
-rw-r--r--test/fuzz/fuzz-network-parser/25-route-type.network14
-rw-r--r--test/fuzz/fuzz-network-parser/25-sysctl.network10
-rw-r--r--test/fuzz/fuzz-network-parser/26-bridge-slave-interface-1.network12
-rw-r--r--test/fuzz/fuzz-network-parser/26-bridge-slave-interface-2.network5
-rw-r--r--test/fuzz/fuzz-network-parser/bridge99.network6
-rw-r--r--test/fuzz/fuzz-network-parser/configure-without-carrier.network7
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-anonymize.network16
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-critical-connection.network9
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-ipv4-dhcp-settings.network15
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-ipv4-only-ipv6-disabled.network6
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-ipv4-only.network5
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-ipv6-only.network5
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-ipv6-rapid-commit.network8
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-listen-port.network8
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-route-metric.network10
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-route-table.network10
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client-timezone-router.network8
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-client.network5
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-server-timezone-router.network13
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-server-veth-peer.network6
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-server.network12
-rw-r--r--test/fuzz/fuzz-network-parser/dhcp-v4-server-veth-peer.network6
-rw-r--r--test/fuzz/fuzz-network-parser/directives.network196
-rw-r--r--test/fuzz/fuzz-network-parser/github-106398
-rw-r--r--test/fuzz/fuzz-network-parser/gretap.network5
-rw-r--r--test/fuzz/fuzz-network-parser/gretun.network5
-rw-r--r--test/fuzz/fuzz-network-parser/ip6gretap.network5
-rw-r--r--test/fuzz/fuzz-network-parser/ip6tnl.network5
-rw-r--r--test/fuzz/fuzz-network-parser/ipip.network5
-rw-r--r--test/fuzz/fuzz-network-parser/ipv6-prefix-veth.network5
-rw-r--r--test/fuzz/fuzz-network-parser/ipv6-prefix.network10
-rw-r--r--test/fuzz/fuzz-network-parser/ipvlan.network5
-rw-r--r--test/fuzz/fuzz-network-parser/macvlan.network5
-rw-r--r--test/fuzz/fuzz-network-parser/macvtap.network5
-rw-r--r--test/fuzz/fuzz-network-parser/oss-fuzz-112852
-rw-r--r--test/fuzz/fuzz-network-parser/oss-fuzz-113022
-rw-r--r--test/fuzz/fuzz-network-parser/oss-fuzz-113145
-rw-r--r--test/fuzz/fuzz-network-parser/oss-fuzz-113452
-rw-r--r--test/fuzz/fuzz-network-parser/routing-policy-rule.network10
-rw-r--r--test/fuzz/fuzz-network-parser/sit.network5
-rw-r--r--test/fuzz/fuzz-network-parser/test-static.network6
-rw-r--r--test/fuzz/fuzz-network-parser/vti.network5
-rw-r--r--test/fuzz/fuzz-network-parser/vti6.network5
-rw-r--r--test/fuzz/fuzz-network-parser/vxlan.network5
61 files changed, 617 insertions, 0 deletions
diff --git a/test/fuzz/fuzz-network-parser/21-vlan.network b/test/fuzz/fuzz-network-parser/21-vlan.network
new file mode 100644
index 0000000..a4fa1de
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/21-vlan.network
@@ -0,0 +1,5 @@
+[Match]
+Name=test1
+
+[Network]
+VLAN=vlan99
diff --git a/test/fuzz/fuzz-network-parser/23-active-slave.network b/test/fuzz/fuzz-network-parser/23-active-slave.network
new file mode 100644
index 0000000..59a6596
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/23-active-slave.network
@@ -0,0 +1,6 @@
+[Match]
+Name=dummy98
+
+[Network]
+Bond=bond199
+ActiveSlave=true
diff --git a/test/fuzz/fuzz-network-parser/23-bond199.network b/test/fuzz/fuzz-network-parser/23-bond199.network
new file mode 100644
index 0000000..31e5d12
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/23-bond199.network
@@ -0,0 +1,2 @@
+[Match]
+Name=bond199
diff --git a/test/fuzz/fuzz-network-parser/23-emit-lldp.network b/test/fuzz/fuzz-network-parser/23-emit-lldp.network
new file mode 100644
index 0000000..de35045
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/23-emit-lldp.network
@@ -0,0 +1,5 @@
+[Match]
+Name=veth-peer
+
+[Network]
+EmitLLDP=yes
diff --git a/test/fuzz/fuzz-network-parser/23-primary-slave.network b/test/fuzz/fuzz-network-parser/23-primary-slave.network
new file mode 100644
index 0000000..380ae26
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/23-primary-slave.network
@@ -0,0 +1,6 @@
+[Match]
+Name=dummy98
+
+[Network]
+Bond=bond199
+PrimarySlave=true
diff --git a/test/fuzz/fuzz-network-parser/23-test1-bond199.network b/test/fuzz/fuzz-network-parser/23-test1-bond199.network
new file mode 100644
index 0000000..6e7c28d
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/23-test1-bond199.network
@@ -0,0 +1,6 @@
+[Match]
+Name=test1
+
+[Network]
+Bond=bond199
+PrimarySlave=true
diff --git a/test/fuzz/fuzz-network-parser/24-lldp.network b/test/fuzz/fuzz-network-parser/24-lldp.network
new file mode 100644
index 0000000..fbdfb1b
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/24-lldp.network
@@ -0,0 +1,5 @@
+[Match]
+Name=veth99
+
+[Network]
+LLDP=yes
diff --git a/test/fuzz/fuzz-network-parser/24-search-domain.network b/test/fuzz/fuzz-network-parser/24-search-domain.network
new file mode 100644
index 0000000..970b130
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/24-search-domain.network
@@ -0,0 +1,7 @@
+[Match]
+Name=dummy98
+
+[Network]
+Address=192.168.42.100
+DNS=192.168.42.1
+Domains= one two three four five six seven eight nine ten
diff --git a/test/fuzz/fuzz-network-parser/25-address-link-section.network b/test/fuzz/fuzz-network-parser/25-address-link-section.network
new file mode 100644
index 0000000..759e83c
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-address-link-section.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Link]
+MACAddress=00:01:02:aa:bb:cc
diff --git a/test/fuzz/fuzz-network-parser/25-address-section-miscellaneous.network b/test/fuzz/fuzz-network-parser/25-address-section-miscellaneous.network
new file mode 100644
index 0000000..3a37d03
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-address-section-miscellaneous.network
@@ -0,0 +1,10 @@
+[Match]
+Name=dummy98
+
+[Address]
+Address=10.2.3.4/16
+PreferredLifetime=0
+Scope=link
+
+[Address]
+Address=2001:0db8:0:f101::1/64
diff --git a/test/fuzz/fuzz-network-parser/25-address-section.network b/test/fuzz/fuzz-network-parser/25-address-section.network
new file mode 100644
index 0000000..d0fae69
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-address-section.network
@@ -0,0 +1,11 @@
+[Match]
+Name=dummy98
+
+[Address]
+Address=10.2.3.4/16
+Peer=10.2.3.5/16
+Label=32
+
+[Address]
+Address=10.6.7.8/16
+Label=33
diff --git a/test/fuzz/fuzz-network-parser/25-fibrule-port-range.network b/test/fuzz/fuzz-network-parser/25-fibrule-port-range.network
new file mode 100644
index 0000000..36646ec
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-fibrule-port-range.network
@@ -0,0 +1,11 @@
+[Match]
+Name=test1
+
+[RoutingPolicyRule]
+TypeOfService=0x08
+Table=7
+From= 192.168.100.18
+Priority=111
+SourcePort = 1123-1150
+DestinationPort = 3224-3290
+IPProtocol = tcp
diff --git a/test/fuzz/fuzz-network-parser/25-ipv6-address-label-section.network b/test/fuzz/fuzz-network-parser/25-ipv6-address-label-section.network
new file mode 100644
index 0000000..945b7dc
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-ipv6-address-label-section.network
@@ -0,0 +1,6 @@
+[Match]
+Name=dummy98
+
+[IPv6AddressLabel]
+Label=4444
+Prefix=2004:da8:1:0::/64
diff --git a/test/fuzz/fuzz-network-parser/25-link-section-unmanaged.network b/test/fuzz/fuzz-network-parser/25-link-section-unmanaged.network
new file mode 100644
index 0000000..4fe4916
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-link-section-unmanaged.network
@@ -0,0 +1,6 @@
+[Match]
+Name=dummy98
+
+[Link]
+MACAddress=00:01:02:aa:bb:cc
+Unmanaged=true
diff --git a/test/fuzz/fuzz-network-parser/25-neighbor-section.network b/test/fuzz/fuzz-network-parser/25-neighbor-section.network
new file mode 100644
index 0000000..dd750dd
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-neighbor-section.network
@@ -0,0 +1,6 @@
+[Match]
+Name=dummy98
+
+[Neighbor]
+Address=2004:da8:1:0::
+MACAddress=00:00:5e:00:02:00
diff --git a/test/fuzz/fuzz-network-parser/25-route-section.network b/test/fuzz/fuzz-network-parser/25-route-section.network
new file mode 100644
index 0000000..c9c7a72
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-route-section.network
@@ -0,0 +1,8 @@
+[Match]
+Name=dummy98
+
+[Network]
+Address=192.168.0.15/24
+
+[Route]
+Gateway=192.168.0.1
diff --git a/test/fuzz/fuzz-network-parser/25-route-tcp-window-settings.network b/test/fuzz/fuzz-network-parser/25-route-tcp-window-settings.network
new file mode 100644
index 0000000..e77a721
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-route-tcp-window-settings.network
@@ -0,0 +1,10 @@
+[Match]
+Name=test1
+
+[Route]
+Destination=192.168.1.1
+InitialCongestionWindow=20
+
+[Route]
+Destination=192.168.1.2
+InitialAdvertisedReceiveWindow=30
diff --git a/test/fuzz/fuzz-network-parser/25-route-type.network b/test/fuzz/fuzz-network-parser/25-route-type.network
new file mode 100644
index 0000000..9a10413
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-route-type.network
@@ -0,0 +1,14 @@
+[Match]
+Name=dummy98
+
+[Route]
+Type=blackhole
+Destination=202.54.1.2
+
+[Route]
+Type=unreachable
+Destination=202.54.1.3
+
+[Route]
+Type=prohibit
+Destination=202.54.1.4
diff --git a/test/fuzz/fuzz-network-parser/25-sysctl.network b/test/fuzz/fuzz-network-parser/25-sysctl.network
new file mode 100644
index 0000000..2452fb7
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/25-sysctl.network
@@ -0,0 +1,10 @@
+[Match]
+Name=dummy98
+
+[Network]
+IPForward=true
+IPv6PrivacyExtensions=true
+IPv6DuplicateAddressDetection=3
+IPv6HopLimit=5
+IPv4ProxyARP=true
+IPv6ProxyNDP=true
diff --git a/test/fuzz/fuzz-network-parser/26-bridge-slave-interface-1.network b/test/fuzz/fuzz-network-parser/26-bridge-slave-interface-1.network
new file mode 100644
index 0000000..81b372f
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/26-bridge-slave-interface-1.network
@@ -0,0 +1,12 @@
+[Match]
+Name=dummy98
+
+[Network]
+Bridge=bridge99
+
+[Bridge]
+Cost=400
+HairPin = true
+FastLeave = true
+UnicastFlood = true
+MulticastToUnicast = true
diff --git a/test/fuzz/fuzz-network-parser/26-bridge-slave-interface-2.network b/test/fuzz/fuzz-network-parser/26-bridge-slave-interface-2.network
new file mode 100644
index 0000000..45ec2de
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/26-bridge-slave-interface-2.network
@@ -0,0 +1,5 @@
+[Match]
+Name=test1
+
+[Network]
+Bridge=bridge99
diff --git a/test/fuzz/fuzz-network-parser/bridge99.network b/test/fuzz/fuzz-network-parser/bridge99.network
new file mode 100644
index 0000000..39e48ce
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/bridge99.network
@@ -0,0 +1,6 @@
+[Match]
+Name=bridge99
+
+[Network]
+Address=192.168.0.15/24
+Gateway=192.168.0.1
diff --git a/test/fuzz/fuzz-network-parser/configure-without-carrier.network b/test/fuzz/fuzz-network-parser/configure-without-carrier.network
new file mode 100644
index 0000000..5bd9d7e
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/configure-without-carrier.network
@@ -0,0 +1,7 @@
+[Match]
+Name=test1
+
+[Network]
+Address=192.168.0.15/24
+Gateway=192.168.0.1
+ConfigureWithoutCarrier=true
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-anonymize.network b/test/fuzz/fuzz-network-parser/dhcp-client-anonymize.network
new file mode 100644
index 0000000..a910cba
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-anonymize.network
@@ -0,0 +1,16 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv4
+IPv6AcceptRA=false
+
+[DHCP]
+Anonymize=true
+UseMTU=true
+UseRoutes=true
+SendHostname=true
+UseHostname=true
+Hostname=test-hostname
+ClientIdentifier=mac
+VendorClassIdentifier=SusantVendorTest
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-critical-connection.network b/test/fuzz/fuzz-network-parser/dhcp-client-critical-connection.network
new file mode 100644
index 0000000..0e65dec
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-critical-connection.network
@@ -0,0 +1,9 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv4
+IPv6AcceptRA=false
+
+[DHCP]
+CriticalConnection=true
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-dhcp-settings.network b/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-dhcp-settings.network
new file mode 100644
index 0000000..5c4ca22
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-dhcp-settings.network
@@ -0,0 +1,15 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv4
+IPv6AcceptRA=false
+
+[DHCP]
+UseMTU=true
+UseRoutes=true
+SendHostname=true
+UseHostname=true
+Hostname=test-hostname
+ClientIdentifier=mac
+VendorClassIdentifier=SusantVendorTest
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-only-ipv6-disabled.network b/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-only-ipv6-disabled.network
new file mode 100644
index 0000000..c980bf9
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-only-ipv6-disabled.network
@@ -0,0 +1,6 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv4
+IPv6AcceptRA=false
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-only.network b/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-only.network
new file mode 100644
index 0000000..9bc019a
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-ipv4-only.network
@@ -0,0 +1,5 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv4
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-ipv6-only.network b/test/fuzz/fuzz-network-parser/dhcp-client-ipv6-only.network
new file mode 100644
index 0000000..1f70c3b
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-ipv6-only.network
@@ -0,0 +1,5 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv6
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-ipv6-rapid-commit.network b/test/fuzz/fuzz-network-parser/dhcp-client-ipv6-rapid-commit.network
new file mode 100644
index 0000000..52fa587
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-ipv6-rapid-commit.network
@@ -0,0 +1,8 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv6
+
+[DHCP]
+RapidCommit=false
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-listen-port.network b/test/fuzz/fuzz-network-parser/dhcp-client-listen-port.network
new file mode 100644
index 0000000..73ac364
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-listen-port.network
@@ -0,0 +1,8 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=yes
+
+[DHCP]
+ListenPort=5555
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-route-metric.network b/test/fuzz/fuzz-network-parser/dhcp-client-route-metric.network
new file mode 100644
index 0000000..aa04aae
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-route-metric.network
@@ -0,0 +1,10 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv4
+IPv6AcceptRA=false
+
+[DHCP]
+UseRoutes=true
+RouteMetric=24
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-route-table.network b/test/fuzz/fuzz-network-parser/dhcp-client-route-table.network
new file mode 100644
index 0000000..75f16aa
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-route-table.network
@@ -0,0 +1,10 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=ipv4
+IPv6AcceptRA=false
+
+[DHCP]
+UseRoutes=true
+RouteTable=12
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client-timezone-router.network b/test/fuzz/fuzz-network-parser/dhcp-client-timezone-router.network
new file mode 100644
index 0000000..6316f9c
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client-timezone-router.network
@@ -0,0 +1,8 @@
+[Match]
+Name=veth99
+
+[Network]
+IPv6AcceptRA=false
+DHCP=ipv4
+UseRoutes=true
+UseTimezone=true
diff --git a/test/fuzz/fuzz-network-parser/dhcp-client.network b/test/fuzz/fuzz-network-parser/dhcp-client.network
new file mode 100644
index 0000000..5629bc4
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-client.network
@@ -0,0 +1,5 @@
+[Match]
+Name=veth99
+
+[Network]
+DHCP=yes
diff --git a/test/fuzz/fuzz-network-parser/dhcp-server-timezone-router.network b/test/fuzz/fuzz-network-parser/dhcp-server-timezone-router.network
new file mode 100644
index 0000000..3ebbf05
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-server-timezone-router.network
@@ -0,0 +1,13 @@
+[Match]
+Name=veth-peer
+
+[Network]
+IPv6AcceptRA=false
+Address=192.168.5.1/24
+DHCPServer=yes
+
+[DHCPServer]
+PoolOffset=10
+PoolSize=50
+EmitRouter=yes
+Timezone=Europe/Berlin
diff --git a/test/fuzz/fuzz-network-parser/dhcp-server-veth-peer.network b/test/fuzz/fuzz-network-parser/dhcp-server-veth-peer.network
new file mode 100644
index 0000000..7b38e72
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-server-veth-peer.network
@@ -0,0 +1,6 @@
+[Match]
+Name=veth-peer
+
+[Network]
+Address=2600::1
+Address=192.168.5.1/24
diff --git a/test/fuzz/fuzz-network-parser/dhcp-server.network b/test/fuzz/fuzz-network-parser/dhcp-server.network
new file mode 100644
index 0000000..9e49691
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-server.network
@@ -0,0 +1,12 @@
+[Match]
+Name=veth-peer
+
+[Network]
+Address=192.168.5.1/24
+DHCPServer=yes
+
+[DHCPServer]
+PoolOffset=10
+PoolSize=50
+DNS=192.168.5.1
+NTP=192.168.5.1
diff --git a/test/fuzz/fuzz-network-parser/dhcp-v4-server-veth-peer.network b/test/fuzz/fuzz-network-parser/dhcp-v4-server-veth-peer.network
new file mode 100644
index 0000000..5c91d65
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/dhcp-v4-server-veth-peer.network
@@ -0,0 +1,6 @@
+[Match]
+Name=veth-peer
+
+[Network]
+Address=192.168.0.1
+Address=192.168.5.1
diff --git a/test/fuzz/fuzz-network-parser/directives.network b/test/fuzz/fuzz-network-parser/directives.network
new file mode 100644
index 0000000..209132f
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/directives.network
@@ -0,0 +1,196 @@
+[Bridge]
+Cost=
+UseBPDU=
+HairPin=
+UnicastFlood=
+FastLeave=
+Priority=
+AllowPortToBeRoot=
+MulticastToUnicast=
+[Match]
+KernelVersion=
+Type=
+Driver=
+Architecture=
+Path=
+Name=
+Virtualization=
+KernelCommandLine=
+Host=
+MACAddress=
+[Link]
+RequiredForOnline=
+ARP=
+AllMulticast=
+Unmanaged=
+MTUBytes=
+Multicast=
+MACAddress=
+[BridgeFDB]
+VLANId=
+MACAddress=
+[DHCP]
+UseDomains=
+UseRoutes=
+IAID=
+UserClass=
+UseNTP=
+RapidCommit=
+ForceDHCPv6PDOtherInformation=
+UseMTU=
+UseDomainName=
+RouteMetric=
+SendHostname=
+Anonymize=
+VendorClassIdentifier=
+Hostname=
+DUIDType=
+UseHostname=
+UseDNS=
+CriticalConnection=
+DUIDRawData=
+RequestBroadcast=
+ClientIdentifier=
+ListenPort=
+UseTimezone=
+RouteTable=
+[Route]
+Destination=
+Protocol=
+Table=
+Gateway=
+InitialAdvertisedReceiveWindow=
+GatewayOnlink=
+Type=
+InitialCongestionWindow=
+IPv6Preference=
+PreferredSource=
+Scope=
+MTUBytes=
+QuickAck=
+Source=
+Metric=
+[Network]
+IPv6DuplicateAddressDetection=
+IPMasquerade=
+ProxyARP=
+PrimarySlave=
+IPv4LLRoute=
+Address=
+IPv6ProxyNDPAddress=
+IPv6AcceptRA=
+IPv6AcceptRouterAdvertisements=
+DNSSECNegativeTrustAnchors=
+MACVTAP=
+IPv6PrivacyExtensions=
+MACVLAN=
+MulticastDNS=
+LLDP=
+Tunnel=
+Gateway=
+IPv4LL=
+IPVLAN=
+EmitLLDP=
+IPv6MTUBytes=
+IPv4ProxyARP=
+Bridge=
+DNSOverTLS=
+Bond=
+IPv6ProxyNDP=
+DNS=
+ActiveSlave=
+LLMNR=
+DNSSEC=
+IPv6HopLimit=
+IPForward=
+IPv6Token=
+Description=
+VXLAN=
+LinkLocalAddressing=
+ConfigureWithoutCarrier=
+NTP=
+DHCP=
+Domains=
+IPv6PrefixDelegation=
+VLAN=
+DHCPServer=
+BindCarrier=
+VRF=
+[IPv6Prefix]
+Prefix=
+OnLink=
+PreferredLifetimeSec=
+AddressAutoconfiguration=
+ValidLifetimeSec=
+[BridgeVLAN]
+EgressUntagged=
+VLAN=
+PVID=
+[CAN]
+SamplePoint=
+BitRate=
+RestartSec=
+[Address]
+DuplicateAddressDetection=
+AutoJoin=
+PreferredLifetime=
+Address=
+Scope=
+HomeAddress=
+PrefixRoute=
+ManageTemporaryAddress=
+Broadcast=
+Peer=
+Label=
+[RoutingPolicyRule]
+Table=
+IncomingInterface=
+To=
+OutgoingInterface=
+From=
+TypeOfService=
+Priority=
+FirewallMark=
+SourcePort=
+DestinationPort=
+IPProtocol=
+InvertRule=
+[IPv6PrefixDelegation]
+RouterPreference=
+DNSLifetimeSec=
+DNS=
+DNSDefaultRoute=
+RouterLifetimeSec=
+Domains=
+EmitDNS=
+EmitDomains=
+Managed=
+OtherInformation=
+[Neighbor]
+Address=
+MacAddress=
+[IPv6AddressLabel]
+Label=
+Prefix=
+[IPv6AcceptRA]
+UseDomains=
+RouteTable=
+UseDNS=
+[DHCPServer]
+EmitNTP=
+PoolSize=
+PoolOffset=
+Timezone=
+EmitDNS=
+NTP=
+EmitRouter=
+MaxLeaseTimeSec=
+DefaultLeaseTimeSec=
+EmitTimezone=
+DNS=
+[DHCPv4]
+UseHostname=
+UseMTU=
+UseDomainName=
+CriticalConnection=
+UseDNS=
diff --git a/test/fuzz/fuzz-network-parser/github-10639 b/test/fuzz/fuzz-network-parser/github-10639
new file mode 100644
index 0000000..530a29b
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/github-10639
@@ -0,0 +1,8 @@
+[Match]
+Name=dummy98
+
+[Network]
+Address=192.168.0.15/2424
+
+[Rou]
+Gateway=192.136.0.1
diff --git a/test/fuzz/fuzz-network-parser/gretap.network b/test/fuzz/fuzz-network-parser/gretap.network
new file mode 100644
index 0000000..88b9250
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/gretap.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Network]
+Tunnel=gretap99
diff --git a/test/fuzz/fuzz-network-parser/gretun.network b/test/fuzz/fuzz-network-parser/gretun.network
new file mode 100644
index 0000000..376074c
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/gretun.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Network]
+Tunnel=gretun99
diff --git a/test/fuzz/fuzz-network-parser/ip6gretap.network b/test/fuzz/fuzz-network-parser/ip6gretap.network
new file mode 100644
index 0000000..cad0bae
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/ip6gretap.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Network]
+Tunnel=ip6gretap99
diff --git a/test/fuzz/fuzz-network-parser/ip6tnl.network b/test/fuzz/fuzz-network-parser/ip6tnl.network
new file mode 100644
index 0000000..41e3448
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/ip6tnl.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Network]
+Tunnel=ip6tnl99
diff --git a/test/fuzz/fuzz-network-parser/ipip.network b/test/fuzz/fuzz-network-parser/ipip.network
new file mode 100644
index 0000000..4ce6714
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/ipip.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Network]
+Tunnel=ipiptun99
diff --git a/test/fuzz/fuzz-network-parser/ipv6-prefix-veth.network b/test/fuzz/fuzz-network-parser/ipv6-prefix-veth.network
new file mode 100644
index 0000000..3d2acec
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/ipv6-prefix-veth.network
@@ -0,0 +1,5 @@
+[Match]
+Name=veth99
+
+[Network]
+IPv6AcceptRA=true
diff --git a/test/fuzz/fuzz-network-parser/ipv6-prefix.network b/test/fuzz/fuzz-network-parser/ipv6-prefix.network
new file mode 100644
index 0000000..c1932a8
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/ipv6-prefix.network
@@ -0,0 +1,10 @@
+[Match]
+Name=veth-peer
+
+[Network]
+IPv6PrefixDelegation=yes
+
+[IPv6Prefix]
+Prefix=2002:da8:1:0::/64
+PreferredLifetimeSec=1000s
+ValidLifetimeSec=2100s
diff --git a/test/fuzz/fuzz-network-parser/ipvlan.network b/test/fuzz/fuzz-network-parser/ipvlan.network
new file mode 100644
index 0000000..d053220
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/ipvlan.network
@@ -0,0 +1,5 @@
+[Match]
+Name=test1
+
+[Network]
+IPVLAN=ipvlan99
diff --git a/test/fuzz/fuzz-network-parser/macvlan.network b/test/fuzz/fuzz-network-parser/macvlan.network
new file mode 100644
index 0000000..a41c1f9
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/macvlan.network
@@ -0,0 +1,5 @@
+[Match]
+Name=test1
+
+[Network]
+MACVLAN=macvlan99
diff --git a/test/fuzz/fuzz-network-parser/macvtap.network b/test/fuzz/fuzz-network-parser/macvtap.network
new file mode 100644
index 0000000..6ee99ab
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/macvtap.network
@@ -0,0 +1,5 @@
+[Match]
+Name=test1
+
+[Network]
+MACVTAP=macvtap99
diff --git a/test/fuzz/fuzz-network-parser/oss-fuzz-11285 b/test/fuzz/fuzz-network-parser/oss-fuzz-11285
new file mode 100644
index 0000000..e0aad02
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/oss-fuzz-11285
@@ -0,0 +1,2 @@
+[IPv6PrefixDelegation]
+Domains=m \ No newline at end of file
diff --git a/test/fuzz/fuzz-network-parser/oss-fuzz-11302 b/test/fuzz/fuzz-network-parser/oss-fuzz-11302
new file mode 100644
index 0000000..0ef0dcc
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/oss-fuzz-11302
@@ -0,0 +1,2 @@
+[Network]
+IPv6MTUBytes=7K \ No newline at end of file
diff --git a/test/fuzz/fuzz-network-parser/oss-fuzz-11314 b/test/fuzz/fuzz-network-parser/oss-fuzz-11314
new file mode 100644
index 0000000..2fb68e9
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/oss-fuzz-11314
@@ -0,0 +1,5 @@
+
+[Network]
+IPv6MTUBytes=6M
+
+Bond=
diff --git a/test/fuzz/fuzz-network-parser/oss-fuzz-11345 b/test/fuzz/fuzz-network-parser/oss-fuzz-11345
new file mode 100644
index 0000000..b097fcd
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/oss-fuzz-11345
@@ -0,0 +1,2 @@
+[IPv6PrefixDelegation]
+DNS=:: \ No newline at end of file
diff --git a/test/fuzz/fuzz-network-parser/routing-policy-rule.network b/test/fuzz/fuzz-network-parser/routing-policy-rule.network
new file mode 100644
index 0000000..46b87c5
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/routing-policy-rule.network
@@ -0,0 +1,10 @@
+[Match]
+Name=test1
+
+[RoutingPolicyRule]
+TypeOfService=0x08
+Table=7
+From= 192.168.100.18
+Priority=111
+IncomingInterface=test1
+OutgoingInterface=test1
diff --git a/test/fuzz/fuzz-network-parser/sit.network b/test/fuzz/fuzz-network-parser/sit.network
new file mode 100644
index 0000000..84e5af0
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/sit.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Network]
+Tunnel=sittun99
diff --git a/test/fuzz/fuzz-network-parser/test-static.network b/test/fuzz/fuzz-network-parser/test-static.network
new file mode 100644
index 0000000..636c55c
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/test-static.network
@@ -0,0 +1,6 @@
+[Match]
+Name=dummy98
+
+[Network]
+Address=192.168.0.15/24
+Gateway=192.168.0.1
diff --git a/test/fuzz/fuzz-network-parser/vti.network b/test/fuzz/fuzz-network-parser/vti.network
new file mode 100644
index 0000000..7fbad6a
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/vti.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Network]
+Tunnel=vtitun99
diff --git a/test/fuzz/fuzz-network-parser/vti6.network b/test/fuzz/fuzz-network-parser/vti6.network
new file mode 100644
index 0000000..49a9d11
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/vti6.network
@@ -0,0 +1,5 @@
+[Match]
+Name=dummy98
+
+[Network]
+Tunnel=vti6tun99
diff --git a/test/fuzz/fuzz-network-parser/vxlan.network b/test/fuzz/fuzz-network-parser/vxlan.network
new file mode 100644
index 0000000..80b4055
--- /dev/null
+++ b/test/fuzz/fuzz-network-parser/vxlan.network
@@ -0,0 +1,5 @@
+[Match]
+Name=test1
+
+[Network]
+VXLAN=vxlan99