Date: Mon, 11 Jan 2010 16:12:09 -0800 From: Julian Elischer <julian@elischer.org> To: Maxim Ignatenko <gelraen.ua@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: ng_patch node Message-ID: <4B4BBE59.9010908@elischer.org> In-Reply-To: <ac42db051001111440p7b460641g855e4264d9433f58@mail.gmail.com> References: <ac42db051001111440p7b460641g855e4264d9433f58@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Maxim Ignatenko wrote: > Hi, > I've written netgraph node able to modify arbitrary (8|16|32)-bit > unsigned integer in passing packets. Node applies one of =,+,-,&,| and > ^ operations to number at given offset. > Modification applied to each packet received on "in" hook. If "out" > hook is connected - resulting packets passed on it, otherwise - > returned back on "in" (for more easy use with ng_ipfw). Packets > received on "out" hook passed on "in" unmodified. > Node supports two control messages: "getconfig" and "setconfig". > Configuration represented in next structure: > struct ng_patch_config { > uint32_t value; /* argument passed to requested operation */ > uint32_t offset; /* offset in bytes */ > uint32_t length; /* 1,2 or 4 bytes */ > uint32_t mode; /* operation code: 1 - "=", 2 - "+", 3 - > "-", 4 - "&", 5 - "|", 6 - "^" */ > }; > Same names used in ASCII representation. > > I wanted to make ipfw able to modify TTL and ToS fields in IP packets, > but after some generalization idea looked like described above. I like it :-) if you can provide a short man page, I can commit it for you.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B4BBE59.9010908>