Bug 56021

Summary: Documentation incorrect for mac in ipfw2
Product: Documentation Reporter: Glen Gibb <grg>
Component: Books & ArticlesAssignee: Peter Pentchev <roam>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Glen Gibb 2003-08-27 02:10:02 UTC
The man page for ipfw (IPFW2) is incomplete/misleading in regards to the "mac" option in the RULE OPTIONS section. 

The man page states that the address can be "optionally followed by a mask indicating how many bits are significant, as in MAC 10:20:30:40:50:60/33 any". This IS correct but it does not mention the second method of specifying a bit mask, that is by following the address with an ampersand (&) followed by the bitmask whcich is specified using the same format as the address. For example, if we wanted to match any mac address that ended with 60, we could use the following mask:
MAC 00:00:00:00:50:60&00:00:00:00:00:ff

Fix: 

Suggested change to the documentation:

"Match packets with a given dst-mac and src-mac addresses, speci-
fied as the any keyword (matching any MAC address), or six groups
of hex digits separated by colons, and optionally followed by a
mask indicating the significant bits.

The mask may be specified using either of the following methods:

i) append to the address a slash (/) followed by the number of bits that 
are significant. For example, an address in which the first 33 bits are
significant could be specified as:

MAC 10:20:30:40:50:60/33 any

ii) append to the address an ampersand (&) followed by a bitmask specified
as six groupsof hex digits separated by colons. For example, an address in 
which the last 16 bits are significant could be specified as:

MAC 10:20:30:40:50:60&00:00:00:00:00:ff any

Note that the ampersand character has special meaning in most shells and
must generally be escaped.

Note that the order of MAC addresses (destination first, source
second) is the same as on the wire, but the opposite of the one
used for IP addresses."
How-To-Repeat: man ipfw 
:)
Comment 1 Peter Pentchev 2003-09-05 17:19:15 UTC
On Wed, Aug 27, 2003 at 11:07:21AM +1000, Glen Gibb wrote:
> 
> >Number:         56021
> >Category:       docs
> >Synopsis:       Documentation incorrect for mac in ipfw2
> >Originator:     Glen Gibb
> >Release:        FreeBSD 5.1-CURRENT i386
[snip]
> >Description:
> 
> The man page for ipfw (IPFW2) is incomplete/misleading in regards to
> the "mac" option in the RULE OPTIONS section. 
> 
> The man page states that the address can be "optionally followed by a
> mask indicating how many bits are significant, as in MAC
> 10:20:30:40:50:60/33 any". This IS correct but it does not mention the
> second method of specifying a bit mask, that is by following the
> address with an ampersand (&) followed by the bitmask whcich is
> specified using the same format as the address. For example, if we
> wanted to match any mac address that ended with 60, we could use the
> following mask:
> 
> MAC 00:00:00:00:50:60&00:00:00:00:00:ff

What do you think about the following patch?

G'luck,
Peter

-- 
Peter Pentchev	roam@ringlet.net    roam@sbnd.net    roam@FreeBSD.org
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
This sentence was in the past tense.

Index: src/sbin/ipfw/ipfw.8
===================================================================
RCS file: /home/ncvs/src/sbin/ipfw/ipfw.8,v
retrieving revision 1.131
diff -u -r1.131 ipfw.8
--- src/sbin/ipfw/ipfw.8	22 Jul 2003 07:41:24 -0000	1.131
+++ src/sbin/ipfw/ipfw.8	5 Sep 2003 16:12:41 -0000
@@ -1046,11 +1046,31 @@
 .Cm any
 keyword (matching any MAC address), or six groups of hex digits
 separated by colons,
-and optionally followed by a mask indicating how many bits are
-significant, as in
+and optionally followed by a mask indicating the significant bits.
+The mask may be specified using either of the following methods:
+.Bl -enum -width indent
+.It
+A slash
+.Pq /
+followed by the number of significant bits.
+For example, an address with 33 significant bits could be specified as:
 .Pp
 .Dl "MAC 10:20:30:40:50:60/33 any"
 .Pp
