Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 May 2014 17:00:04 +0400
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        Bill Yuan <bycn82@gmail.com>,  Jason Hellenthal <jhellenthal@dataix.net>
Cc:        Dennis Yusupoff <dyr@smartspb.net>, FreeBSD Net <freebsd-net@freebsd.org>, Marcelo Gondim <gondim@bsdinfo.com.br>
Subject:   Re: Problem with ipfw table add 0.0.0.0/8
Message-ID:  <537A0054.5000707@FreeBSD.org>
In-Reply-To: <CAC%2BJH2xDM2u97Oa1YsG78x_6xdzTpBS-QD-cSfaWSKkKBU8GDg@mail.gmail.com>
References:  <5371084F.1060009@bsdinfo.com.br> <F78BF3AC-F031-4528-A4C1-5B22E88CEC00@dataix.net> <5371112B.2030209@bsdinfo.com.br> <5371E9E7.70400@smartspb.net> <5371F4C8.3080501@FreeBSD.org> <53720AA4.80909@smartspb.net> <537767C5.80205@FreeBSD.org> <53783333.3010205@freebsd.org> <F061517D-0A79-4734-A032-1F2BE060C8F6@dataix.net> <CAC%2BJH2xDM2u97Oa1YsG78x_6xdzTpBS-QD-cSfaWSKkKBU8GDg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 19.05.2014 11:51, Bill Yuan wrote:
> Hi Alex,
Hello Bill!
>
> You guys are chatting here! I agree with you, the table is the place should
> be enhanced, and I am working in this way as described below
>
> 1. Support more types.
> ip   :  cidr
> ipv4  : same as ip
> ipv6   : ip addr v6
> mac   : mac address
> iface   : interface name
> interface   : same as iface
> port    :   it is Alex's idea, I dont know how it works.
Well, actually that's not mine. ipfw implement the following since long ago:
+                               v = ((ipfw_insn_u32 *)cmd)->d[1];
+                               switch (v) {
+                               case 0:
+                               case 1:
+                                       /* IPv4 src/dst */
+                                       break;
+                               case 2:
+                               case 3:
+                                       /* src/dst port */
+                                       break;
+                               case 4:
+                                       /* uid/gid */
+                               case 5:
+                                       /* jid */
+                               case 6:
+                                       /* dscp */
+                                       break;
+                               }

I hope you're not using radix to implement mac addresses lookup?

Anyway, it looks like we're doing similar things.
Can you take a look on '[CFT]: ipfw named tables / different tabletypes' 
topic and
see how much it conflicts with your changes?
>
> 2. Setup the table type
> ipfw table <id> type <type>
> it will setup the type of the table, and flush the table
>
> 3. Get table type
> ipfw table <id> type show
>
> 4. Add item into the table
> ipfw table <id> add <item>
>
> a. get the type of table <id>
> b. if the type is not defined yet, that also means the table is new or
> empty,
>          then guess the type based on the <item>
> c. format the <item> and insert into the table.
>
> In this way so call "back compatible"
>
> 5. how to use table
>
> case 1
> ipfw add [line] allow icmp from "table(1)" to "table(2)"
> in the ipfw userland command, it should check the table1 and table 2 should
> be ipv4 or ipv6 type
>
> case 2
> ipfw add allow icmp from any to any MAC "table(3)" "table(4)"
> in this case, the table(3) and table(4) should be a table of MAC addresses.
>
> case 3
> ipfw  add allow icmp from any to any via table(5)
> in this case, the table 5 should be table of interface names.
>
>
> currently I am working on the mac type. :)
>
>
>
>
> On Sun, May 18, 2014 at 12:47 PM, Jason Hellenthal
> <jhellenthal@dataix.net>wrote:
>
>>
>>> On May 18, 2014, at 0:12, Julian Elischer <julian@freebsd.org> wrote:
>>>> 2) Table type/name can be specified explicitly via one of the following
>> commands:
>>>> * ipfw table 1 create [type <cidr|u32|ifindex|iface>] [name
>> "table_name"]
>>> type "ports" would be nice   but tricky to do right.
>> That . . . would be a great addition and have me switching from pf to ipfw.
>>
>> Pullllease do! :-)
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?537A0054.5000707>