Blame SOURCES/firewalld-0.4.3.2-source_bindings_docs_rhbz#1357888.patch

dddd59
commit d59ebd007fad012de4ee16be6ce163d11fd7a83f
dddd59
Author: Thomas Woerner <twoerner@redhat.com>
dddd59
Date:   Tue Jul 26 18:24:56 2016 +0200
dddd59
dddd59
    Add missing information about MAC and ipset sources to man pages and help output
dddd59
    
dddd59
    The help output of firewall-cmd and firewall-offline-cmd was lacking information
dddd59
    about mac and ispet sources. Also the man pages of these tools and the
dddd59
    firewalld.zone man page.
dddd59
dddd59
diff --git a/doc/xml/firewall-cmd.xml b/doc/xml/firewall-cmd.xml
dddd59
index 7354bb1..d441198 100644
dddd59
--- a/doc/xml/firewall-cmd.xml
dddd59
+++ b/doc/xml/firewall-cmd.xml
dddd59
@@ -273,10 +273,10 @@
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--permanent</option></optional> <option>--get-zone-of-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--permanent</option></optional> <option>--get-zone-of-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Print the name of the zone the <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> is bound to or <emphasis>no zone</emphasis>.
dddd59
+	      Print the name of the zone the source is bound to or <emphasis>no zone</emphasis>.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
@@ -906,7 +906,7 @@ For interfaces that are not under control of NetworkManager, firewalld tries to
dddd59
 	Binding a source to a zone means that this zone settings will be used to restrict traffic from this source.
dddd59
       </para>
dddd59
       <para>
dddd59
-	A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address (no mask). For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
dddd59
+	A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address or an ipset with the ipset: prefix. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
dddd59
       </para>
dddd59
       <para>
dddd59
 	Options in this section affect only one particular zone. If used with <option>--zone</option>=<replaceable>zone</replaceable> option, they affect the zone <replaceable>zone</replaceable>. If the option is omitted, they affect default zone (see <option>--get-default-zone</option>).
dddd59
@@ -925,19 +925,19 @@ For interfaces that are not under control of NetworkManager, firewalld tries to
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--permanent</option></optional> <optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--add-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--permanent</option></optional> <optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--add-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Bind source <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> to zone <replaceable>zone</replaceable>. If zone is omitted, default zone will be used.
dddd59
+	      Bind the source to zone <replaceable>zone</replaceable>. If zone is omitted, default zone will be used.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--change-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--change-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Change zone the source <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> is bound to to zone <replaceable>zone</replaceable>.
dddd59
+	      Change zone the source is bound to to zone <replaceable>zone</replaceable>.
dddd59
 	      It's basically <option>--remove-source</option> followed by <option>--add-source</option>.
dddd59
 	      If the source has not been bound to a zone before, it behaves like <option>--add-source</option>.
dddd59
 	      If zone is omitted, default zone will be used.
dddd59
@@ -946,19 +946,19 @@ For interfaces that are not under control of NetworkManager, firewalld tries to
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--permanent</option></optional> <optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--query-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--permanent</option></optional> <optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--query-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Query whether the source <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> is bound to the zone <replaceable>zone</replaceable>. Returns 0 if true, 1 otherwise.
dddd59
+	      Query whether the source is bound to the zone <replaceable>zone</replaceable>. Returns 0 if true, 1 otherwise.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--permanent</option></optional> <option>--remove-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--permanent</option></optional> <option>--remove-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Remove binding of source <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> from zone it was previously added to.
dddd59
+	      Remove binding of the source from zone it was previously added to.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
diff --git a/doc/xml/firewall-offline-cmd.xml b/doc/xml/firewall-offline-cmd.xml
dddd59
index 3b9c1d1..c4e5b80 100644
dddd59
--- a/doc/xml/firewall-offline-cmd.xml
dddd59
+++ b/doc/xml/firewall-offline-cmd.xml
dddd59
@@ -313,10 +313,10 @@
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><option>--get-zone-of-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><option>--get-zone-of-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Print the name of the zone the <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> is bound to or <emphasis>no zone</emphasis>.
dddd59
+	      Print the name of the zone the source is bound to or <emphasis>no zone</emphasis>.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
@@ -883,7 +883,7 @@
dddd59
 	Binding a source to a zone means that this zone settings will be used to restrict traffic from this source.
