2cec04c578 
								
							
								 
							
						 
						
							
							
								
								bpf: add explicit BTF argument to the load API  
							
							... 
							
							
							
							Add a `target_btf: Option<Btf>` argument to Bpf::load. None can be
passed to indicate to skip BTF relocation, for example for kernels that
don't support it. Some(btf) can be used to pass BTF parsed with
Btf::from_sys_fs() or Btf::parse/parse_file.
Finally, add a simpler Bpf::load_file(path) that uses from_sys_fs()
internally to simplify the common case. 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								01e9f81043 
								
							
								 
							
						 
						
							
							
								
								Add license files  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								55d8bcf386 
								
							
								 
							
						 
						
							
							
								
								xdp: add support for attaching with custom xdp flags  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								d326038cf4 
								
							
								 
							
						 
						
							
							
								
								programs: rework ProgramError a bit  
							
							... 
							
							
							
							Move type specific errors to XdpError SocketFilterError etc.
Annotate all source errors with #[source] 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								f88ca1f1f1 
								
							
								 
							
						 
						
							
							
								
								programs: add internal API to create links  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								ba992a2414 
								
							
								 
							
						 
						
							
							
								
								maps: fail new() for high level wrappers if the underlying map hasn't been created  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								873691d050 
								
							
								 
							
						 
						
							
							
								
								Trim deps a bit more  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								f1da541234 
								
							
								 
							
						 
						
							
							
								
								The futures crate is only needed when async is enabled  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								14c98455a9 
								
							
								 
							
						 
						
							
							
								
								btf: remove unused methods  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								a5e19fc4ac 
								
							
								 
							
						 
						
							
							
								
								Fix warnings  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								fdc4dad5ff 
								
							
								 
							
						 
						
							
							
								
								maps: add AsyncPerfMap  
							
							... 
							
							
							
							When the async_tokio or async_std features are enabled, AsyncPerfMap
provides an async version of PerfMap which returns a future from
read_events() 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								4be0c45305 
								
							
								 
							
						 
						
							
							
								
								perf_map: split in sub modules  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								95a24c6f8b 
								
							
								 
							
						 
						
							
							
								
								perf_map: implement AsRawFd  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								5d6fe8bdf4 
								
							
								 
							
						 
						
							
							
								
								Add IOError variants to PerfMapError and PerfBufferError  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								b9be2f1a9b 
								
							
								 
							
						 
						
							
							
								
								Make aya::maps::perf_map public  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								160e0be6d6 
								
							
								 
							
						 
						
							
							
								
								Change the suffix of errors from *Failed to *Error  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								d4e282535b 
								
							
								 
							
						 
						
							
							
								
								bpf, perf_map: make maps usable from multiple threads  
							
							... 
							
							
							
							Change PerfMap API so that individual buffers can be read from multiple
threads.
Change the way maps are stored in the `Bpf` struct from RefCell to a
custom RwLock. 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								d7c91efb2d 
								
							
								 
							
						 
						
							
							
								
								Make online_cpus() util public  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								2215e202f4 
								
							
								 
							
						 
						
							
							
								
								Generate arch  specific bindings  
							
							... 
							
							
							
							Currently x86_64 and aarch64 are supported 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								1de392964b 
								
							
								 
							
						 
						
							
							
								
								Add src/generated/netlink_bindings.rs to repo  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								af8f769b50 
								
							
								 
							
						 
						
							
							
								
								Turn the project into a workspace, move code under aya/  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								c110394aaa 
								
							
								 
							
						 
						
							
							
								
								xdp: add netlink based implementation for kernels < 5.7  
							
							... 
							
							
							
							bpf_link_create was introduced in linux 5.7, so use netlink to configure
XDP on older kernels. 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								9614132724 
								
							
								 
							
						 
						
							
							
								
								Implement detaching from socket filters  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								4bd0cde199 
								
							
								 
							
						 
						
							
							
								
								sys: add kernel_version() util to get the running kernel version  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								8f5a17b542 
								
							
								 
							
						 
						
							
							
								
								Rename the syscalls module to sys  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								e83a26b307 
								
							
								 
							
						 
						
							
							
								
								probe: sysfs helpers don't need to be public  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								54637eab04 
								
							
								 
							
						 
						
							
							
								
								Improve relocation errors  
							
							... 
							
							
							
							Use BpfError::RelocationError for both maps and BTF relocations. The
