@eugeneia eugeneia released this Aug 30, 2017 · 1240 commits to master since this release

Assets 2

This release adds a library of LPM routines for IPv4 addresses. Endive also includes many various improvements and fixes, including direct access to CPU PMU hardware, MTU support for apps.tap, improved performance for apps.vlan, and extended configuration options for apps.ipv6.nd_light.

Changes

  • #1136 lib.lpm: Longest Prefix Match library for IPv4 addresses
  • #1170 lib.pmu: Enable RDPMC via /sys/devices/cpu/rdpmc
  • #1178 lib.protocol.header: Return nil instead of asserting when a header is too big to overlay
  • #1189 apps.tap: support MTU, augment stats
  • #1191 apps.vlan: improve performance, configurable encapsulation
  • #1193 apps.ipv6.nd_light: added two new configuration options (remote_mac, quit)
  • #1208 Fixes a bug in the IPFIX app's netflow v9 mode
  • #1174 #1176 #1179 #1142 Minor bug fixes and improvements

Contributors

Alexander Gall (8):

  • 20d5958: Tap: support MTU, augment stats
  • d26fd86: Fixes/enhancements for iftable_mib.lua
  • ee18964: iftable_mib: streamline processing
  • c6befb8: nd_light: make app reconfigurable
  • acc3260: nd_light: add option to reduce verbosity
  • a12ac85: nd_light: add optional option local_mac
  • ccbe810: nd_light: fix bug in NS validation
  • da4f98b: apps.vlan: improve performance, configurable encapsulation

Andy Wingo (46):

  • f601fcf: intel_mp: Poll more frequently for linkup
  • bf9baa2: Re-introduce 82599 reset into linkup wait loop.
  • d60b166: Use default hash in IPFIX cache
  • 9c01453: Minor comment fix in ipfix exporter
  • ce65fd9: Split IPv4 and IPv6 collector data paths
  • e6b1d36: Small IPFIX elements parsing cleanup
  • 47a6188: IPFIX: Refactor template computation
  • 87945ec: Add anonymous counters and links
  • 10d7c6f: IPFIX exporter logic now independent of record types
  • 331840c: Rename flow key/value to match standard IEs
  • a7d3db1: Join IPFIX apps together
  • fb959e7: Use generated types in ipfix cache
  • 4aa22c5: Better mocking for ipfix test
  • 318bac7: Join IPFIX meter and exporter apps
  • 4608a95: Implicitly create cache, and expire records directly
  • 4b9874d: IPFIX app has single input again
  • 1daf62d: Separate IPFIX templates into separate file
  • a17a0e9: Fix IPFIX leak
  • 2a9efb6: Revert anonymous links
  • 03d4075: Pare down info collected by default IPFIX flow sets
  • 26da117: Try different expiry mechanism
  • ba10cc3: Remove unused variable
  • 0115e5d: Configurable template refresh interval
  • 2887322: Remove IPFIX utils module
  • 72bddd8: Clean up IPFIX file header
  • 56914f9: Clean up FlowSet initialization.
  • c5a9f3e: Add comments; use float seconds more generally.
  • 734501a: More IPFIX cleanup
  • 6ac2bf2: Make set of templates configurable
  • 16830a3: Add README.md
  • 1d2d633: Initial import of lwAFTR IPv4 apps to apps/ipv4
  • ed64366: Inline needed bits of ipv4_apps into arp.lua
  • 93e1f2d: Add ARP test
  • d426e2f: Break ARP app off from lwaftr
  • e8e2f30: Switch lwAFTR over to new ARP app
  • 5d57a65: ARP can assign itself a local MAC address; stamps outgoing traffic
  • e2f5f31: Add ARP README.md
  • 3c57080: Add ARP documentation to the doc build
  • 41c49f2: Fix nits
  • 8880f5e: Remove unwanted tabs
  • adbd63c: Integrate ARP into IPFIX
  • b949911: Remove Ethernet details from IPFIX app
  • 9155b53: Simplify "probe" interface to rely on ARP
  • e31bace: Add missing imports
  • 6e5a979: Add documentation for ipfix probe
  • e7bf90e: Fix nits

