View xdp1-7-dns_says_no_final.c
static __always_inline | |
void csum_remove_data(uint32_t *csum, struct cursor *c, uint16_t len) | |
{ | |
if (c->pos + len <= c->end) { | |
*csum = bpf_csum_diff(c->pos, len, 0, 0, *csum); | |
c->pos += len; | |
} | |
} | |
int xdp_dns_says_no(struct xdp_md *ctx) |
View xdp1-6-udp_dns_reply-part2.c
// continuing: | |
if (dns->arcount) { | |
struct dns_rr *opt_rr; | |
uint8_t *opt_owner = c->pos; | |
opt_owner = c->pos; | |
if (++c->pos > c->end || *opt_owner | |
|| !(opt_rr = parse_dns_rr(c)) | |
|| opt_rr->type != __bpf_htons(RR_TYPE_OPT)) |
View xdp1-5-udp_dns_reply.c
static __always_inline | |
int udp_dns_reply(struct cursor *c) | |
{ | |
struct udphdr *udp; | |
struct dnshdr *dns; | |
if (!(udp = parse_udphdr(c))|| udp->dest != __bpf_htons(DNS_PORT) | |
|| !(dns = parse_dnshdr(c))) | |
return -1; | |
View xdp1-4-dns_qrr.c
struct dns_qrr { | |
uint16_t qtype; | |
uint16_t qclass; | |
}; | |
struct dns_rr { | |
uint16_t type; | |
uint16_t class; | |
uint32_t ttl; | |
uint16_t rdata_len; |
View xdpblog1-3-parse_dname.c
static __always_inline | |
uint8_t *parse_dname(struct cursor *c, uint8_t *pkt) | |
{ | |
uint8_t *dname = c->pos; | |
int i; | |
for (i = 0; i < 128; i++) { /* Maximum 128 labels */ | |
uint8_t o; | |
if (c->pos + 1 > c->end) |
View xdpblog1-2-dnshdr.c
struct dnshdr { | |
uint16_t id; | |
union { | |
struct { | |
uint8_t rd : 1; | |
uint8_t tc : 1; | |
uint8_t aa : 1; | |
uint8_t opcode : 4; | |
uint8_t qr : 1; | |
View xdpblog1-1_xdp_dns_says_no.c
SEC("xdp-dns-says-no-v1") | |
int xdp_dns_says_no(struct xdp_md *ctx) | |
{ | |
struct cursor c; | |
struct ethhdr *eth; | |
uint16_t eth_proto; | |
struct iphdr *ipv4; | |
struct ipv6hdr *ipv6; | |
cursor_init(&c, ctx); |
View goldencheetah-3.5.1710.ebuild
# Copyright 1999-2017 Gentoo Foundation | |
# Distributed under the terms of the GNU General Public License v2 | |
EAPI=6 | |
inherit qmake-utils | |
inherit versionator | |
MY_PN="GoldenCheetah" | |
MY_PV=$(replace_version_separator 2 '-DEV') |
View fastbike_avoid_unpaved_gravel.brf
# | |
# A fastbike could be a racing bike or a speed pedelec. | |
# But also at night or in rainy whether you might want | |
# to fallback to this one. | |
# | |
# Structure is similar to trekking.brf, see this for documenation. | |
# | |
---context:global # following code refers to global config |
View simplesix.c
#include <stdio.h> | |
#include <pcap.h> | |
#include <arpa/inet.h> | |
#include <linux/if_ether.h> | |
#include <netinet/ip6.h> | |
#define SNAP_LEN 1500 | |
int main(int argc, char *argv[]) { |
NewerOlder