2.4 KiB
2.4 KiB
Low-Level Binding Reference (LibNftables.Bindings.Generated)
This document describes the generated low-level .NET bindings for libnftables.
Generation policy
- Source of truth:
/usr/include/nftables/libnftables.h - Generator: SWIG C# (
./eng/regen-bindings.sh) - Generated files are under
src/LibNftables.Bindings/Generated/. - Do not manually edit generated files. Regenerate instead.
Primary generated types
libnftables: static entrypoint for native calls and exported constants.SWIGTYPE_p_nft_ctx: opaque native context pointer wrapper.nft_debug_level: generated native debug enum.nft_optimize_flags: generated native optimize enum.
API groups
1) Context lifecycle
nft_ctx_new(uint flags)nft_ctx_free(SWIGTYPE_p_nft_ctx ctx)
These allocate/free the native nft_ctx handle.
2) Context behavior flags
- Dry-run:
nft_ctx_get_dry_run(...)nft_ctx_set_dry_run(...)
- Optimize:
nft_ctx_get_optimize(...)nft_ctx_set_optimize(...)
- Input flags:
nft_ctx_input_get_flags(...)nft_ctx_input_set_flags(...)
- Output flags:
nft_ctx_output_get_flags(...)nft_ctx_output_set_flags(...)
- Debug flags:
nft_ctx_output_get_debug(...)nft_ctx_output_set_debug(...)
3) Buffered output/error capture
- Output buffer:
nft_ctx_buffer_output(...)nft_ctx_unbuffer_output(...)nft_ctx_get_output_buffer(...)
- Error buffer:
nft_ctx_buffer_error(...)nft_ctx_unbuffer_error(...)nft_ctx_get_error_buffer(...)
4) Include paths and variables
- Include paths:
nft_ctx_add_include_path(...)nft_ctx_clear_include_paths(...)
- Variables:
nft_ctx_add_var(...)nft_ctx_clear_vars(...)
5) Command execution
nft_run_cmd_from_buffer(...)nft_run_cmd_from_filename(...)
These are the low-level command execution entrypoints.
Constants exposed via generated class
libnftables exposes native constants as static readonly fields, including:
NFT_CTX_DEFAULTNFT_CTX_INPUT_*NFT_CTX_OUTPUT_*
Use the high-level enums in LibNftables when possible.
Relation to high-level API
Use low-level generated bindings only when you need direct native semantics.
For application code, prefer:
NftablesClient/INftablesClientfor workflow operations (validate/apply/snapshot/restore)NftContextfor advanced managed control over native context settings