summaryrefslogtreecommitdiffstats
path: root/tools/net/bpf_exp.l
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2017-10-04 20:10:03 -0700
committerDavid S. Miller <davem@davemloft.net>2017-10-04 21:45:05 -0700
commita92bb546cff0b31d96d5919ebfeda9c678756b42 (patch)
tree74bfc93750a0fe9fce2601edec22f02baa46b562 /tools/net/bpf_exp.l
parentc331501c88b64dd1bf83eddcc040441dec187f7e (diff)
downloadlinux-stable-a92bb546cff0b31d96d5919ebfeda9c678756b42.tar.gz
linux-stable-a92bb546cff0b31d96d5919ebfeda9c678756b42.tar.bz2
linux-stable-a92bb546cff0b31d96d5919ebfeda9c678756b42.zip
tools: rename tools/net directory to tools/bpf
We currently only have BPF tools in the tools/net directory. We are about to add more BPF tools there, not necessarily networking related, rename the directory and related Makefile targets to bpf. Suggested-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Simon Horman <simon.horman@netronome.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/net/bpf_exp.l')
-rw-r--r--tools/net/bpf_exp.l198
1 files changed, 0 insertions, 198 deletions
diff --git a/tools/net/bpf_exp.l b/tools/net/bpf_exp.l
deleted file mode 100644
index bd83149e7be0..000000000000
--- a/tools/net/bpf_exp.l
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * BPF asm code lexer
- *
- * This program is free software; you can distribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2 of the License,
- * or (at your option) any later version.
- *
- * Syntax kept close to:
- *
- * Steven McCanne and Van Jacobson. 1993. The BSD packet filter: a new
- * architecture for user-level packet capture. In Proceedings of the
- * USENIX Winter 1993 Conference Proceedings on USENIX Winter 1993
- * Conference Proceedings (USENIX'93). USENIX Association, Berkeley,
- * CA, USA, 2-2.
- *
- * Copyright 2013 Daniel Borkmann <borkmann@redhat.com>
- * Licensed under the GNU General Public License, version 2.0 (GPLv2)
- */
-
-%{
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <linux/filter.h>
-
-#include "bpf_exp.yacc.h"
-
-extern void yyerror(const char *str);
-
-%}
-
-%option align
-%option ecs
-
-%option nounput
-%option noreject
-%option noinput
-%option noyywrap
-
-%option 8bit
-%option caseless
-%option yylineno
-
-%%
-
-"ldb" { return OP_LDB; }
-"ldh" { return OP_LDH; }
-"ld" { return OP_LD; }
-"ldi" { return OP_LDI; }
-"ldx" { return OP_LDX; }
-"ldxi" { return OP_LDXI; }
-"ldxb" { return OP_LDXB; }
-"st" { return OP_ST; }
-"stx" { return OP_STX; }
-"jmp" { return OP_JMP; }
-"ja" { return OP_JMP; }
-"jeq" { return OP_JEQ; }
-"jneq" { return OP_JNEQ; }
-"jne" { return OP_JNEQ; }
-"jlt" { return OP_JLT; }
-"jle" { return OP_JLE; }
-"jgt" { return OP_JGT; }
-"jge" { return OP_JGE; }
-"jset" { return OP_JSET; }
-"add" { return OP_ADD; }
-"sub" { return OP_SUB; }
-"mul" { return OP_MUL; }
-"div" { return OP_DIV; }
-"mod" { return OP_MOD; }
-"neg" { return OP_NEG; }
-"and" { return OP_AND; }
-"xor" { return OP_XOR; }
-"or" { return OP_OR; }
-"lsh" { return OP_LSH; }
-"rsh" { return OP_RSH; }
-"ret" { return OP_RET; }
-"tax" { return OP_TAX; }
-"txa" { return OP_TXA; }
-
-"#"?("len") { return K_PKT_LEN; }
-
-"#"?("proto") {
- yylval.number = SKF_AD_PROTOCOL;
- return extension;
- }
-"#"?("type") {
- yylval.number = SKF_AD_PKTTYPE;
- return extension;
- }
-"#"?("poff") {
- yylval.number = SKF_AD_PAY_OFFSET;
- return extension;
- }
-"#"?("ifidx") {
- yylval.number = SKF_AD_IFINDEX;
- return extension;
- }
-"#"?("nla") {
- yylval.number = SKF_AD_NLATTR;
- return extension;
- }
-"#"?("nlan") {
- yylval.number = SKF_AD_NLATTR_NEST;
- return extension;
- }
-"#"?("mark") {
- yylval.number = SKF_AD_MARK;
- return extension;
- }
-"#"?("queue") {
- yylval.number = SKF_AD_QUEUE;
- return extension;
- }
-"#"?("hatype") {
- yylval.number = SKF_AD_HATYPE;
- return extension;
- }
-"#"?("rxhash") {
- yylval.number = SKF_AD_RXHASH;
- return extension;
- }
-"#"?("cpu") {
- yylval.number = SKF_AD_CPU;
- return extension;
- }
-"#"?("vlan_tci") {
- yylval.number = SKF_AD_VLAN_TAG;
- return extension;
- }
-"#"?("vlan_pr") {
- yylval.number = SKF_AD_VLAN_TAG_PRESENT;
- return extension;
- }
-"#"?("vlan_avail") {
- yylval.number = SKF_AD_VLAN_TAG_PRESENT;
- return extension;
- }
-"#"?("vlan_tpid") {
- yylval.number = SKF_AD_VLAN_TPID;
- return extension;
- }
-"#"?("rand") {
- yylval.number = SKF_AD_RANDOM;
- return extension;
- }
-
-":" { return ':'; }
-"," { return ','; }
-"#" { return '#'; }
-"%" { return '%'; }
-"[" { return '['; }
-"]" { return ']'; }
-"(" { return '('; }
-")" { return ')'; }
-"x" { return 'x'; }
-"a" { return 'a'; }
-"+" { return '+'; }
-"M" { return 'M'; }
-"*" { return '*'; }
-"&" { return '&'; }
-
-([0][x][a-fA-F0-9]+) {
- yylval.number = strtoul(yytext, NULL, 16);
- return number;
- }
-([0][b][0-1]+) {
- yylval.number = strtol(yytext + 2, NULL, 2);
- return number;
- }
-(([0])|([-+]?[1-9][0-9]*)) {
- yylval.number = strtol(yytext, NULL, 10);
- return number;
- }
-([0][0-9]+) {
- yylval.number = strtol(yytext + 1, NULL, 8);
- return number;
- }
-[a-zA-Z_][a-zA-Z0-9_]+ {
- yylval.label = strdup(yytext);
- return label;
- }
-
-"/*"([^\*]|\*[^/])*"*/" { /* NOP */ }
-";"[^\n]* { /* NOP */ }
-^#.* { /* NOP */ }
-[ \t]+ { /* NOP */ }
-[ \n]+ { /* NOP */ }
-
-. {
- printf("unknown character \'%s\'", yytext);
- yyerror("lex unknown character");
- }
-
-%%