+.It
+An ampersand
+.Pq &
+followed by a bitmask specified as six groups of hex digits separated
+by colons.
+For example, an address in which the last 16 bits are significant could
+be specified as:
+.Pp
+.Dl "MAC 10:20:30:40:50:60&00:00:00:00:00:ff any"
+.Pp
+Note that the ampersand character has a special meaning in many shells
+and should generally be escaped.
+.Pp
+.El
 Note that the order of MAC addresses (destination first,
 source second) is
 the same as on the wire, but the opposite of the one used for
Comment 2 Glen Gibb 2003-09-08 11:34:44 UTC
The patch looks ok to me. Don't be surprised if I'm slow to reply for the
next week or two - I'm currently travalling.

Glen

On Fri, 5 Sep 2003, Peter Pentchev wrote:

> On Wed, Aug 27, 2003 at 11:07:21AM +1000, Glen Gibb wrote:
> >
> > >Number:         56021
> > >Category:       docs
> > >Synopsis:       Documentation incorrect for mac in ipfw2
> > >Originator:     Glen Gibb
> > >Release:        FreeBSD 5.1-CURRENT i386
> [snip]
> > >Description:
> >
> > The man page for ipfw (IPFW2) is incomplete/misleading in regards to
> > the "mac" option in the RULE OPTIONS section.
> >
> > The man page states that the address can be "optionally followed by a
> > mask indicating how many bits are significant, as in MAC
> > 10:20:30:40:50:60/33 any". This IS correct but it does not mention the
> > second method of specifying a bit mask, that is by following the
> > address with an ampersand (&) followed by the bitmask whcich is
> > specified using the same format as the address. For example, if we
> > wanted to match any mac address that ended with 60, we could use the
> > following mask:
> >
> > MAC 00:00:00:00:50:60&00:00:00:00:00:ff
>
> What do you think about the following patch?
>
> G'luck,
> Peter
>
> --
> Peter Pentchev	roam@ringlet.net    roam@sbnd.net    roam@FreeBSD.org
> PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
> Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
> This sentence was in the past tense.
>
> Index: src/sbin/ipfw/ipfw.8
> ===================================================================
> RCS file: /home/ncvs/src/sbin/ipfw/ipfw.8,v
> retrieving revision 1.131
> diff -u -r1.131 ipfw.8
> --- src/sbin/ipfw/ipfw.8	22 Jul 2003 07:41:24 -0000	1.131
> +++ src/sbin/ipfw/ipfw.8	5 Sep 2003 16:12:41 -0000
> @@ -1046,11 +1046,31 @@
>  .Cm any
>  keyword (matching any MAC address), or six groups of hex digits
>  separated by colons,
> -and optionally followed by a mask indicating how many bits are
> -significant, as in
> +and optionally followed by a mask indicating the significant bits.
> +The mask may be specified using either of the following methods:
> +.Bl -enum -width indent
> +.It
> +A slash
> +.Pq /
> +followed by the number of significant bits.
> +For example, an address with 33 significant bits could be specified as:
>  .Pp
>  .Dl "MAC 10:20:30:40:50:60/33 any"
>  .Pp
> +.It
> +An ampersand
> +.Pq &
> +followed by a bitmask specified as six groups of hex digits separated
> +by colons.
> +For example, an address in which the last 16 bits are significant could
> +be specified as:
> +.Pp
> +.Dl "MAC 10:20:30:40:50:60&00:00:00:00:00:ff any"
> +.Pp
> +Note that the ampersand character has a special meaning in many shells
> +and should generally be escaped.
> +.Pp
> +.El
>  Note that the order of MAC addresses (destination first,
>  source second) is
>  the same as on the wire, but the opposite of the one used for
>
Comment 3 Peter Pentchev freebsd_committer freebsd_triage 2003-09-10 07:41:28 UTC
State Changed
From-To: open->patched

Committed to -CURRENT, I will merge it into -STABLE in a month, 
after the code freeze for 4.9-RELEASE is over. 
Thanks for reporting this! 


Comment 4 Peter Pentchev freebsd_committer freebsd_triage 2003-09-10 07:41:28 UTC
Responsible Changed
From-To: freebsd-doc->roam

I will handle the MFC.
Comment 5 Peter Pentchev freebsd_committer freebsd_triage 2004-06-04 10:24:37 UTC
State Changed
From-To: patched->closed

A couple of months late, I merged the clarification into -STABLE. 
Thanks for the problem report!