dddd59
       </para>
dddd59
       <para>
dddd59
-	A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address (no mask). For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
dddd59
+	A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address or an ipset with the ipset: prefix. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
dddd59
       </para>
dddd59
       <para>
dddd59
 	Options in this section affect only one particular zone. If used with <option>--zone</option>=<replaceable>zone</replaceable> option, they affect the zone <replaceable>zone</replaceable>. If the option is omitted, they affect default zone (see <option>--get-default-zone</option>).
dddd59
@@ -902,37 +902,37 @@
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--add-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--add-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Bind source <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> to zone <replaceable>zone</replaceable>. If zone is omitted, default zone will be used.
dddd59
+	      Bind the source to zone <replaceable>zone</replaceable>. If zone is omitted, default zone will be used.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--change-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--change-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Change zone the source <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> is bound to to zone <replaceable>zone</replaceable>. If zone is omitted, default zone will be used. If old and new zone are the same, the call will be ignored without an error. If the source has not been bound to a zone before, it will behave like <option>--add-source</option>.
dddd59
+	      Change zone the source is bound to to zone <replaceable>zone</replaceable>. If zone is omitted, default zone will be used. If old and new zone are the same, the call will be ignored without an error. If the source has not been bound to a zone before, it will behave like <option>--add-source</option>.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--query-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--query-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Query whether the source <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> is bound to the zone <replaceable>zone</replaceable>. Returns 0 if true, 1 otherwise.
dddd59
+	      Query whether the source is bound to the zone <replaceable>zone</replaceable>. Returns 0 if true, 1 otherwise.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
 
dddd59
 	<varlistentry>
dddd59
-	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--remove-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional></term>
dddd59
+	  <term><optional><option>--zone</option>=<replaceable>zone</replaceable></optional> <option>--remove-source</option>=<replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional>|<replaceable>MAC</replaceable>|ipset:<replaceable>ipset</replaceable></term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      Remove binding of source <replaceable>source</replaceable><optional>/<replaceable>mask</replaceable></optional> from zone <replaceable>zone</replaceable>. If zone is omitted, default zone will be used.
dddd59
+	      Remove binding of the source from zone <replaceable>zone</replaceable>. If zone is omitted, default zone will be used.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
diff --git a/doc/xml/firewallctl.xml b/doc/xml/firewallctl.xml
dddd59
index 69ac511..ff99e5d 100644
dddd59
--- a/doc/xml/firewallctl.xml
dddd59
+++ b/doc/xml/firewallctl.xml
dddd59
@@ -558,11 +558,11 @@ For interfaces that are not under control of NetworkManager, firewalld tries to
dddd59
 
dddd59
 	<varlistentry>
dddd59
 	  <term>
dddd59
-	    <option>source</option> { <replaceable>address</replaceable><optional>/<replaceable>mask</replaceable></optional> | ipset:<replaceable>ipset</replaceable> }
dddd59
+	    <option>source</option> { <replaceable>address</replaceable><optional>/<replaceable>mask</replaceable></optional> | MAC | ipset:<replaceable>ipset</replaceable> }
dddd59
 	  </term>
dddd59
 	  <listitem>
dddd59
 	    <para>
dddd59
-	      A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address (no mask) or also an ipset. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
dddd59
+	      A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address or also an ipset. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
diff --git a/doc/xml/firewalld.zone.xml b/doc/xml/firewalld.zone.xml
dddd59
index 747308e..130acbb 100644
dddd59
--- a/doc/xml/firewalld.zone.xml
dddd59
+++ b/doc/xml/firewalld.zone.xml
dddd59
@@ -71,7 +71,7 @@
dddd59
   [ <short><replaceable>short description</replaceable></short> ]
dddd59
   [ <description><replaceable>description</replaceable></description> ]
dddd59
   [ <interface name="<replaceable>string</replaceable>"/> ]
