# changelog

author: Timothy Redaelli <tredaelli@redhat.com> - 2.13.0-116
changelog:
  - Merging 15251f0e1d datapath-windows: Specify external include ..
    [f9d10a495b5d502d948a4c8e3c6301cfb942d6ac]


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-113
changelog:
  - Merging upstream branch-2.13 [RH git: 43b0d45790]
      Commit list:
      32a197f845 dpif-netdev: Remove meter rate from the bucket size calculation.
      1b4d8fe1d9 ovsdb-idl: Consider all tables when computing expected cond seqno.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-114
changelog:
  - Merging upstream branch-2.13 [RH git: 63656e47fb]
      Commit list:
      160bb80a32 ofp_actions: Fix set_mpls_tc formatting.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-115
changelog:
  - Merging upstream branch-2.13 [RH git: 190762bf5c]
      Commit list:
      8be19f789b dpif-netlink: Fix send of uninitialized memory in ct limit requests.
      25dd08492d ofproto-dpif: Fix use of uninitialized attributes of timeout policy.
      95570b23c8 netdev-linux: Fix use of uninitialized LAG master name.


author: Timothy Redaelli <tredaelli@redhat.com> - 2.13.0-116
changelog:
  - Merging 15251f0e1d datapath-windows: Specify external include .. [RH git: f9d10a495b]
      Commit list:
      15251f0e1d datapath-windows: Specify external include paths
      9f05167b21 Remove Python 2 leftovers.
      64c3133c01 ipf: Fix a use-after-free error, and remove the 'do_not_steal' flag.
      fe7bd42d6c ofproto: Fix potential NULL dereference in ofproto_ct_*_zone_timeout_policy().
      fc23134227 ofproto: Fix potential NULL dereference in ofproto_get_datapath_cap().


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-117
changelog:
  - Merging upstream branch-2.13 [RH git: 1dbd295283]
      Commit list:
      9b1c0df6ad dpif-netlink: Fix report_loss() message.
      17e98772cb conntrack: Document all-zero IP SNAT behavior and add a test case.
      305b944a2e ovsdb-server: Fix memleak when failing to read storage.
      1aa1f59142 netdev-linux: Ignore TSO packets when TSO is not enabled for userspace.
      d127fa6d2b conntrack: Handle already natted packets.
      c8ebe4434c python: Fix Idl.run change_seqno update.
      2762bf6895 Prepare for 2.13.5.
      d72ccdfbda Set release date for 2.13.4.
      76fdda2b34 netlink: removed incorrect optimization
      9c386761f9 ovs-actions.xml: Add missing bracket.
      be8c4af1ce netdev-offload-tc: Use nl_msg_put_flag for OVS_TUNNEL_KEY_ATTR_CSUM.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-118
changelog:
  - Merging upstream branch-2.13 [RH git: d613ce404a]
      Commit list:
      d794934d01 datapath-windows:Correct checksum for DNAT action


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-119
changelog:
  - Merging upstream branch-2.13 [RH git: c2e53c3150]
      Commit list:
      f92ce92e53 daemon-unix: Fix leak of a fork error message.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-120
changelog:
  - Merging upstream branch-2.13 [RH git: eda2f50cf9]
      Commit list:
      f7e3b47e09 dpif-netdev: Fix offloads of modified flows.
      350507b163 dpif-netdev: Fix flow modification after failure.


author: Michael Santana <msantana@redhat.com> - 2.13.0-121
changelog:
  - pkgtool: Make changelog in spec file more informative [RH git: 42174a9bc1]
      This is done by adding the body of the commit message to the changelong.
      The body is indented and has extra spacing separating each entry in the
      changelog to make each one more discernible since now they could be
      longer.
      
      Also, make sure the bugzilla ID is at the end of the line
      
      Signed-off-by: Michael Santana <msantana@redhat.com>


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-122
changelog:
  - Merging upstream branch-2.13 [RH git: 775922244f]
      Commit list:
      f61f810fb3 tc: Set action flags for tunnel_key release.
      0dc609a260 netlink-socket: Replace error with txn->error when logging nacked transactions.
      d3776e354c dynamic-string: Fix a crash in ds_clone().


author: Michael Santana <msantana@redhat.com> - 2.13.0-123
changelog:
  - Migrate openvswitch to gitlab [RH git: 081bad43fc]
      Signed-off-by: Michael Santana <msantana@redhat.com>


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-124
changelog:
  - Merging upstream branch-2.13 [RH git: b3c7c50935]
      Commit list:
      38efd803dd dpif-netdev: Fix crash when PACKET_OUT is metered.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-125
changelog:
  - Merging upstream branch-2.13 [RH git: 215f08bbd8]
      Commit list:
      a56a8008eb netdev-linux: Fix a null pointer dereference in netdev_linux_notify_sock().
      186ff2a5b2 pcap-file: Fix memory leak in ovs_pcap_open().
      b9b144b8d8 odp-util: Fix a null pointer dereference in odp_flow_format().
      fea883d3bd odp-util: Fix a null pointer dereference in odp_nsh_key_from_attr__().
      ef6d151b04 ipf: Fix only nat the first fragment in the reass process.


