Skip to content
Branch: master
Commits on May 14, 2019
  1. Add support for kernel 5.1

    ydahhrk committed May 14, 2019
    Fixes #286.
Commits on Apr 26, 2019
Commits on Apr 22, 2019
Commits on Apr 18, 2019
Commits on Apr 17, 2019
  1. Patch `next_ephemeral` back into the code

    ydahhrk committed Apr 17, 2019
    The implementation of this variable had been likely unwillingly
    forgotten during some refactor, probably 3 years ago.
    In truth, this is a double-edged "improvement." Enabling next_ephemeral
    reduces probability of collision during port allocation for connections
    that share the `--f-args` fields, at the cost of reduced probability of
    address preservation.
    Both approaches have advantages and disadvantages, so I chose to go with
    the standard option. (From RFC 6056, algorithm 3.)
Commits on Apr 16, 2019
  1. Apply two optimizations:

    ydahhrk committed Apr 16, 2019
    1. Remove spinlock from the RFC 6056 code.
       The protected variable was reentrant, so the lock was pointless.
    2. Remove get_random_bytes() from the algorithm that computes the
       IPv4 Identification field.
       The alternative, __ip_select_ident(), seems to be the kernel's
       intended Identification generator.
    Progress on #282.
    I still don't know why both optimizations are apparently needed
    to see any improvement. Hmmm...
Commits on Feb 6, 2019
  1. Clarify the JSTAT_POOL4_MISMATCH counter's description

    ydahhrk committed Feb 6, 2019
    Follow-up from #277
Commits on Jan 17, 2019
  1. Update the manpages, finally

    ydahhrk committed Jan 17, 2019
    Also: I noticed that pool6 wasn't being properly validated during
    instance adds. It's fixed now.
Commits on Jan 9, 2019
Commits on Jan 8, 2019
  1. Apply latest feedback on atomic config

    ydahhrk committed Jan 8, 2019
    - The JSON parser is a lot more strict now.
      Duplicate and unknown tags are not allowed.
    - Added "comment" tags.
      But only on new instances.
    - Removed several segfaults.
Commits on Jan 6, 2019
  1. Make src/usr/iptables/Makefile respect $DESTDIR

    paradon committed Jan 6, 2019
    Prepend ${DESTDIR} to the destination path in the xtables module
    "make install" / "make uninstall" targets, as expected by package
    build systems.
Commits on Jan 4, 2019
Commits on Jan 3, 2019
  1. Patch successful compilation back for kernels 4.7-

    ydahhrk committed Jan 3, 2019
    The new time API was added in kernel 4.8, so it can't be used
    before that.
Commits on Dec 31, 2018
  1. Fix deprecated time calls to fix compile against 4.20.x

    paradon committed Dec 31, 2018
    A pair of logging functions in src/mod/nat64/bib/db.c were using
    'time_to_tm()' which was removed in 4.20.0.
    This commit updates those calls to 'time64_to_tm()', and also
    updates the related calls to the deprecated 'do_gettimeofday()'
    to use 'ktime_get_real_seconds()' instead.
Commits on Dec 27, 2018
Commits on Dec 22, 2018
Commits on Dec 20, 2018
  1. Validate type of the json root

    ydahhrk committed Dec 20, 2018
    Prevents another segfault.
Commits on Dec 19, 2018
  1. Return the ss-* globals

    ydahhrk committed Dec 19, 2018
    I had removed them during development out of laziness and forgot
    to patch them back.
Commits on Dec 18, 2018
  1. Validate types of certain json elements

    ydahhrk committed Dec 18, 2018
    Prevents segfault when global element is incorrectly declared as
    an array.
    Also improves the relevant error messages a bit.
Commits on Dec 14, 2018
Commits on Dec 13, 2018
  1. Fix kernel panic on instance removal

    ydahhrk committed Dec 13, 2018
    It was triggering reliably on 3.15 (and below) and RHEL kernels.
Commits on Dec 10, 2018
Commits on Nov 25, 2018
Commits on Nov 24, 2018
  1. Add scripts to enable bash autocompletion on the usr clients

    ydahhrk committed Nov 24, 2018
    Fixes #259.
    Also fix several other small bugs thanks to day's worth of testing.
Commits on Nov 23, 2018
Commits on Nov 21, 2018
  1. More testing

    ydahhrk committed Nov 21, 2018
    - Patch lots of warnings reported by cgcc. (Mostly just add `static` to
      a bunch of private functions, purge some unused code.)
    - Address some urgent TODOs (and reclassify others).
    - Pump some steroids on the page unit test. (Looks like I had rushed it;
      it wasn't very exhaustive. Also, add pskb_trim() unit tests since it's
      fairly blunt code.)
    - Long overdue refactor of the skb_generator module. It now supports
      paged skbs.
    - skb_log module refactor. Likewise, it now prints paged packets a
      little better.
    All that's left in my prerelease TODO list is some some graybox tests.
Commits on Nov 18, 2018
  1. Deep testing

    ydahhrk committed Nov 18, 2018
    - Fix some still lingering timeout bugs. Also, format all timeouts as
    - Maximize the ICMP error delivery probability by preventing them from
      being too large.
Commits on Nov 5, 2018
  1. Testing, random bugfixes

    ydahhrk committed Nov 5, 2018
    - Update dkms.conf
    - Update xlator.c comments
    - Prevent atomic configuration from changing a translator's framework
    - Fix several bugs involving the NAT64 timeout global config values
    - Patch xlator_init() so it receives enough arguments to fully initalize
      the instance
Commits on Oct 22, 2018
Commits on Oct 20, 2018
  1. Bug squashing

    ydahhrk committed Oct 20, 2018
    - Return "manually-enabled" field to global.
      (It had disappeared during the refactor.)
    - Implement stats.
      (Add "stats" mode to userspace clients.)
    - Downgrade pool6791v4 to a single global prefix.
      (Let's see if people complains.)
    - Patch session timeouts.
      (They were completely broken.)
    - Separate defrag-dealing code to a dedicated module.
      (SIIT was modprobing defrag due to unhealthy defrag management.)
    - There is no longer a framework default.
      (Because we should probably encourage people to switch to iptables.)
    - Fix global BIB and joold values.
      (The refactor had completely desync'd them. They are no longer special
      cases. I'm really gravitating to a model where almost every function
      in the project receives state as first argument.)
    - Session display was not initializing Netlink.
    - Separate SIIT and NAT64 userspace modes.
      (SIIT was offering BIB operations, for example. The NAT64 client
      wasn't compiling.)
    - Write some --help documentation.
    - Graybox is working again.
    - Delete the scripted userspace tests, since they are rather
    And also other minor refactors and bugs that I might have missed while
    reading the diff.
    No, I'm not done. This project, man. Guess I'll have to brute force it
    another weekend.
Commits on Oct 17, 2018
  1. Refactor the userspace clients

    ydahhrk committed Oct 17, 2018
    Instance naming and mandatory NAT64 pool6 made bare argp much too
    convoluted for my patience. Jool 4 is likely not going to see the
    light of day (because Device Driver Jool is just going to be
    another iteration of Jool 3 now), and since we're changing minor
    version number in this release, now is the time.
    - Remove double dashes in many command line arguments; issue #259.
    - Centralize global variable management. Removes a lot of paperwork
      every time we need to add/change/remove some global value.
    - Separate the original massive argp parsing into one argp parsing
      per [mode, operation] tuple. Lasagna code FTW.
    There are still bugs lurking around.
You can’t perform that action at this time.