Skip to content

DRAFT: Ci lint#2

Closed
kgrubb wants to merge 4 commits into
mainfrom
ci-lint
Closed

DRAFT: Ci lint#2
kgrubb wants to merge 4 commits into
mainfrom
ci-lint

Conversation

@kgrubb

@kgrubb kgrubb commented Jun 11, 2025

Copy link
Copy Markdown

This is just a draft to test the pipelines before proposing it upstream

@kgrubb kgrubb self-assigned this Jun 11, 2025
jecsand838 and others added 2 commits July 1, 2025 17:42
Introduce robust and RFC-compliant structures for Virtual eXtensible Local Area Network (RFC 7348) and headers, significantly improving VXLAN message handling.

Key improvements include:

* Adding vni_and_reserved2 Attribute
* Removed BitfieldUnit
* Added implementation method
* Added Unit Tests

Co-authored-by: Sven Cowart <svencowart@gmail.com>
*   **`GeneveHdr` struct**: A `#[repr(C, packed)]` struct is defined to accurately model the Geneve header format, ensuring correct memory layout.
*   **Field Accessors**: Provides `get` and `set` methods for all fields of the Geneve header, including:
    *   `ver` (Version)
    *   `opt_len` (Option Length)
    *   `o_flag` (OAM Flag)
    *   `c_flag` (Critical Options Present Flag)
    *   `protocol_type` (Encapsulated Protocol Type, handled with network byte order)
    *   `vni` (Virtual Network Identifier, handled with network byte order and 24-bit masking)
*   **Bitfield Handling**: The methods correctly handle bitfield extraction and insertion for `ver`, `opt_len`, `o_flag`, and `c_flag`.
*   **Network Byte Order**: `protocol_type` and `vni` conversions correctly handle big-endian (network byte order).
*   **Unit Tests**: Comprehensive unit tests are included to verify the correct behavior of all getters, setters, bitfield operations, and byte order conversions.

This addition provides foundational support for parsing and constructing Geneve encapsulated packets within the project.
* Update `actions/checkout` action.
* Use `dtolnay/rust-toolchain` action instead of `actions-rs`.
* Run rustfmt and clippy.
* Add the following cross targets:
  * `aarch64`
  * `bpfel`, `bpfeb`
  * `riscv64gc`
  * `wasm32`
  * `x86_64`

test updated nightly matrix

drop nightly targets since they haven't been built for over 3 years

add clippy to components list

skip useless transmute and too many args clippy warnings

drop wasm target

drop riscv for now

add cross-compilation

build tests for cross compiled arch

add ignore for useless_transmute and too_many_arguments

fix ignore opts

include musl cross compiling as well

remove std feature

add std as a feature, but make no_std default

run fmt only on stable

only run fmt on x86 stable

drop std feature since it seems to be unused

remove serde no_std warning

fix formatting in lib and llc

drop std features in cargo.toml

sync src
@kgrubb kgrubb closed this Aug 25, 2025
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.

4 participants