Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F167537714
D58939.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D58939.diff
View Options
diff --git a/share/examples/jails/jail.xxx.conf b/share/examples/jails/jail.xxx.conf
--- a/share/examples/jails/jail.xxx.conf
+++ b/share/examples/jails/jail.xxx.conf
@@ -8,12 +8,13 @@
exec.jail_user = "root";
#
- # NB: Below 4-lines required
+ # NB: Below lines required
#
vnet;
# netgraph
vnet.interface = "ng0_xxx"; # vnet interface(s)
exec.prestart += "jng bridge xxx em0"; # bridge interface(s)
+ exec.prestop += "ifconfig ng0_xxx -vnet xxx"; # return ifnet(s)
exec.poststop += "jng shutdown xxx"; # destroy interface(s)
# if_bridge
#vnet.interface = "e0b_xxx"; # vnet interface(s)
diff --git a/share/examples/jails/jng b/share/examples/jails/jng
--- a/share/examples/jails/jng
+++ b/share/examples/jails/jng
@@ -7,14 +7,14 @@
############################################################ IDENT(1)
#
# $Title: netgraph(4) management script for vnet jails $
-# $Version: 9.0 $
+# $Version: 9.1 $
#
############################################################ INFORMATION
#
# Use this tool with jail.conf(5) (or rc.conf(5) ``legacy'' configuration) to
# manage `vnet' interfaces for jails. Designed to automate the creation of vnet
-# interface(s) during jail `prestart' and destroy said interface(s) during jail
-# `poststop'.
+# interface(s) during jail `prestart', return them to the host during jail
+# `prestop', and destroy said interface(s) during jail `poststop'.
#
# In jail.conf(5) format:
#
@@ -37,11 +37,15 @@
# exec.jail_user = "root";
#
# #
-# # NB: Below 2-lines required
+# # NB: Below lines required
# # NB: The number of arguments after `jng bridge xxx' should match
# # the number of ngN_xxx arguments in vnet.interface value.
+# # NB: Return each ngN_xxx to the host in prestop so the kernel does
+# # not move it during jail removal (BPF race). Destroy in poststop.
# #
# exec.prestart += "jng bridge xxx em0 em1 ...";
+# exec.prestop += "ifconfig ng0_xxx -vnet xxx";
+# exec.prestop += "ifconfig ng1_xxx -vnet xxx";
# exec.poststop += "jng shutdown xxx";
#
# # Standard recipe
@@ -84,7 +88,9 @@
# jail_xxx_rootdir="/vm/xxx" # root directory
# jail_xxx_vnet_interfaces="ng0_xxx ng1xxx ..." # vnet interface(s)
# jail_xxx_exec_prestart0="jng bridge xxx em0 em1 ..." # bridge interface(s)
-# jail_xxx_exec_poststop0="jng shutdown xxx" # destroy interface(s)
+# jail_xxx_exec_prestop0="ifconfig ng0_xxx -vnet xxx" # return ifnet(s)
+# jail_xxx_exec_prestop1="ifconfig ng1_xxx -vnet xxx"
+# jail_xxx_exec_poststop0="jng shutdown xxx" # destroy interface(s)
# #jail_xxx_mount_enable="YES" # mount /etc/fstab.xxx
# #jail_xxx_devfs_ruleset="11" # rule to unhide bpf for DHCP
#
@@ -132,7 +138,7 @@
############################################################ GLOBALS
-VERSION='$Version: 9.0 $'
+VERSION='$Version: 9.1 $'
pgm="${0##*/}" # Program basename
diff --git a/share/examples/jails/rc.conf.jails b/share/examples/jails/rc.conf.jails
--- a/share/examples/jails/rc.conf.jails
+++ b/share/examples/jails/rc.conf.jails
@@ -35,6 +35,7 @@
#jail_{name}_rootdir="/vm/{name}" # root directory
#jail_{name}_vnet_interfaces="ng0_{name}" # vnet interface(s)
#jail_{name}_exec_prestart0="jng bridge {name} em0" # bridge interface(s)
+#jail_{name}_exec_prestop0="ifconfig ng0_{name} -vnet {name}" # return ifnet(s)
#jail_{name}_exec_poststop0="jng shutdown {name}" # destroy interface(s)
# Optional (default off)
#jail_{name}_devfs_ruleset="11" # rule to unhide bpf for DHCP
@@ -61,6 +62,7 @@
# netgraph
jail_XXX_vnet_interface="ng0_XXX" # vnet interface(s)
jail_XXX_exec_prestart0="jng bridge XXX em0" # bridge interface(s)
+jail_XXX_exec_prestop0="ifconfig ng0_XXX -vnet XXX" # return ifnet(s)
jail_XXX_exec_poststop0="jng shutdown XXX" # destroy interface(s)
# if_bridge
#jail_XXX_vnet_interface="e0b_XXX" # vnet interface(s)
diff --git a/share/examples/jails/rcjail.xxx.conf b/share/examples/jails/rcjail.xxx.conf
--- a/share/examples/jails/rcjail.xxx.conf
+++ b/share/examples/jails/rcjail.xxx.conf
@@ -3,11 +3,12 @@
jail_XXX_rootdir="/vm/XXX" # root directory
#
-# NB: Below 3 lines required
+# NB: Below lines required
#
# netgraph
jail_XXX_vnet_interface="ng0_XXX" # vnet interface(s)
jail_XXX_exec_prestart0="jng bridge XXX em0" # bridge interface(s)
+jail_XXX_exec_prestop0="ifconfig ng0_XXX -vnet XXX" # return ifnet(s)
jail_XXX_exec_poststop0="jng shutdown XXX" # destroy interface(s)
# if_bridge
#jail_XXX_vnet_interface="e0b_XXX" # vnet interface(s)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Aug 23, 1:52 PM (11 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37142270
Default Alt Text
D58939.diff (4 KB)
Attached To
Mode
D58939: New version of jng (9.1)
Attached
Detach File
Event Timeline
Log In to Comment