Home | History | Annotate | Line # | Download | only in doc
TODO.npf revision 1.9
      1  1.9       gdt # $NetBSD: TODO.npf,v 1.9 2025/04/13 23:03:03 gdt Exp $
      2  1.1      maxv 
      3  1.9       gdt ====== META ======
      4  1.9       gdt 
      5  1.9       gdt -- Merge still-to-be-done-items from another TODO list which was last
      6  1.9       gdt    modified in May, 2020:
      7  1.1      maxv 	https://www.netbsd.org/~rmind/npf/__tasklist.html
      8  1.1      maxv 
      9  1.9       gdt -- Review all items to see if they are still relevant and correct.
     10  1.9       gdt 
     11  1.1      maxv ====== DOCUMENTATION ======
     12  1.1      maxv 
     13  1.1      maxv -- how to convert other packet filters to npf
     14  1.1      maxv 
     15  1.1      maxv -- add more examples
     16  1.1      maxv 
     17  1.1      maxv ====== NPFCTL ======
     18  1.1      maxv 
     19  1.1      maxv -- npfctl start does not load the configuration if not loaded.
     20  1.1      maxv    It is not clear you need to reload first. Or if it loads it should
     21  1.1      maxv    print the error messages. Or it should be called enable/disable since
     22  1.1      maxv    this is what it does. It does not "start" because like an engine with
     23  1.1      maxv    no fuel, an npf with no configuration does not do much.
     24  1.1      maxv 
     25  1.1      maxv -- although the framework checks the file for consistency, returning EINVAL
     26  1.1      maxv    for system failures is probably not good enough. For example if a module
     27  1.1      maxv    failed to autoload, it is probably an error and it should be reported
     28  1.1      maxv    differently?
     29  1.1      maxv 
     30  1.1      maxv -- startup/stop script does not load and save session state
     31  1.1      maxv 
     32  1.1      maxv -- add algo for "with short"
     33  1.1      maxv 
     34  1.1      maxv -- implement "port-unr"
     35  1.1      maxv 
     36  1.1      maxv -- implement block return-icmp in log final all with ipopts
     37  1.1      maxv 
     38  1.1      maxv -- handle array variables in more places
     39  1.1      maxv 
     40  1.1      maxv ====== GENERAL ======
     41  1.1      maxv 
     42  1.1      maxv -- disable IPv4 options by default, and add a "allow-ip4opts" feature to
     43  1.1      maxv    enable them
     44  1.1      maxv 
     45  1.1      maxv -- disable IPv6 options (IPPROTO_ROUTING, IPPROTO_HOPOPTS and IPPROTO_DSTOPTS)
     46  1.1      maxv    by default, and add a "allow-ip6opts" feature to enable them
     47  1.1      maxv 
     48  1.1      maxv -- add an ioctl, similar to PF's DIOCNATLOOK and IPF's SIOCGNATL, and document
     49  1.1      maxv    it so that it can be added in third-party software, like:
     50  1.1      maxv        https://github.com/squid-cache/squid/blob/5b74111aff8948e869959113241adada0cd488c2/src/ip/Intercept.cc#L263
     51  1.1      maxv 
     52  1.2      maxv -- support IPv6 jumbograms
     53  1.2      maxv 
     54  1.2      maxv -- support large IPv6 options, as explained here:
     55  1.2      maxv        http://mail-index.netbsd.org/tech-net/2018/04/08/msg006786.html
     56  1.2      maxv    But it's not a big problem - perhaps we don't care at all.
     57  1.4     darcy 
     58  1.4     darcy -- add command line variables.  See -D option in pf.
     59  1.5  sborrill 
     60  1.5  sborrill -- improve mss clamping, as explained here:
     61  1.5  sborrill        http://mail-index.netbsd.org/tech-net/2017/01/15/msg006224.html
     62