author: Timothy Redaelli <tredaelli@redhat.com> - 2.13.0-126
changelog:
  - redhat: use hugetlbfs group for /var/log/openvswitch when dpdk is enabled [RH git: a32eb508f7] (#2007292)
      Resolves: #2007292


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-127
changelog:
  - Merging upstream branch-2.13 [RH git: a117849d24]
      Commit list:
      e33aaf8bda cirrus: Reduce memory requirements for FreeBSD VMs.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-128
changelog:
  - Merging upstream branch-2.13 [RH git: 9d83aff7e3]
      Commit list:
      695d25f507 datapath-windows:adjust Offset when processing packet in POP_VLAN action


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-129
changelog:
  - Merging upstream branch-2.13 [RH git: fc819dabd3]
      Commit list:
      ec44c50cf0 ipf: release unhandled packets from the batch


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-130
changelog:
  - Merging upstream branch-2.13 [RH git: beb8cdaec6]
      Commit list:
      ceb395773d dpif-netdev: Fix use-after-free on PACKET_OUT of IP fragments.
      fed4df9bb7 tunnel-push-pop.at: Mask source port in tunnel header.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-131
changelog:
  - Merging upstream branch-2.13 [RH git: 31c65d3e94]
      Commit list:
      6e2e180851 ofproto-dpif-xlate: Fix zone set from non-frozen-metadata fields.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.13.0-132
changelog:
  - Merging upstream branch-2.13 [RH git: 60a72ee3f6]
      Commit list:
      5c33e4db80 datapath-windows: add layers when adding the deferred actions


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-22
changelog:
  - Merging upstream branch-2.15 [RH gerrit: 8b6b82c2ed]
      Commit list:
      e87adce83c dpif-netdev: Remove meter rate from the bucket size calculation.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-23
changelog:
  - Merging upstream branch-2.15 [RH gerrit: ba3ba16d42]
      Commit list:
      8995d53112 dpif-netlink: Fix send of uninitialized memory in ct limit requests.
      0c056891c2 ofproto-dpif: Fix use of uninitialized attributes of timeout policy.
      121a67cad3 netdev-linux: Fix use of uninitialized LAG master name.
      5f27ff1cfa ofp_actions: Fix set_mpls_tc formatting.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-24
changelog:
  - Merging upstream branch-2.15 [RH gerrit: 78ba3622d9]
      Commit list:
      bc0aa785a8 ovsdb-idl: Fix the database update signaling if it has never been connected.
      559426d2b0 ofproto: Fix potential NULL dereference in ofproto_ct_*_zone_timeout_policy().
      f31070e27e ofproto: Fix potential NULL dereference in ofproto_get_datapath_cap().


author: Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-25
changelog:
  - Merging 881d71ea22e datapath-windows: Specify external include .. [RH gerrit: 8ad5538601]
      Commit list:
      881d71ea22e datapath-windows: Specify external include paths
      934668c295e Remove Python 2 leftovers.
      aaa59670556 ipf: Fix a use-after-free error, and remove the 'do_not_steal' flag.


author: Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-26
changelog:
  - Use 10 characters of hash to generate the changelog [RH gerrit: d89d9cd0f1]
      This is needed to avoid that the history changes since the default
      changes from time to time


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-27
changelog:
  - Merging upstream branch-2.15 [RH gerrit: abdd952536]
      Commit list:
      72132a9403 bond: Fix broken rebalancing after link state changes.
      aa84cfe25d dpif-netlink: Fix report_loss() message.
      aec05f7cd1 ovsdb-server: Fix memleak when failing to read storage.
      05bdf11fc3 conntrack: Init hash basis first at creation.
      94e3b9d9ce netdev-linux: Ignore TSO packets when TSO is not enabled for userspace.
      842bfb899f conntrack: Handle already natted packets.
      ab873c1afe conntrack: Document all-zero IP SNAT behavior and add a test case.
      86d6a9ee14 python: Fix Idl.run change_seqno update.
      1ba0c83655 bridge: Use correct (legacy) role names in database.
      7e5293ea5a Prepare for 2.15.2.
      b855bbc326 Set release date for 2.15.1.
      007a4f48fe dpif-netdev: Apply subtable-lookup-prio-set on any datapath.
      c93358a563 netlink: removed incorrect optimization
      31626579fa ovs-actions.xml: Add missing bracket.
      30596ec278 netdev-offload-tc: Use nl_msg_put_flag for OVS_TUNNEL_KEY_ATTR_CSUM.
      728980291a conntrack: Increment coverage counter for all bad checksum cases.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-28
changelog:
  - Merging upstream branch-2.15 [RH gerrit: 48a90081e8]
      Commit list:
      ee4e034dc9 datapath-windows:Correct checksum for DNAT action


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-29
changelog:
  - Merging upstream branch-2.15 [RH gerrit: 60c8b2a15b]
      Commit list:
      8aa0f03747 ovsdb-cs: Perform forced reconnects without a backoff.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-30
changelog:
  - Merging upstream branch-2.15 [RH gerrit: a76a4dfca6]
      Commit list:
      8d84a4b166 netdev-offload-dpdk: Fix IPv6 rewrite cast-align warning.
      f3f7849cbb daemon-unix: Fix leak of a fork error message.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-31
changelog:
  - Merging upstream branch-2.15 [RH gerrit: 88fb0bba8a]
      Commit list:
      b29b04f85f dpif-netdev: Fix offloads of modified flows.
      1d0b89ea7b dpif-netdev: Fix flow modification after failure.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-32
changelog:
  - Merging upstream branch-2.15 [RH gerrit: 2cc833ce5b]
      Commit list:
      90b219275d dpif-netdev: Do not flush PMD offloads on reload.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-33
changelog:
  - Merging upstream branch-2.15 [RH gerrit: 08b4ccb1c4]
      Commit list:
      64d1bba919 dpif-netdev: fix memory leak in dpcls subtable set command


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-29
changelog:
  - Merging upstream branch-2.15 [RH git: 60c8b2a15b]
      Commit list:
      8aa0f03747 ovsdb-cs: Perform forced reconnects without a backoff.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-30
changelog:
  - Merging upstream branch-2.15 [RH git: a76a4dfca6]
      Commit list:
      8d84a4b166 netdev-offload-dpdk: Fix IPv6 rewrite cast-align warning.
      f3f7849cbb daemon-unix: Fix leak of a fork error message.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-31
changelog:
  - Merging upstream branch-2.15 [RH git: 88fb0bba8a]
      Commit list:
      b29b04f85f dpif-netdev: Fix offloads of modified flows.
      1d0b89ea7b dpif-netdev: Fix flow modification after failure.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-32
changelog:
  - Merging upstream branch-2.15 [RH git: 2cc833ce5b]
      Commit list:
      90b219275d dpif-netdev: Do not flush PMD offloads on reload.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-33
changelog:
  - Merging upstream branch-2.15 [RH git: 08b4ccb1c4]
      Commit list:
      64d1bba919 dpif-netdev: fix memory leak in dpcls subtable set command


author: Michael Santana <msantana@redhat.com> - 2.15.0-34
changelog:
  - pkgtool: Swap bugzilla id and RH git [RH git: c2e6243d60]
      Having the bugzilla ID not at the end of the line breakes another script
      that parses for said ID. This patch fixes that by putting the ID next to
      the new line
      
      Fixes: f6b2db4dd33e ("Make changelog in spec file more informative")
      Signed-off-by: Michael Santana <msantana@redhat.com>


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-35
changelog:
  - Merging upstream branch-2.15 [RH git: 11bcf52d03]
      Commit list:
      d3ff41d609 tc: Set action flags for tunnel_key release.
      079a4de723 netlink-socket: Replace error with txn->error when logging nacked transactions.
      f8cc5aa35c dynamic-string: Fix a crash in ds_clone().


author: Michael Santana <msantana@redhat.com> - 2.15.0-36
changelog:
  - Migrate openvswitch to gitlab [RH git: 93147e2cda]
      Signed-off-by: Michael Santana <msantana@redhat.com>


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-37
changelog:
  - Merging upstream branch-2.15 [RH git: b36eb7e529]
      Commit list:
      ef8ca3e190 dpif-netdev: Fix crash when PACKET_OUT is metered.


author: Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-38
changelog:
  - ofproto-dpif-xlate: Avoid successive ct_clear datapath actions. [RH git: f9a9ac7608] (#1941027)
      Due to flow lookup optimizations, especially in the resubmit/clone cases,
      we might end up with multiple ct_clear actions, which are not necessary.
      
      This patch only adds the ct_clear action to the datapath if any ct state
      is tracked.
      
      Resolves: #1941027
      
      Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
      Acked-by: Timothy Redaelli <tredaelli@redhat.com>
      Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
      (cherry picked from commit 355fef6f2ccbcf78797b938421cb4cef9b59af13)


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-39
changelog:
  - Merging upstream branch-2.15 [RH git: c6bdfa8cc1]
      Commit list:
      7788f15798 netdev-linux: Fix a null pointer dereference in netdev_linux_notify_sock().
      dd32deba6e pcap-file: Fix memory leak in ovs_pcap_open().
      9f2f66c8ea odp-util: Fix a null pointer dereference in odp_flow_format().
      02b0c265c4 odp-util: Fix a null pointer dereference in odp_nsh_key_from_attr__().
      031eff4563 netdev-dpdk: Fix RSS configuration for virtio.
      09cd9570d2 ipf: Fix only nat the first fragment in the reass process.


author: Timothy Redaelli <tredaelli@redhat.com> - 2.15.0-40
changelog:
  - redhat: use hugetlbfs group for /var/log/openvswitch when dpdk is enabled [RH git: 5ccf239b51] (#2007290)
      Resolves: #2007290


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-41
changelog:
  - Merging upstream branch-2.15 [RH git: 8f2e30f011]
      Commit list:
      a2f860aa2e cirrus: Reduce memory requirements for FreeBSD VMs.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-42
changelog:
  - Merging upstream branch-2.15 [RH git: 2a86017f3f]
      Commit list:
      f8274b78c3 datapath-windows:adjust Offset when processing packet in POP_VLAN action


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-43
changelog:
  - Merging upstream branch-2.15 [RH git: 09e3ab3630]
      Commit list:
      9efa2ea619 ipf: release unhandled packets from the batch


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-44
changelog:
  - Merging upstream branch-2.15 [RH git: 3050e5222d]
      Commit list:
      58397f222b dpdk-stub: Change the ERR log to DBG.
      2a963fc314 python: idl: Avoid sending transactions when the DB is not synced up.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-45
changelog:
  - Merging upstream branch-2.15 [RH git: e273e307d1]
      Commit list:
      ea2ca0af16 dpif-netdev: Fix use-after-free on PACKET_OUT of IP fragments.
      9f964354e3 tunnel-push-pop.at: Mask source port in tunnel header.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-46
changelog:
  - Merging upstream branch-2.15 [RH git: f8619036c9]
      Commit list:
      3f718857e7 ofproto-dpif-xlate: Fix zone set from non-frozen-metadata fields.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-47
changelog:
  - Merging upstream branch-2.15 [RH git: 01110b9088]
      Commit list:
      b7d9c491ec datapath-windows: add layers when adding the deferred actions


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.15.0-48
changelog:
  - Merging upstream branch-2.15 [RH git: 7cf784736e]
      Commit list:
      2cf63851a5 Prepare for 2.15.3.
      63f9a7c5d8 Set release date for 2.15.2.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-16
changelog:
  - Merging upstream branch-2.16 [RH git: 5c05133179]
      Commit list:
      3f692fba98 datapath-windows:adjust Offset when processing packet in POP_VLAN action


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-17
changelog:
  - Merging upstream branch-2.16 [RH git: c1145b5236]
      Commit list:
      0fd17fbb09 ipf: release unhandled packets from the batch


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-18
changelog:
  - Merging upstream branch-2.16 [RH git: a6c4770398]
      Commit list:
      27a5848a33 ovs-ctl: Add missing description for --ovs-vswitchd-options and --ovsdb-server-options to usage().
      0300d0c0c2 dpdk-stub: Change the ERR log to DBG.
      cdd6dd821d dpif-netlink: Fix feature negotiation for older kernels.
      c2682c42cb dpif-netdev: Fix pmd thread comments to include SMC.
      9377f4a465 python: idl: Avoid sending transactions when the DB is not synced up.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-19
changelog:
  - Merging upstream branch-2.16 [RH git: 557ca689f7]
      Commit list:
      6d8190584a dpif-netdev: Fix use-after-free on PACKET_OUT of IP fragments.
      44a66cc1d0 tunnel-push-pop.at: Mask source port in tunnel header.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-20
changelog:
  - Merging upstream branch-2.16 [RH git: d572c95f69]
      Commit list:
      458a4f75f3 ofproto-dpif-xlate: Fix zone set from non-frozen-metadata fields.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-21
changelog:
  - Merging upstream branch-2.16 [RH git: 2546fa9646]
      Commit list:
      5c5e34603b datapath-windows: add layers when adding the deferred actions


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-22
changelog:
  - Merging upstream branch-2.16 [RH git: 29f01c4fdb]
      Commit list:
      108176ab5a github: Stick to python 3.9.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-23
changelog:
  - Merging upstream branch-2.16 [RH git: cce913794e]
      Commit list:
      2a4c87f300 Prepare for 2.16.2.
      aaa1439b8e Set release date for 2.16.1.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-24
changelog:
  - Merging upstream branch-2.16 [RH git: 4682b76694]
      Commit list:
      b79f0369f2 ci: Make linux-prepare trust system installs.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-25
changelog:
  - Merging upstream branch-2.16 [RH git: f5366890c5]
      Commit list:
      c221c8e613 datapath-windows:Reset PseudoChecksum value only for TX direction offload case


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-2
changelog:
  - Merging upstream branch-2.16 [RH git: 7d7567e339]
      Commit list:
      0991ea8d19 Prepare for 2.16.1.


author: Ilya Maximets <i.maximets@redhat.com> - 2.16.0-3
changelog:
  - json: Optimize string serialization. [RH git: bb1654da63] (#1990069)
      commit 748010ff304b7cd2c43f4eb98a554433f0df07f9
      Author: Ilya Maximets <i.maximets@ovn.org>
      Date:   Tue Aug 24 23:07:22 2021 +0200
      
          json: Optimize string serialization.
      
          Current string serialization code puts all characters one by one.
          This is slow because dynamic string needs to perform length checks
          on every ds_put_char() and it's also doesn't allow compiler to use
          better memory copy operations, i.e. doesn't allow copying few bytes
          at once.
      
          Special symbols are rare in a typical database.  Quotes are frequent,
          but not too frequent.  In databases created by ovn-kubernetes, for
          example, usually there are at least 10 to 50 chars between quotes.
          So, it's better to count characters that doesn't require escaping
          and use fast data copy for the whole sequential block.
      
          Testing with a synthetic benchmark (included) on my laptop shows
          following performance improvement:
      
             Size      Q  S       Before       After       Diff
           -----------------------------------------------------
           100000      0  0 :    0.227 ms     0.142 ms   -37.4 %
           100000      2  1 :    0.277 ms     0.186 ms   -32.8 %
           100000      10 1 :    0.361 ms     0.309 ms   -14.4 %
           10000000    0  0 :   22.720 ms    12.160 ms   -46.4 %
           10000000    2  1 :   27.470 ms    19.300 ms   -29.7 %
           10000000    10 1 :   37.950 ms    31.250 ms   -17.6 %
           100000000   0  0 :  239.600 ms   126.700 ms   -47.1 %
           100000000   2  1 :  292.400 ms   188.600 ms   -35.4 %
           100000000   10 1 :  387.700 ms   321.200 ms   -17.1 %
      
          Here Q - probability (%) for a character to be a '\"' and
          S - probability (%) to be a special character ( < 32).
      
          Testing with a closer to real world scenario shows overall decrease
          of the time needed for database compaction by ~5-10 %.  And this
          change also decreases CPU consumption in general, because string
          serialization is used in many different places including ovsdb
          monitors and raft.
      
          Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
          Acked-by: Numan Siddique <numans@ovn.org>
          Acked-by: Dumitru Ceara <dceara@redhat.com>
      
      Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1990069
      Signed-off-by: Ilya Maximets <i.maximets@redhat.com>


author: Ilya Maximets <i.maximets@redhat.com> - 2.16.0-4
changelog:
  - json: Add support for partially serialized json objects. [RH git: 885e5ce1b5] (#1990058)
      commit b0bca6f27aae845c3ca8b48d66a7dbd3d978162a
      Author: Ilya Maximets <i.maximets@ovn.org>
      Date:   Tue Aug 24 21:00:37 2021 +0200
      
          json: Add support for partially serialized json objects.
      
          Introducing a new json type JSON_SERIALIZED_OBJECT.  It's not an
          actual type that can be seen in a json message on a wire, but
          internal type that is intended to hold a serialized version of
          some other json object.  For this reason it's defined after the
          JSON_N_TYPES to not confuse parsers and other parts of the code
          that relies on compliance with RFC 4627.
      
          With this JSON type internal users may construct large JSON objects,
          parts of which are already serialized.  This way, while serializing
          the larger object, data from JSON_SERIALIZED_OBJECT can be added
          directly to the result, without additional processing.
      
          This will be used by next commits to add pre-serialized JSON data
          to the raft_header structure, that can be converted to a JSON
          before writing the file transaction on disk or sending to other
          servers.  Same technique can also be used to pre-serialize json_cache
          for ovsdb monitors, this should allow to not perform serialization
          for every client and will save some more memory.
      
          Since serialized JSON is just a string, reusing the 'json->string'
          pointer for it.
      
          Acked-by: Dumitru Ceara <dceara@redhat.com>
          Acked-by: Han Zhou <hzhou@ovn.org>
          Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
      
      Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1990058
      Signed-off-by: Ilya Maximets <i.maximets@redhat.com>


author: Ilya Maximets <i.maximets@redhat.com> - 2.16.0-5
changelog:
  - raft: Don't keep full json objects in memory if no longer needed. [RH git: 4606423e8b] (#1990058)
      commit 0de882954032aa37dc943bafd72c33324aa0c95a
      Author: Ilya Maximets <i.maximets@ovn.org>
      Date:   Tue Aug 24 21:00:38 2021 +0200
      
          raft: Don't keep full json objects in memory if no longer needed.
      
          Raft log entries (and raft database snapshot) contains json objects
          of the data.  Follower receives append requests with data that gets
          parsed and added to the raft log.  Leader receives execution requests,
          parses data out of them and adds to the log.  In both cases, later
          ovsdb-server reads the log with ovsdb_storage_read(), constructs
          transaction and updates the database.  On followers these json objects
          in common case are never used again.  Leader may use them to send
          append requests or snapshot installation requests to followers.
          However, all these operations (except for ovsdb_storage_read()) are
          just serializing the json in order to send it over the network.
      
          Json objects are significantly larger than their serialized string
          representation.  For example, the snapshot of the database from one of
          the ovn-heater scale tests takes 270 MB as a string, but 1.6 GB as
          a json object from the total 3.8 GB consumed by ovsdb-server process.
      
          ovsdb_storage_read() for a given raft entry happens only once in a
          lifetime, so after this call, we can serialize the json object, store
          the string representation and free the actual json object that ovsdb
          will never need again.  This can save a lot of memory and can also
          save serialization time, because each raft entry for append requests
          and snapshot installation requests serialized only once instead of
          doing that every time such request needs to be sent.
      
          JSON_SERIALIZED_OBJECT can be used in order to seamlessly integrate
          pre-serialized data into raft_header and similar json objects.
      
          One major special case is creation of a database snapshot.
          Snapshot installation request received over the network will be parsed
          and read by ovsdb-server just like any other raft log entry.  However,
          snapshots created locally with raft_store_snapshot() will never be
          read back, because they reflect the current state of the database,
          hence already applied.  For this case we can free the json object
          right after writing snapshot on disk.
      
          Tests performed with ovn-heater on 60 node density-light scenario,
          where on-disk database goes up to 97 MB, shows average memory
          consumption of ovsdb-server Southbound DB processes decreased by 58%
          (from 602 MB to 256 MB per process) and peak memory consumption
          decreased by 40% (from 1288 MB to 771 MB).
      
          Test with 120 nodes on density-heavy scenario with 270 MB on-disk
          database shows 1.5 GB memory consumption decrease as expected.
          Also, total CPU time consumed by the Southbound DB process reduced
          from 296 to 256 minutes.  Number of unreasonably long poll intervals
          reduced from 2896 down to 1934.
      
          Deserialization is also implemented just in case.  I didn't see this
          function being invoked in practice.
      
          Acked-by: Dumitru Ceara <dceara@redhat.com>
          Acked-by: Han Zhou <hzhou@ovn.org>
          Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
      
      Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1990058
      Signed-off-by: Ilya Maximets <i.maximets@redhat.com>


author: Ilya Maximets <i.maximets@redhat.com> - 2.16.0-6
changelog:
  - ovsdb: monitor: Store serialized json in a json cache. [RH git: bc20330c85] (#1996152)
      commit 43e66fc27659af2a5c976bdd27fe747b442b5554
      Author: Ilya Maximets <i.maximets@ovn.org>
      Date:   Tue Aug 24 21:00:39 2021 +0200
      
          Same json from a json cache is typically sent to all the clients,
          e.g., in case of OVN deployment with ovn-monitor-all=true.
      
          There could be hundreds or thousands connected clients and ovsdb
          will serialize the same json object for each of them before sending.
      
          Serializing it once before storing into json cache to speed up
          processing.
      
          This change allows to save a lot of CPU cycles and a bit of memory
          since we need to store in memory only a string and not the full json
          object.
      
          Testing with ovn-heater on 120 nodes using density-heavy scenario
          shows reduction of the total CPU time used by Southbound DB processes
          from 256 minutes to 147.  Duration of unreasonably long poll intervals
          also reduced dramatically from 7 to 2 seconds:
      
                     Count   Min    Max   Median    Mean   95 percentile
           -------------------------------------------------------------
            Before   1934   1012   7480   4302.5   4875.3     7034.3
            After    1909   1004   2730   1453.0   1532.5     2053.6
      
          Acked-by: Dumitru Ceara <dceara@redhat.com>
          Acked-by: Han Zhou <hzhou@ovn.org>
          Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
      
      Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1996152
      Signed-off-by: Ilya Maximets <i.maximets@redhat.com>


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-7
changelog:
  - Merging upstream branch-2.16 [RH git: e71f31dfd6]
      Commit list:
      242c280f0e dpif-netdev: Fix crash when PACKET_OUT is metered.


author: Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-8
changelog:
  - Merging upstream branch-2.16 [RH git: 7332b410fc]
      Commit list:
      facaf5bc71 netdev-linux: Fix a null pointer dereference in netdev_linux_notify_sock().
      6e203d4873 pcap-file: Fix memory leak in ovs_pcap_open().
      f50da0b267 odp-util: Fix a null pointer dereference in odp_flow_format().
      7da752e43f odp-util: Fix a null pointer dereference in odp_nsh_key_from_attr__().
      bc22b01459 netdev-dpdk: Fix RSS configuration for virtio.
      81706c5d43 ipf: Fix only nat the first fragment in the reass process.


author: Ben Pfaff <blp@ovn.org> - 21.06.0-8
changelog:
  - tests: Fix "vlan traffic for external network with distributed..."
    [Gerrit: ca26e77c4206a39ae6eab4a1d430ef04b726b640]
    [Upstream: 5453cc8ca5535e3f33d1b191929e1a3c9ad30f20]


author: Ihar Hrachyshka <ihrachys@redhat.com> - 21.06.0-9
changelog:
  - Disable ARP/NA responders for vlan-passthru switches
    [Gerrit: 56fbcfaf71d9a6df0b4cdee583c8d17ca7a82aab]
    [Upstream: ea57f666f6eef1eb1d578f0e975baa14c5d23ec9]


author: Dumitru Ceara <dceara@redhat.com> - 21.06.0-10
changelog:
  - northd-ddlog: Fix IP family match for DNAT flows.
    [Gerrit: 518ea2e15df2c77fc19afe74b68d616983638743]
    [Upstream: 38467229905bdf09a3afa325eaa7a98183f44c72]


author: Dumitru Ceara <dceara@redhat.com> - 21.06.0-11
changelog:
  - northd: Fix multicast table full comparison. (#1979870)
    [Gerrit: 38f44df1b8a0ed1ebb86183de29d9e5c3423abdb]
    [Upstream: 969c98d7297b526c704c6fd2a7138f584f9ad577]


author: Ihar Hrachyshka <ihrachys@redhat.com> - 21.06.0-12
changelog:
  - Don't suppress localport traffic directed to external port (#1974062)
    [Gerrit: 330e6e7400e1d5e4e6ef4fc6446eeaa945ac6a13]
    [Upstream: 1148580290d0ace803f20aeaa0241dd51c100630]


author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> - 21.06.0-13
changelog:
  - northd: do not centralize traffic for unclaimed virtual ports
    [Gerrit: 5b6826906a76779b527d72d1c49d211ce492e62e]
    [Upstream: N/A]


author: Dumitru Ceara <dceara@redhat.com> - 21.06.0-14
changelog:
  - ovn-controller: Detect OVS datapath capabilities.
    [Gerrit: ca1df0396e6e6eb016c3cad82db7c49cc05ec99a]
    [Upstream: 56e2cd3a2f06b79b7d57cc8637fc0d258652aff5]


author: Dumitru Ceara <dceara@redhat.com> - 21.06.0-15
changelog:
  - ovn-controller: Handle DNAT/no-NAT conntrack tuple collisions. (#1939676)
    [Gerrit: abfd62cb228b7d311ae7cae18adfe9cfcf68affc]
    [Upstream: 58683a4271e6a885f2f2aea27f3df88e69a5c388]


author: Dumitru Ceara <dceara@redhat.com> - 21.06.0-16
changelog:
  - ovn.at: Fix "Symmetric IPv6 ECMP reply flows" test.
    [Gerrit: 801f6c69c3bb45f981135ac6c197fdbd3f18118d]
    [Upstream: 4e6c498068dc4fa9546d3661f78f0a42e99c74bb]


author: Numan Siddique <numans@ovn.org> - 21.06.0-17
changelog:
  - ovn-controller: Split logical flow and physical flow processing. (#1986484)
    [Gerrit: 6e1e90064ad1f5769fdc96e3b735ee236c30b7e2]
    [Upstream: ceb12c9190a124c70bc938e8e1bea17612b498be]


author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> - 21.06.0-20
changelog:
  - controller: add ipv6_pd debug messages
    [Gerrit: 969495b1f078b8e52fb2c1b1b53bb561c8f66d22]
    [Upstream: c3afcb44846116fd6e311ca9a250a46dbff6b2a8]


author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> - 21.06.0-21
changelog:
  - controller: ipv6_pd: properly update ipv6_ra_pd_list pb option in sb db
    [Gerrit: 55ec986ed1a506e3c149c5a7d69fdd661970d777]
    [Upstream: 9704cfe54dc2a0a6752139d07bb9f563e7e27aae]


author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> - 21.06.0-22
changelog:
  - controller: run ipv6_pd only on a proper controller for l3gateway mode
    [Gerrit: 11d6a1bac2e38a81646271c127b602533a3f9dc4]
    [Upstream: b8b24398657e5bb82dcbdb5ce55a74e261e30767]


author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> - 21.06.0-23
changelog:
  - nbctl: validate outport in nbctl_lr_route_add
    [Gerrit: ddccb1dbaf54c78c810d4d32da6d96197cc16caf]
    [Upstream: d866959ba6ea066f88558071eda9943258ee7fa7]


author: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> - 21.06.0-24
changelog:
  - northd: allow to configure routes with no nexthop
    [Gerrit: c86436ca8edbb7c4cdf3b965269792c51592c385]
    [Upstream: c0085228893e7bf07190fcccf50cf588b028edaa]


author: Mark Michelson <mmichels@redhat.com> - 21.06.0-25
changelog:
  - Revert features detection and zero-snat patches. (#1992705)
    [Gerrit: 8f5c081c322a25576aea1cc7d2f5d996f5804196]
    [Upstream: N/A]


author: Numan Siddique <nusiddiq@redhat.com> - 21.06.0-26
changelog:
  - Revert "Revert features detection and zero-snat patches."
    [Gerrit: 666d6640be7155ca0b0bc12b0d5af626090e0375]
    [Upstream: N/A]


author: Mohammad Heib <mheib@redhat.com> - 21.06.0-27
changelog:
  - ovn-nbctl: Monitor nb_cfg to detect and handle potential overflows (#1979774)
    [Gerrit: 5a7342c8f1340e5739a8bceb2d3a81a07b371d1d]
    [Upstream: b1a07090740ac9a29e4a2475ad07bf9c37991b43]


author: Ilya Maximets <i.maximets@ovn.org> - 21.06.0-28
changelog:
  - ovn-northd: Fix update of a mac prefix.
    [Gerrit: ea2eb903d7220c01931c7e05f53dad8a84f0a715]
    [Upstream: b6bf5e99b5a76c9a9df83896c2d1e40e3c5f4471]


author: Ilya Maximets <i.maximets@ovn.org> - 21.06.0-29
changelog:
  - ovn-northd: Avoid verification of NB_Global.options if nothing changed.
    [Gerrit: 50dc6ec9b9d1312caf2d6f9d19cf19d6bc73e3f3]
    [Upstream: 27064c554fe6a3dfe4dd5800e884eec70cd3d793]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-128
changelog:
  - lflow: Do not cache non-conjunctive flows that use address sets/portgroups.
    [3b2aa66f4aeb2b566c5200807f7894754d4c4fda]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-131
changelog:
  - lflow-cache: Make maximum number of cache entries configurable.
    [38053ea1feeb1606b54803ac5d1aacc2fdd4504e]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-133
changelog:
  - lflow-cache: Make max cache memory usage configurable.
    [7b0ccd29113d506a54823b96ef017481c98d03c2]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-134
changelog:
  - ovn-controller.c: Remove extra local_lports_changed setting.
    [bf4c5b17298bfcb1153f895ca31ca2feefa6e4aa]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-135
changelog:
  - if-status: Add OVS interface status management module. (#1952846)
    [ddfe75df4b14b512867c588572b10d35ea0b50ca]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-152
changelog:
  - Don't suppress localport traffic directed to external port (#1974062)
    [b2a5784086b70f28055c6d0e9e5a20f5fdcb0a19]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-155
changelog:
  - system-ovn.at: Use ADD_BR macro instead of bare ovs-vsctl.
    [18b6c60886df27f9b6fdcee1ed75f7093ddc68d1]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-157
changelog:
  - ovn-controller: Handle DNAT/no-NAT conntrack tuple collisions. (#1939676)
    [80e66ddce15fcb3787861ba5c57d1858cf17bfda]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-158
changelog:
  - ovs: Include all-zero IP SNAT capability detection. (#1939676)
    [5cef68f5c08181ad136a0b6d3a5a054a9ac8104e]


author: Gerrit Code Review <gerrit2@gerrit.host.prod.eng.bos.redhat.com> - 20.12.0-160
changelog:
  - Merge "redhat: Don't specify "ovn" keyword when running tests." into ovn2.13
    [774cd8e9381cd896d481e609ccc7ed4d95dda3ab]


author: Mark Michelson <mmichels@redhat.com> - 20.12.0-161
changelog:
  - redhat: Include tcpdump as a dependency for `make check`
    [261782c85c119da5c6fb0cf349b57c07c35b874f]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-77
changelog:
  - Properly handle hairpin traffic for VIPs with shared backends. (#1931599)
    [811c575effb27cbc416986fafd2e8c815daa4ac6]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-78
changelog:
  - lflow: Avoid matching on conntrack original tuple if possible.
    [35a6507db36c23724bc319d56dc6b05dd6d60a99]


author: Dumitru Ceara <dceara@redhat.com> - 20.12.0-79
changelog:
  - northd: Avoid matching on ct.dnat flags for load balancers.
    [2baa1b74fb8e93e158d4800d9e42e24b70b3970a]


author: Numan Siddique <nusiddiq@redhat.com> - 20.12.0-80
changelog:
  - northd: Fix the missing force_snat_for_lb flows when router_ip is configured.
    [ec4f7228c1b828974ec2909bd108af6a94c3ebc9]


author: Numan Siddique <nusiddiq@redhat.com> - 20.12.0-83
changelog:
  - northd: Fix ha_chassis_group txn error for external ports. (#1927369)
    [f3e58ca5a997ab7fad0c44c0c5968e4ee53f85d5]


author: Mark Michelson <mmichels@redhat.com> - 20.12.0-84
changelog:
  - Add missing patch release number on the end of OVN versions.
    [49444fe569740deb10be87418ab4f9ed1d0d5b4e]


author: Mark Michelson <mmichels@redhat.com> - 20.12.0-85
changelog:
  - ovs: Bump submodule version to latest ovsdb-cs changes.
    [a79aa8ecc00450ab9c672dbe8add9a8a231186ab]


