Skip to content

Conversation

@aaron-ang
Copy link

@aaron-ang aaron-ang commented Dec 19, 2025

Changes

  • Rate limiter state preservation: update_buckets() preserves budget, one_time_burst, and last_update (capped at new bucket limits) instead of resetting to full capacity.
  • Removed stale TODOs.

Reason

Address a TODO regarding TokenBucket updates. See #3273.

License Acceptance

By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following Developer
Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md.

PR Checklist

  • I have read and understand CONTRIBUTING.md.
  • I have run tools/devtool checkbuild --all to verify that the PR passes
    build checks on all supported architectures.
  • I have run tools/devtool checkstyle to verify that the PR passes the
    automated style checks.
  • I have described what is done in these changes, why they are needed, and
    how they are solving the problem in a clear and encompassing way.
  • I have updated any relevant documentation (both in code and in the docs)
    in the PR.
  • I have mentioned all user-facing changes in CHANGELOG.md.
  • If a specific issue led to this PR, this PR closes the issue.
  • When making API changes, I have followed the
    Runbook for Firecracker API changes.
  • I have tested all new and changed functionalities in unit tests and/or
    integration tests.
  • I have linked an issue to every new TODO.

  • This functionality cannot be added in rust-vmm.

@aaron-ang aaron-ang force-pushed the todo-tokenbucket branch 3 times, most recently from 3f2120e to 7c95a0d Compare December 19, 2025 04:43

/// Allocate a host-side port to be assigned to a new host-initiated connection.
fn allocate_local_port(&mut self) -> u32 {
// TODO: this doesn't seem very space-efficient.
Copy link
Author

Choose a reason for hiding this comment

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

will not implement: #3273 (comment)

Comment on lines -163 to -164
// TODO: Refactor this to make more efficient but there are
// lifetime/ownership challenges.
Copy link
Author

@aaron-ang aaron-ang Dec 19, 2025

Choose a reason for hiding this comment

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

imo memcpy is already probably the most efficient way for this

pub fn from_bytes_unchecked(src: &[u8]) -> MacAddr {
// TODO: using something like std::mem::uninitialized could avoid the extra initialization,
// if this ever becomes a performance bottleneck.
let mut bytes = [0u8; MAC_ADDR_LEN as usize];
Copy link
Author

Choose a reason for hiding this comment

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

initialization overhead for 6-byte buffer should be small compared to rest of network processing

@aaron-ang aaron-ang marked this pull request as ready for review December 19, 2025 04:50
Also remove some stale TODOs and update docs.

Signed-off-by: Aaron Ang <aaron.angyd@gmail.com>
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.

1 participant