dddd59
-  [ <source address="<replaceable>address</replaceable>[/<replaceable>mask</replaceable>]"|ipset="<replaceable>ipset</replaceable>"/> ]
dddd59
+  [ <source address="<replaceable>address</replaceable>[/<replaceable>mask</replaceable>]"|mac="<replaceable>MAC</replaceable>"|ipset="<replaceable>ipset</replaceable>"/> ]
dddd59
   [ <service name="<replaceable>string</replaceable>"/> ]
dddd59
   [ <port port="<replaceable>portid</replaceable>[-<replaceable>portid</replaceable>]" protocol="<literal>tcp</literal>|<literal>udp</literal>"/> ]
dddd59
   [ <protcol value="<replaceable>protocol</replaceable>"/> ]
dddd59
@@ -82,7 +82,7 @@
dddd59
   [ <source-port port="<replaceable>portid</replaceable>[-<replaceable>portid</replaceable>]" protocol="<literal>tcp</literal>|<literal>udp</literal>"/> ]
dddd59
   [
dddd59
     <rule [family="<literal>ipv4</literal>|<literal>ipv6</literal>"]>
dddd59
-    [ <source address="<replaceable>address</replaceable>[/<replaceable>mask</replaceable>]"|ipset="<replaceable>ipset</replaceable>" [invert="<replaceable>True</replaceable>"]/> ]
dddd59
+    [ <source address="<replaceable>address</replaceable>[/<replaceable>mask</replaceable>]"|mac="<replaceable>MAC</replaceable>"|ipset="<replaceable>ipset</replaceable>" [invert="<replaceable>True</replaceable>"]/> ]
dddd59
     [ <destination address="<replaceable>address</replaceable>[/<replaceable>mask</replaceable>]" [invert="<replaceable>True</replaceable>"]/> ]
dddd59
     [
dddd59
       <service name="<replaceable>string</replaceable>"/> |
dddd59
@@ -182,18 +182,35 @@
dddd59
     <refsect2 id="source">
dddd59
       <title>source</title>
dddd59
       <para>
dddd59
-	Is an optional empty-element tag and can be used several times. It can be used to bind a source address or source address range to a zone. This can also be a MAC address. A source entry has exactly one attribute:
dddd59
+	Is an optional empty-element tag and can be used several times. It can be used to bind a source address, address range, a MAC address or an ipset to a zone. A source entry has exactly one of these attributes:
dddd59
       </para>
dddd59
       <variablelist>
dddd59
 	<varlistentry>
dddd59
 	  <term>address="<replaceable>address</replaceable><optional>/<replaceable>mask</replaceable></optional>"</term>
dddd59
           <listitem>
dddd59
 	    <para>
dddd59
-	      The source to be bound to the zone. The source is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address (no mask). The network family (IPv4/IPv6) will be automatically discovered. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
dddd59
+	      The source is either an IP address or a network IP address with a mask for IPv4 or IPv6. The network family (IPv4/IPv6) will be automatically discovered. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
dddd59
 	    </para>
dddd59
 	  </listitem>
dddd59
 	</varlistentry>
dddd59
 
dddd59
+	<varlistentry>
dddd59
+	  <term>mac="<replaceable>MAC</replaceable>"</term>
dddd59
+          <listitem>
dddd59
+	    <para>
dddd59
+	      The source is a MAC address. It must be of the form XX:XX:XX:XX:XX:XX.
dddd59
+	    </para>
dddd59
+	  </listitem>
dddd59
+	</varlistentry>
dddd59
+
dddd59
+	<varlistentry>
dddd59
+	  <term>ipset="<replaceable>ipset</replaceable>"</term>
dddd59
+          <listitem>
dddd59
+	    <para>
dddd59
+	      The source is an ipset.
dddd59
+	    </para>
dddd59
+	  </listitem>
dddd59
+	</varlistentry>
dddd59
       </variablelist>
dddd59
     </refsect2>
dddd59
 
dddd59
diff --git a/src/firewall-cmd b/src/firewall-cmd
dddd59
index df0747d..405d08c 100755
dddd59
--- a/src/firewall-cmd
dddd59
+++ b/src/firewall-cmd
dddd59
@@ -79,8 +79,8 @@ Zone Options
dddd59
   --get-icmptypes      Print predefined icmptypes [P]
dddd59
   --get-zone-of-interface=<interface>
dddd59
                        Print name of the zone the interface is bound to [P]
dddd59
-  --get-zone-of-source=<source>[/<mask>]
dddd59
-                       Print name of the zone the source[/mask] is bound to [P]
dddd59
+  --get-zone-of-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Print name of the zone the source is bound to [P]
dddd59
   --list-all-zones     List everything added for or enabled in all zones [P]
dddd59
   --new-zone=<zone>    Add a new zone [P only]
dddd59
   --new-zone-from-file=<filename> [--name=<zone>]
dddd59
@@ -310,15 +310,14 @@ Options to Handle Bindings of Interfaces
dddd59
 
dddd59
 Options to Handle Bindings of Sources
dddd59
   --list-sources       List sources that are bound to a zone [P] [Z]
dddd59
-  --add-source=<source>[/<mask>]
dddd59
-                       Bind <source>[/<mask>] to a zone [P] [Z]
dddd59
-  --change-source=<source>[/<mask>]
dddd59
-                       Change zone the <source>[/<mask>] is bound to [Z]
dddd59
-  --query-source=<source>[/<mask>]
dddd59
-                       Query whether <source>[/<mask>] is bound to a zone
dddd59
-                       [P] [Z]
dddd59
-  --remove-source=<source>[/<mask>]
dddd59
-                       Remove binding of <source>[/<mask>] from a zone [P] [Z]
dddd59
+  --add-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Bind the source to a zone [P] [Z]
dddd59
+  --change-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Change zone the source is bound to [Z]
dddd59
+  --query-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Query whether the source is bound to a zone [P] [Z]
dddd59
+  --remove-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Remove binding of the source from a zone [P] [Z]
dddd59
 
dddd59
 Direct Options
dddd59
   --direct             First option for all direct options
dddd59
diff --git a/src/firewall-offline-cmd b/src/firewall-offline-cmd
dddd59
index 4a9432f..978ad8a 100755
dddd59
--- a/src/firewall-offline-cmd
dddd59
+++ b/src/firewall-offline-cmd
dddd59
@@ -104,8 +104,8 @@ Zone Options
dddd59
   --get-icmptypes      Print predefined icmptypes
dddd59
   --get-zone-of-interface=<interface>
dddd59
                        Print name of the zone the interface is bound to
dddd59
-  --get-zone-of-source=<source>[/<mask>]
dddd59
-                       Print name of the zone the source[/mask] is bound to
dddd59
+  --get-zone-of-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Print name of the zone the source is bound to
dddd59
   --list-all-zones     List everything added for or enabled in all zones
dddd59
   --new-zone=<zone>    Add a new empty zone
dddd59
   --new-zone-from-file=<filename> [--name=<zone>]
dddd59
@@ -330,15 +330,14 @@ Options to Handle Bindings of Interfaces
dddd59
 
dddd59
 Options to Handle Bindings of Sources
dddd59
   --list-sources       List sources that are bound to a zone [Z]
dddd59
-  --add-source=<source>[/<mask>]
dddd59
-                       Bind <source>[/<mask>] to a zone [Z]
dddd59
-  --change-source=<source>[/<mask>]
dddd59
-                       Change zone the <source>[/<mask>] is bound to [Z]
dddd59
-  --query-source=<source>[/<mask>]
dddd59
-                       Query whether <source>[/<mask>] is bound to a zone
dddd59
-                       [Z]
dddd59
-  --remove-source=<source>[/<mask>]
dddd59
-                       Remove binding of <source>[/<mask>] from a zone [Z]
dddd59
+  --add-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Bind the source to a zone [Z]
dddd59
+  --change-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Change zone the source is bound to [Z]
dddd59
+  --query-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Query whether the source is bound to a zone [Z]
dddd59
+  --remove-source=<source>[/<mask>]|<MAC>|ipset:<ipset>
dddd59
+                       Remove binding of the source from a zone [Z]
dddd59
 
dddd59
 Direct Options
dddd59
   --direct             First option for all direct options