#include <util/asmap.h>
#include <clientversion.h>
#include <hash.h>
#include <serialize.h>
#include <streams.h>
#include <uint256.h>
#include <util/fs.h>
#include <util/log.h>
#include <algorithm>
#include <bit>
#include <cassert>
#include <cstddef>
#include <cstdio>
#include <span>
#include <utility>
#include <vector>
Go to the source code of this file.
|
| uint32_t | Interpret (const std::span< const std::byte > asmap, const std::span< const std::byte > ip) |
| | Execute the ASMap bytecode to find the ASN for an IP. More...
|
| |
| bool | SanityCheckAsmap (const std::span< const std::byte > asmap, int bits) |
| | Validates ASMap structure by simulating all possible execution paths. More...
|
| |
| bool | CheckStandardAsmap (const std::span< const std::byte > data) |
| | Provides a safe interface for validating ASMap data before use. More...
|
| |
| std::vector< std::byte > | DecodeAsmap (fs::path path) |
| | Loads an ASMap file from disk and validates it. More...
|
| |
| uint256 | AsmapVersion (const std::span< const std::byte > data) |
| | Computes SHA256 hash of ASMap data for versioning and consistency checks. More...
|
| |
◆ Instruction
Instruction Set.
The instruction set is designed to efficiently encode a binary trie that maps IP prefixes to ASNs. Each instruction type serves a specific role in trie traversal and evaluation.
Definition at line 123 of file asmap.cpp.
◆ AsmapVersion()
| uint256 AsmapVersion |
( |
const std::span< const std::byte > |
data | ) |
|
Computes SHA256 hash of ASMap data for versioning and consistency checks.
Calculate the asmap version, a checksum identifying the asmap being used.
Definition at line 348 of file asmap.cpp.
◆ CheckStandardAsmap()
| bool CheckStandardAsmap |
( |
const std::span< const std::byte > |
data | ) |
|
Provides a safe interface for validating ASMap data before use.
Check standard asmap data (128 bits for IPv6)
Returns true if the data is valid for 128 bits long inputs.
Definition at line 310 of file asmap.cpp.
◆ DecodeAsmap()
| std::vector<std::byte> DecodeAsmap |
( |
fs::path |
path | ) |
|
Loads an ASMap file from disk and validates it.
Read and check asmap from provided binary file.
Definition at line 322 of file asmap.cpp.
◆ Interpret()
| uint32_t Interpret |
( |
const std::span< const std::byte > |
asmap, |
|
|
const std::span< const std::byte > |
ip |
|
) |
| |
Execute the ASMap bytecode to find the ASN for an IP.
This function interprets the asmap bytecode and uses bits from the IP address to navigate through the encoded trie structure, ultimately returning an ASN value.
Definition at line 182 of file asmap.cpp.
◆ SanityCheckAsmap()
| bool SanityCheckAsmap |
( |
const std::span< const std::byte > |
asmap, |
|
|
int |
bits |
|
) |
| |
Validates ASMap structure by simulating all possible execution paths.
Ensures well-formed bytecode, valid jumps, and proper termination.
Definition at line 239 of file asmap.cpp.