Asumu Takikawa (70):

  • b5bfcec: Initial draft of netflow app
  • b6759d3: Add a selftest, support transport ports properly
  • b07d1f0: Start to implement V9/IPFIX communication code
  • a304284: Can now export flow records at a very basic level
  • b35fb6b: Fix uptime calculation for v9 packets
  • e30dc7d: Fix IP checksum computation for exports
  • f2f3421: Make the exporter slightly more configurable
  • d2eed9a: Rename apps/program to avoid netflow confusion
  • 4d9965e: Account for MTU in constructing record packets
  • 2953d56: Make sure to free ignored packets
  • 415b353: Make selftest pass again
  • 5952427: Rewrite timer-based code in flow_export
  • 6e4e411: Print a message when selftest succeeds
  • 787fc48: Add a sanity check for flow exporter's ctable
  • 41e023a: Improve selftest with random packet processing
  • d2c82eb: Improve selftest by checking number of flows
  • 33f293e: Fix variables that should have been renamed
  • 4da54b2: Fix flow timestamp code to use the right clock
  • 332c9ee: Enable idle flow timeout now that it works
  • 1b77271: Reformat FFI cdefs for flow key/record
  • 1008f5b: Restructure flow data structures for efficiency
  • ca47cb6: Add an IPv6 test and fix address fields in key
  • 11543f2: Modify IPFIX code to use IANA assignment CSV
  • b6171d6: Fix uptime computation that got out of sync
  • 3374a65: Add debug printing for flow expiration
  • 4320295: Fix silly boolean/number confusion in ipfix.lua
  • abe9d9e: Fix typo in ipfix.lua
  • a1f866a: Improve debug printouts, set it via environment
  • acdb106: Swap idle and active timeouts
  • 8f890ae: Improve debug messages with datestamp, abstract it
  • 735493b: Fix active timeout calculation
  • 80026f4: Fix padding bytes and do a minor refactoring
  • 833d141: Progress towards a robust snabb flow_export run
  • 6481093: Make flow timeouts configurable via program flags
  • 8091ffe: Refactor IPFIX code to use a class & methods
  • 3175097: Adjust flow export code to allow IPFIX v10 messages
  • b0acf2c: Refactor write_header arguments in ipfix
  • 6a9d1b2: Adjust default MTU to 512 octets per RFC7011
  • 21f7e93: Adjust default template refresh per RFC5153
  • 43d2b60: Packets should always be freed at the end
  • d3d0062: Adjust selftest for recent config changes
  • 37f879d: Use a consistent UDP src port per "session"
  • 0d11dae: Fix record data order and do minor refactoring
  • 0582024: Do a major refactoring of the flow exporter into two apps
  • 3805894: Rename flow export app/program to ipfix
  • 4467041: Add a selftest for apps.ipfix.export
  • ef4e93f: Move record expiry function back into the meter
  • 38b96ad: Expire records incrementally instead of on a timer
  • e2243ce: Rewrite meter code to avoid using header libraries
  • 62a550d: Improve 'snabb ipfix probe' for benchmarking
  • a0ccddb: Avoid allocation of flow keys for old flows
  • af63e7e: Fix bugs in the last commit, zero out the key
  • 3ac87e2: Pre-allocate both keys and record variables
  • 59d5017: Reduce number of timestamp computations
  • bd89b4d: Save some space in the flow key representation
  • 8271e42: Use a different hash function for performance
  • 53e04f6: Use dynasm to speed up the hash function
  • c760913: Use slightly nicer assembly for hash
  • 9b89c94: Avoid indirection through wrapper methods in cache
  • 79126df: Fix debug prints that broke from some optimization
  • 60e1a0c: Add a basic benchmark script for the IPFIX app
  • d8b4cb1: Fix pcap output for ipfix probe
  • fc5f8eb: Fix typo in ipfix probe
  • 2f5c77f: Fix app configuration in ipfix probe
  • 5233987: Add tap IO option for ipfix probe
  • 7ce48da: Don't read southbound packets until ARP resolved
  • b824190: Add timeout options to ipfix probe docs
  • 78bdcae: Add an ipfix test script that uses a collector
  • 4c9c4b8: Improve ipfix collector test
  • 17ac209: Fix typo in IPFIX v9 mode

Diego Pino Garcia (1):

  • d718130: Remove src/core/version.lua from .gitignore

Luke Gorrie (5):

  • d01f416: lib.pmu: Enable RDPMC via /sys/devices/cpu/rdpmc
  • 5fc8a77: .version: Bump to 2017.08
  • fabac14: virtual_ether_mux: Treat vlan=0 as vlan=nil
  • 290c139: Revert "virtual_ether_mux: Treat vlan=0 as vlan=nil"
  • ebd0aa9: apps.vlan: Allow vlan=0

Nicola 'tekNico' Larosa (4):

  • 1f1da1b: Avoid the most repetitive output in tests
  • e2aba33: Reintroduce deterministic seed report, but only when it is a new one
  • 104502f: Remove broken attempt to filter output
  • 3b86679: Relax the check on max_displacement in selftest

Pete Bristow (1):

  • 52b6308: initial import of lib.lpm* longest prefix matching lookup routines for IPv4 addresses

ikdc (6):

  • 13aa49a: Return nil instead of asserting when a header is too big to overlay.
  • 06a42e6: free new header if size is too small
  • 3b35912: document that new_from_mem can return nil
  • 2e0d952: check that new_from_mem returns non-nil in header subclasses
  • 20a1f19: assert TLV options
  • 22fa8c8: assert miscellaneous uses of new_from_mem