error includes the name of the program that failed, and the source error
stored as Box<dyn Error>.
This hides the implementation details of the source errors - which are
unrecoverable anyway - while still allowing fine grained error messages. 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								37c3a198c4 
								
							
								 
							
						 
						
							
							
								
								Rework the error hierarchy  
							
							... 
							
							
							
							Add BpfError::IO and BpfError::BtfError and remove the nested IO and
BtfError variants inside ParseError and RelocationError 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								96db24e285 
								
							
								 
							
						 
						
							
							
								
								Untangle map relocation from BTF relocation  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								88d49927c2 
								
							
								 
							
						 
						
							
							
								
								btf: rename BtfRelocationError to RelocationError  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								3b668d9274 
								
							
								 
							
						 
						
							
							
								
								Fix some warnings  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								65d520bbd7 
								
							
								 
							
						 
						
							
							
								
								Support non-native endianness  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								5b8def7b69 
								
							
								 
							
						 
						
							
							
								
								Refactor ELF parser a bit and add more tests  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								fd0ba2355d 
								
							
								 
							
						 
						
							
							
								
								btf: remove object::pod usage  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								4b65da66ea 
								
							
								 
							
						 
						
							
							
								
								btf: check array bounds while doing candidate matching  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								b49a627cac 
								
							
								 
							
						 
						
							
							
								
								btf: implement candidate matching for enums  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								08d5fa6059 
								
							
								 
							
						 
						
							
							
								
								Initial BTF support  
							
							... 
							
							
							
							Still missing a couple of things but the bulk is there 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								b75efc8efe 
								
							
								 
							
						 
						
							
							
								
								bpf: fix loading socket filters from obj files  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								a8c212377f 
								
							
								 
							
						 
						
							
							
								
								bpf: make program() and program_mut() return inner program types  
							
							... 
							
							
							
							program() and program_mut() are now generic and can return the inner
program type, which is what you want 99.999% of the time, eg:
    let prog = bpf.program_mut::<&mut Xdp>("foo")?.unwrap();
    prog.load()?;
    prog.attach("eth0")?;
The methods will fail if the requested program is not of the expected
type (eg if you try to retrieve a kprobe as an xdp program). 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								4dc01f64dd 
								
							
								 
							
						 
						
							
							
								
								bpf: make map() and map_mut() optionally return concrete map types  
							
							... 
							
							
							
							map() and map_mut() used to return Ref<Map>, then to convert to a concrete
type you had to:
    let mut perf_map: PerfMap<_> = bpf.map_mut("PERF_MAP").unwrap().try_into()?;;
But the base Map type is pretty much only useful internally. This change
makes map() and map_mut() use TryInto internally, so that now
conversions can can be done with:
    let mut perf_map: PerfMap<_> = bpf.map_mut("PERF_MAP")?.unwrap(); 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								a41edbca2c 
								
							
								 
							
						 
						
							
							
								
								maps: add ProgramArray  
							
							... 
							
							
							
							ProgramArray is a wrapper around BPF_MAP_TYPE_PROG_ARRAY maps. Can be
used to setup jump tables for bpf_tail_call(). 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								f7cdd2e059 
								
							
								 
							
						 
						
							
							
								
								maps: move maps inside RefCells  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								77fa7d857c 
								
							
								 
							
						 
						
							
							
								
								syscalls: add Pod bound on keys  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								83f57447dc 
								
							
								 
							
						 
						
							
							
								
								maps: move MapsIter/MapsKeys from hash_map.rs to the parent module  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								72e43aae1a 
								
							
								 
							
						 
						
							
							
								
								maps: hash_map: make MapKeys and MapIter generic  
							
							... 
							
							
							
							Introduce IterableMap trait and make MapKeys/MapIter use that. 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								70fab20193 
								
							
								 
							
						 
						
							
							
								
								maps: hash map: remove Clone bound  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								b0b83cbd8c 
								
							
								 
							
						 
						
							
							
								
								Use own Pod trait  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								561b0015bb 
								
							
								 
							
						 
						
							
							
								
								programs: xdp: support detaching with FdLink  
							
							
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								0f0bc795e3 
								
							
								 
							
						 
						
							
							
								
								programs: add FdLink  
							
							... 
							
							
							
							FdLink is a generic Link impl that calls close() on the given fd. 
							
						 
						
							5 years ago  
				
					
						
							
							
								 
						
							
							
								84afa318c8 
								
							
								 
							
						 
						
							
							
								
								Formatting fixes  
							
							
							
						 
						
							5 years ago