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>