On Sat, Jun 27, 2020 at 02:48:18AM -0500, Matthew Martin wrote: > A rule on a bridge interface that uses arp or rarp may be followed with > a literal "request" or "reply" (cf. sbin/ifconfig/brconfig.c L1041 and > 1048), so the Ar macro is incorrect as it's argument is not > a placeholder. >
right/ > Aside: Is there a rule for when to list alternatives with foo | bar or > foo Ns | Ns bar? in/out, arp/rarp, and request/reply are all the former > sans-Ns; however, block/pass uses the Ns macro. > normally we just use arg1 | arg2, but sometimes this becomes ambiguous: rule block | pass [in | out] do "in" and "out" go with both "block" and "pass", or just "pass"? so sometimes we scrunch them up to make it clearer: rule block|pass [in | out] hence the need for Ns. i just committed your diff, but it needed a little more: Index: ifconfig.8 =================================================================== RCS file: /cvs/src/sbin/ifconfig/ifconfig.8,v retrieving revision 1.350 diff -u -r1.350 ifconfig.8 --- ifconfig.8 24 Jun 2020 17:40:10 -0000 1.350 +++ ifconfig.8 27 Jun 2020 15:31:01 -0000 @@ -751,7 +751,7 @@ .Bk -words .Op Cm tag Ar tagname .Oo -.Cm arp | rarp Op Ar request | reply +.Cm arp | rarp Op Cm request | reply .Op Cm sha Ar lladdr .Op Cm spa Ar ipaddr .Op Cm tha Ar lladdr @@ -779,9 +779,9 @@ keyword for regular packets and .Cm rarp for reverse arp. -.Ar request +.Cm request and -.Ar reply +.Cm reply limit matches to requests or replies. The source and target host addresses can be matched with the .Cm sha thanks for the diff! jmc