freebsd-nq/sys/conf
Alexander V. Chernikov 9f7d47b025 Add API to ease adding new algorithms/new tabletypes to ipfw.
Kernel-side changelog:
* Split general tables code and algorithm-specific table data.
  Current algorithms (IPv4/IPv6 radix and interface tables radix) moved to
  new ip_fw_table_algo.c file.
  Tables code now supports any algorithm implementing the following callbacks:
+struct table_algo {
+       char            name[64];
+       int             idx;
+       ta_init         *init;
+       ta_destroy      *destroy;
+       table_lookup_t  *lookup;
+       ta_prepare_add  *prepare_add;
+       ta_prepare_del  *prepare_del;
+       ta_add          *add;
+       ta_del          *del;
+       ta_flush_entry  *flush_entry;
+       ta_foreach      *foreach;
+       ta_dump_entry   *dump_entry;
+       ta_dump_xentry  *dump_xentry;
+};

* Change ->state, ->xstate, ->tabletype fields of ip_fw_chain to
   ->tablestate pointer (array of 32 bytes structures necessary for
   runtime lookups (can be probably shrinked to 16 bytes later):

   +struct table_info {
   +       table_lookup_t  *lookup;        /* Lookup function */
   +       void            *state;         /* Lookup radix/other structure */
   +       void            *xstate;        /* eXtended state */
   +       u_long          data;           /* Hints for given func */
   +};

* Add count method for namedobj instance to ease size calculations
* Bump ip_fw3 buffer in ipfw_clt 128->256 bytes.
* Improve bitmask resizing on tables_max change.
* Remove table numbers checking from most places.
* Fix wrong nesting in ipfw_rewrite_table_uidx().

* Add IP_FW_OBJ_LIST opcode (list all objects of given type, currently
    implemented for IPFW_OBJTYPE_TABLE).
* Add IP_FW_OBJ_LISTSIZE (get buffer size to hold IP_FW_OBJ_LIST data,
    currenly implemented for IPFW_OBJTYPE_TABLE).
* Add IP_FW_OBJ_INFO (requests info for one object of given type).

Some name changes:
s/ipfw_xtable_tlv/ipfw_obj_tlv/ (no table specifics)
s/ipfw_xtable_ntlv/ipfw_obj_ntlv/ (no table specifics)

Userland changes:
* Add do_set3() cmd to ipfw2 to ease dealing with op3-embeded opcodes.
* Add/improve support for destroy/info cmds.
2014-06-14 10:58:39 +00:00
..
files Add API to ease adding new algorithms/new tabletypes to ipfw. 2014-06-14 10:58:39 +00:00
files.amd64 imagact_binmisc builds for all supported architectures, so enable it for all. 2014-05-22 05:04:40 +00:00
files.arm Add the start of the ARM platform code. This is based on the PowerPC 2014-05-17 11:27:36 +00:00
files.i386 imagact_binmisc builds for all supported architectures, so enable it for all. 2014-05-22 05:04:40 +00:00
files.ia64 Fix and improve exception tracing: 2014-03-18 23:51:34 +00:00
files.mips provide fast versions of ffsl and flsl for i386; ffsll and flsll for amd64 2014-02-14 15:18:37 +00:00
files.pc98 Clean up more lindev(4) vestiges. 2014-05-02 11:09:01 +00:00
files.powerpc Move the PS3 framebuffer console to use vt instead of syscons and adjust 2014-05-11 05:49:35 +00:00
files.sparc64 provide fast versions of ffsl and flsl for i386; ffsll and flsll for amd64 2014-02-14 15:18:37 +00:00
kern.mk bitrotted compat cruft removal: 2014-05-10 16:39:15 +00:00
kern.opts.mk Add ARM_EABI to the list, since arm kernels need it 2014-05-19 16:13:40 +00:00
kern.post.mk Some objects - such as *_genassym.o are not hooked into 2013-08-14 22:19:29 +00:00
kern.pre.mk The time is not yet ripe to break the lack of dependencies between 2014-05-17 20:31:34 +00:00
kmod_syms.awk
kmod.mk The time is not yet ripe to break the lack of dependencies between 2014-05-17 20:31:34 +00:00
ldscript.amd64
ldscript.arm Remove STARTUP_PAGETABLE_ADDR from the ARM configs and replace it with 2014-01-28 09:12:04 +00:00
ldscript.i386
ldscript.ia64
ldscript.mips
ldscript.mips.cfe
ldscript.mips.mips64
ldscript.mips.octeon1
ldscript.powerpc
ldscript.powerpc64
ldscript.sparc64
Makefile.amd64 Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
Makefile.arm Simplify clang ifdefs in the kernel a bit. Introduce 2014-05-10 16:38:09 +00:00
Makefile.i386 Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
Makefile.ia64 Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
Makefile.mips Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
Makefile.pc98 Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
Makefile.powerpc Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
Makefile.sparc64 Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
makeLINT.mk
makeLINT.sed
newvers.sh Fix the definition of hg_cmd. 2014-02-03 08:15:09 +00:00
NOTES Add disklabel64 support 2014-06-11 10:48:11 +00:00
options Add disklabel64 support 2014-06-11 10:48:11 +00:00
options.amd64 imagact_binmisc builds for all supported architectures, so enable it for all. 2014-05-22 05:04:40 +00:00
options.arm Add the start of the ARM platform code. This is based on the PowerPC 2014-05-17 11:27:36 +00:00
options.i386 imagact_binmisc builds for all supported architectures, so enable it for all. 2014-05-22 05:04:40 +00:00
options.ia64 Fix and improve exception tracing: 2014-03-18 23:51:34 +00:00
options.mips Add support for reading RouterBoard's memory which is passed by the loader 2014-05-09 14:02:18 +00:00
options.pc98
options.powerpc Merge in support for PAPR-compliant (Power Architecture Platform 2013-09-17 17:37:04 +00:00
options.sparc64
systags.sh
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST Retire the nve(4) driver; nfe(4) has been the default driver for NVIDIA 2014-02-16 12:22:43 +00:00
WITHOUT_SOURCELESS_UCODE