This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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