Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release v1.9.6 #933

Merged
merged 123 commits into from
Jan 2, 2024
Merged

release v1.9.6 #933

merged 123 commits into from
Jan 2, 2024

Conversation

ywc689
Copy link
Collaborator

@ywc689 ywc689 commented Jan 2, 2024

No description provided.

root and others added 30 commits January 29, 2023 15:25
add/update agent about socket message
The config file block "ipc_msg/unix_domain" was replaced with
command option "-p, --pid-file FILE" in commit 6ce4dd9.

Signed-off-by: ywc689 <[email protected]>
It takes long for some nics to update multicast ether addresses. The per-cpu
process of per-cpu inetaddr causes mc ether address updating from both slave
lcores and master lcore, which is nonsense but a dramatic hurt for performacne.
So just do it once on master lcore.

Signed-off-by: ywc689 <[email protected]>
It has been noted that rte_eth_dev_set_mc_addr_list is of some restrictions:
* The Api may be slow and take hundreds miliseconds.
* Support only a very limited multicast ether address number.

For instance of 25G Meallnox CX5, its PMD driver for rte_eth_dev_set_mc_addr_list
supports only 128 multicast ether addresses for each port, and it takes about 250ms
for rte_eth_dev_set_mc_addr_list to finish its work. Hence we make the following
improvements:

1. Enable allmulitcast when rte_eth_dev_set_mc_addr_list failed,
2. Do not call rte_eth_dev_set_mc_addr_list when allmulitcast enabled.

In next commmit, allmulticast can be configured at start of DPVS, which can solve
the rte_eth_dev_set_mc_addr_list slow problem totally.

Signed-off-by: ywc689 <[email protected]>
when update vs/rs configuration parameters at keepalived reload,
it's no need to delete and re-add vs/rs, which will result in
traffic interruption of the vs/rs.
hardware multicast address bugfix
It works only for TCP by checking if syn-ack is replied from the backend, and
if not, inhibit scheduling the backend for a period. The inhibiting period is
gained/lost exponentially after successive checking failed/succeeded.

Signed-off-by: ywc689 <[email protected]>
udp dest-check works only when the udp is bidirectional, that is,
the udp conns that forwarding inbound only or outbound only are always
detcted dead. Thus "dest-check" should be never configured for the
single directional udp flow. Besides, the a smaller conn timeout may be
specified for the bidirectional flow service to detect dest fault quickly.

Signed-off-by: ywc689 <[email protected]>
ywc689 added 21 commits December 8, 2023 11:25
Two versions -- v1-insecure and v2-insecure -- ared added for the proxy cascading
case where the proxy protocol addresses should remain unchanged in the backend
proxy server. Meanwhile, the v1 and v2 versions are always using the addresses
from client's ip header of inbound packets.

Signed-off-by: ywc689 <[email protected]>
1. Do not insert toa data in syn packets any more.
2. Compact tcp option space or remove some options when inserting toa data failed
   and then try again.
3. Emit a warning log for audit when toa insertion failed finally.

Signed-off-by: ywc689 <[email protected]>
Signed-off-by: ywc689 <[email protected]>
@ywc689
Copy link
Collaborator Author

ywc689 commented Jan 2, 2024

Features

  • New tool: dpvs-agent, a management daemon tool for dpvs based on OpenAPI(doc).
  • New tool: healthcheck, a service health check daemon tool cooperating with dpvs-agent.
  • Dpvs: Develop passive health check methods for tcp and bidirectional udp backends(doc.)
  • Dpvs: Add supports for Proxy Protocol with both v1 and v2 versions(doc).
  • Dpvs: Add supports for extended statistics of ethernet devices.
  • Dpvs: Add configuration file and dpip supports for allmulticast setting switch.
  • Build: Transfer all build configurations to a top-level file config.mk.
  • Containerization: Draft a Dockerfile and a tutorial document(doc) to build and run dpvs in container.

Bugfixes

  • Dpvs: Protect toa from source address spoofing attack and increase success ratio for source address delivery via toa.
  • Dpvs: Adjust tcp window scale in outbound direction for synproxy to improve throughput in bulk upload cases.
  • Dpvs: Fix timer inaccuracy problem when timing over 524s.
  • Dpvs: Fix the crash problem caused by ether address list buffer overflow.
  • Dpvs: Fix the crash problem caused by dividing by zero when bonding slaves attempt to send packets out.
  • Dpvs: Fix the crash problem caused by inconsistent data structures of dp_vs_dest_compat between dpvs and keepalived.
  • Dpvs: Correct ipo option length for judgement of branching to standalone uoa.
  • Dpvs: Inhibit setting multicast ether address from slave lcores.
  • Dpvs: Fix service flag conflicts of synproxy and expire-quiescent.
  • Dpvs: Fix the chaos use of flag, flags and fwdmode in dest and service structures.
  • Dpvs: Fix service flush function not usable problem.
  • Dpvs: Fix invalid port problem when getting verbose information of netif devices.
  • Dpvs: Use atomic operation to generate packet id for ipv4 header.
  • Dpvs: Remove fragile implementations of strategy routing for snat.
  • Dpvs: Remove the stale config item "ipc_msg/unix_domain".
  • Keepalived: Do not delete and re-add vs/rs to eliminate service disturbances at reload.
  • Keepalived: Fix a carsh problem caused by missing definition of allowlist/denylist config items.
  • Ipvsadm: Add conn-timeout configuration option for service.
  • Ipvsadm: Fix the ambiguous use of '-Y' configuration option.
  • Ipvsadm: Fix icmpv6 configuration option -1 lost problem..
  • Ipvsadm: Update help text, including supported schedulers, laddr and allow/deny ip list.
  • Dpip: Fix line break problem in help message.
  • Uoa: Enable ipv6 with a macro for uoa example server.

@ywc689 ywc689 requested a review from wenjiejiang January 2, 2024 02:31
Copy link
Collaborator

@ytwang0320 ytwang0320 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approve +1

@ywc689 ywc689 merged commit 6ddc860 into master Jan 2, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants