Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bcc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
bcc
Commits
6c0311eb
Commit
6c0311eb
authored
Jun 05, 2015
by
4ast
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #28 from iovisor/bblanco_dev
Update license in source code to be Apache 2
parents
826136e3
246b942b
Changes
55
Hide whitespace changes
Inline
Side-by-side
Showing
55 changed files
with
398 additions
and
493 deletions
+398
-493
CMakeLists.txt
CMakeLists.txt
+2
-0
scripts/bpf_demo.ks.erb
scripts/bpf_demo.ks.erb
+2
-2
src/CMakeLists.txt
src/CMakeLists.txt
+2
-0
src/bpf.py
src/bpf.py
+14
-0
src/cc/CMakeLists.txt
src/cc/CMakeLists.txt
+2
-0
src/cc/b_frontend_action.cc
src/cc/b_frontend_action.cc
+15
-0
src/cc/b_frontend_action.h
src/cc/b_frontend_action.h
+15
-0
src/cc/bpf_common.cc
src/cc/bpf_common.cc
+15
-0
src/cc/bpf_common.h
src/cc/bpf_common.h
+15
-0
src/cc/bpf_helpers.h
src/cc/bpf_helpers.h
+15
-0
src/cc/bpf_module.cc
src/cc/bpf_module.cc
+15
-0
src/cc/bpf_module.h
src/cc/bpf_module.h
+10
-12
src/cc/codegen_llvm.cc
src/cc/codegen_llvm.cc
+10
-12
src/cc/codegen_llvm.h
src/cc/codegen_llvm.h
+10
-12
src/cc/exception.h
src/cc/exception.h
+10
-12
src/cc/kbuild_helper.cc
src/cc/kbuild_helper.cc
+15
-0
src/cc/kbuild_helper.h
src/cc/kbuild_helper.h
+15
-0
src/cc/lexer.h
src/cc/lexer.h
+10
-12
src/cc/lexer.ll
src/cc/lexer.ll
+10
-12
src/cc/libbpf.c
src/cc/libbpf.c
+16
-1
src/cc/node.cc
src/cc/node.cc
+10
-12
src/cc/node.h
src/cc/node.h
+10
-12
src/cc/parser.cc
src/cc/parser.cc
+10
-12
src/cc/parser.h
src/cc/parser.h
+10
-12
src/cc/parser.yy
src/cc/parser.yy
+10
-12
src/cc/printer.cc
src/cc/printer.cc
+10
-12
src/cc/printer.h
src/cc/printer.h
+10
-12
src/cc/proto.h
src/cc/proto.h
+15
-0
src/cc/scope.h
src/cc/scope.h
+10
-12
src/cc/type_check.cc
src/cc/type_check.cc
+10
-12
src/cc/type_check.h
src/cc/type_check.h
+10
-12
src/cc/type_helper.h
src/cc/type_helper.h
+10
-12
src/compat/include/linux/bpf.h
src/compat/include/linux/bpf.h
+0
-231
src/compat/include/linux/bpf_common.h
src/compat/include/linux/bpf_common.h
+0
-55
src/libbpf.h
src/libbpf.h
+15
-0
tests/CMakeLists.txt
tests/CMakeLists.txt
+2
-0
tests/cc/CMakeLists.txt
tests/cc/CMakeLists.txt
+2
-0
tests/cc/kprobe.b
tests/cc/kprobe.b
+2
-0
tests/cc/proto.b
tests/cc/proto.b
+2
-0
tests/cc/test_call1.c
tests/cc/test_call1.c
+2
-0
tests/cc/test_call1.py
tests/cc/test_call1.py
+2
-0
tests/cc/test_stat1.b
tests/cc/test_stat1.b
+2
-0
tests/cc/test_stat1.c
tests/cc/test_stat1.c
+2
-0
tests/cc/test_stat1.py
tests/cc/test_stat1.py
+2
-0
tests/cc/test_trace1.b
tests/cc/test_trace1.b
+2
-0
tests/cc/test_trace1.py
tests/cc/test_trace1.py
+2
-0
tests/cc/test_trace2.b
tests/cc/test_trace2.b
+2
-0
tests/cc/test_trace2.c
tests/cc/test_trace2.c
+2
-0
tests/cc/test_trace2.py
tests/cc/test_trace2.py
+2
-0
tests/cc/test_trace3.c
tests/cc/test_trace3.c
+2
-0
tests/cc/test_trace3.py
tests/cc/test_trace3.py
+2
-0
tests/cc/test_xlate1.b
tests/cc/test_xlate1.b
+2
-0
tests/cc/test_xlate1.c
tests/cc/test_xlate1.c
+2
-0
tests/cc/test_xlate1.py
tests/cc/test_xlate1.py
+2
-0
tests/wrapper.sh.in
tests/wrapper.sh.in
+2
-0
No files found.
CMakeLists.txt
View file @
6c0311eb
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
cmake_minimum_required
(
VERSION 2.8.7
)
cmake_minimum_required
(
VERSION 2.8.7
)
project
(
bpf-tools
)
project
(
bpf-tools
)
...
...
scripts/bpf_demo.ks.erb
View file @
6c0311eb
...
@@ -108,10 +108,10 @@ cat > /usr/local/bin/bcc-setup <<'DELIM__'
...
@@ -108,10 +108,10 @@ cat > /usr/local/bin/bcc-setup <<'DELIM__'
set
-e
-x
set
-e
-x
numcpu=
$(grep
-c
^
processor
/
proc
/
cpuinfo
)
numcpu=
$(grep
-c
^
processor
/
proc
/
cpuinfo
)
repo=
ssh://git@github.com/
plumgrid
/bcc.git
repo=
ssh://git@github.com/
iovisor
/bcc.git
git
ls-remote
$
repo
2
>
&
1 > /dev/null
git
ls-remote
$
repo
2
>
&
1 > /dev/null
if [[ $? -ne 0 ]]; then
if [[ $? -ne 0 ]]; then
repo=https://
<%=
@github_access_token
%>
@github.com/
plumgrid
/bcc.git
repo=https://
<%=
@github_access_token
%>
@github.com/
iovisor
/bcc.git
fi
fi
git clone $repo
git clone $repo
mkdir bcc/build/
mkdir bcc/build/
...
...
src/CMakeLists.txt
View file @
6c0311eb
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
"
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fno-rtti"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fno-rtti"
)
...
...
src/bpf.py
View file @
6c0311eb
# Copyright 2015 PLUMgrid
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import
ctypes
as
ct
import
ctypes
as
ct
import
os
import
os
...
...
src/cc/CMakeLists.txt
View file @
6c0311eb
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
include_directories
(
${
CMAKE_CURRENT_BINARY_DIR
}
)
include_directories
(
${
CMAKE_CURRENT_BINARY_DIR
}
)
include_directories
(
${
LLVM_INCLUDE_DIRS
}
)
include_directories
(
${
LLVM_INCLUDE_DIRS
}
)
...
...
src/cc/b_frontend_action.cc
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <linux/bpf.h>
#include <linux/bpf.h>
#include <clang/AST/ASTConsumer.h>
#include <clang/AST/ASTConsumer.h>
...
...
src/cc/b_frontend_action.h
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <map>
#include <map>
#include <memory>
#include <memory>
...
...
src/cc/bpf_common.cc
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "cc/bpf_module.h"
#include "cc/bpf_module.h"
#include "cc/bpf_common.h"
#include "cc/bpf_common.h"
...
...
src/cc/bpf_common.h
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#pragma once
#include <stdint.h>
#include <stdint.h>
...
...
src/cc/bpf_helpers.h
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __BPF_HELPERS_H
#ifndef __BPF_HELPERS_H
#define __BPF_HELPERS_H
#define __BPF_HELPERS_H
...
...
src/cc/bpf_module.cc
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <algorithm>
#include <algorithm>
#include <fcntl.h>
#include <fcntl.h>
#include <ftw.h>
#include <ftw.h>
...
...
src/cc/bpf_module.h
View file @
6c0311eb
/*
/*
* ====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2015, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* ====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/codegen_llvm.cc
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#include <set>
#include <set>
...
...
src/cc/codegen_llvm.h
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/exception.h
View file @
6c0311eb
/*
/*
* ====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* ====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/kbuild_helper.cc
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <fcntl.h>
#include <fcntl.h>
#include <ftw.h>
#include <ftw.h>
#include "kbuild_helper.h"
#include "kbuild_helper.h"
...
...
src/cc/kbuild_helper.h
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <cstring>
#include <cstring>
#include <memory>
#include <memory>
#include <string>
#include <string>
...
...
src/cc/lexer.h
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/lexer.ll
View file @
6c0311eb
/
*
/
*
*
=====================================================================
*
Copyright
(
c
)
2015
PLUMgrid
,
Inc
.
*
Copyright
(
c
)
2012
,
PLUMgrid
,
http:
//plumgrid
.
com
*
*
*
This
source
is
subject
to
the
PLUMgrid
License
.
*
Licensed
under
the
Apache
License
,
Version
2.0
(
the
"License"
)
;
*
All
rights
reserved
.
*
you
may
not
use
this
file
except
in
compliance
with
the
License
.
*
You
may
obtain
a
copy
of
the
License
at
*
*
*
THIS
CODE
AND
INFORMATION
ARE
PROVIDED
"AS IS"
WITHOUT
WARRANTY
OF
*
http:
//www
.
apache
.
org/licenses/LICENSE
-2.0
*
ANY
KIND
,
EITHER
EXPRESSED
OR
IMPLIED
,
INCLUDING
BUT
NOT
LIMITED
TO
*
THE
IMPLIED
WARRANTIES
OF
MERCHANTABILITY
AND/OR
FITNESS
FOR
A
*
PARTICULAR
PURPOSE
.
*
*
*
PLUMgrid
confidential
information
,
delete
if
you
are
not
the
*
Unless
required
by
applicable
law
or
agreed
to
in
writing
,
software
*
intended
recipient
.
*
distributed
under
the
License
is
distributed
on
an
"AS IS"
BASIS
,
*
*
WITHOUT
WARRANTIES
OR
CONDITIONS
OF
ANY
KIND
,
either
express
or
implied
.
*
=====================================================================
*
See
the
License
for
the
specific
language
governing
permissions
and
*
limitations
under
the
License
.
*
/
*
/
%
{
%
{
...
...
src/cc/libbpf.c
View file @
6c0311eb
/* eBPF mini library */
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <arpa/inet.h>
#include <arpa/inet.h>
#include <errno.h>
#include <errno.h>
#include <fcntl.h>
#include <fcntl.h>
...
...
src/cc/node.cc
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#include <stdio.h>
#include <stdio.h>
...
...
src/cc/node.h
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/parser.cc
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#include <algorithm>
#include <algorithm>
...
...
src/cc/parser.h
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/parser.yy
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
%skeleton "lalr1.cc"
%skeleton "lalr1.cc"
...
...
src/cc/printer.cc
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#include "cc/printer.h"
#include "cc/printer.h"
...
...
src/cc/printer.h
View file @
6c0311eb
/*
/*
* ====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* ====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/proto.h
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <linux/types.h>
#include <linux/types.h>
struct
ethernet_t
{
struct
ethernet_t
{
...
...
src/cc/scope.h
View file @
6c0311eb
/*
/*
* ====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* ====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/type_check.cc
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#include <set>
#include <set>
...
...
src/cc/type_check.h
View file @
6c0311eb
/*
/*
* =====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* =====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/cc/type_helper.h
View file @
6c0311eb
/*
/*
* ====================================================================
* Copyright (c) 2015 PLUMgrid, Inc.
* Copyright (c) 2012, PLUMgrid, http://plumgrid.com
*
*
* This source is subject to the PLUMgrid License.
* Licensed under the Apache License, Version 2.0 (the "License");
* All rights reserved.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF
* http://www.apache.org/licenses/LICENSE-2.0
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*
* PLUMgrid confidential information, delete if you are not the
* Unless required by applicable law or agreed to in writing, software
* intended recipient.
* distributed under the License is distributed on an "AS IS" BASIS,
*
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* ====================================================================
* See the License for the specific language governing permissions and
* limitations under the License.
*/
*/
#pragma once
#pragma once
...
...
src/compat/include/linux/bpf.h
deleted
100644 → 0
View file @
826136e3
/* Copyright (c) 2011-2014 PLUMgrid, http://plumgrid.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*/
#ifndef _UAPI__LINUX_BPF_H__
#define _UAPI__LINUX_BPF_H__
#include <linux/types.h>
#include <linux/bpf_common.h>
/* Extended instruction set based on top of classic BPF */
/* instruction classes */
#define BPF_ALU64 0x07
/* alu mode in double word width */
/* ld/ldx fields */
#define BPF_DW 0x18
/* double word */
#define BPF_XADD 0xc0
/* exclusive add */
/* alu/jmp fields */
#define BPF_MOV 0xb0
/* mov reg to reg */
#define BPF_ARSH 0xc0
/* sign extending arithmetic shift right */
/* change endianness of a register */
#define BPF_END 0xd0
/* flags for endianness conversion: */
#define BPF_TO_LE 0x00
/* convert to little-endian */
#define BPF_TO_BE 0x08
/* convert to big-endian */
#define BPF_FROM_LE BPF_TO_LE
#define BPF_FROM_BE BPF_TO_BE
#define BPF_JNE 0x50
/* jump != */
#define BPF_JSGT 0x60
/* SGT is signed '>', GT in x86 */
#define BPF_JSGE 0x70
/* SGE is signed '>=', GE in x86 */
#define BPF_CALL 0x80
/* function call */
#define BPF_EXIT 0x90
/* function return */
/* Register numbers */
enum
{
BPF_REG_0
=
0
,
BPF_REG_1
,
BPF_REG_2
,
BPF_REG_3
,
BPF_REG_4
,
BPF_REG_5
,
BPF_REG_6
,
BPF_REG_7
,
BPF_REG_8
,
BPF_REG_9
,
BPF_REG_10
,
__MAX_BPF_REG
,
};
/* BPF has 10 general purpose 64-bit registers and stack frame. */
#define MAX_BPF_REG __MAX_BPF_REG
struct
bpf_insn
{
__u8
code
;
/* opcode */
__u8
dst_reg
:
4
;
/* dest register */
__u8
src_reg
:
4
;
/* source register */
__s16
off
;
/* signed offset */
__s32
imm
;
/* signed immediate constant */
};
/* BPF syscall commands */
enum
bpf_cmd
{
/* create a map with given type and attributes
* fd = bpf(BPF_MAP_CREATE, union bpf_attr *, u32 size)
* returns fd or negative error
* map is deleted when fd is closed
*/
BPF_MAP_CREATE
,
/* lookup key in a given map
* err = bpf(BPF_MAP_LOOKUP_ELEM, union bpf_attr *attr, u32 size)
* Using attr->map_fd, attr->key, attr->value
* returns zero and stores found elem into value
* or negative error
*/
BPF_MAP_LOOKUP_ELEM
,
/* create or update key/value pair in a given map
* err = bpf(BPF_MAP_UPDATE_ELEM, union bpf_attr *attr, u32 size)
* Using attr->map_fd, attr->key, attr->value, attr->flags
* returns zero or negative error
*/
BPF_MAP_UPDATE_ELEM
,
/* find and delete elem by key in a given map
* err = bpf(BPF_MAP_DELETE_ELEM, union bpf_attr *attr, u32 size)
* Using attr->map_fd, attr->key
* returns zero or negative error
*/
BPF_MAP_DELETE_ELEM
,
/* lookup key in a given map and return next key
* err = bpf(BPF_MAP_GET_NEXT_KEY, union bpf_attr *attr, u32 size)
* Using attr->map_fd, attr->key, attr->next_key
* returns zero and stores next key or negative error
*/
BPF_MAP_GET_NEXT_KEY
,
/* verify and load eBPF program
* prog_fd = bpf(BPF_PROG_LOAD, union bpf_attr *attr, u32 size)
* Using attr->prog_type, attr->insns, attr->license
* returns fd or negative error
*/
BPF_PROG_LOAD
,
};
enum
bpf_map_type
{
BPF_MAP_TYPE_UNSPEC
,
BPF_MAP_TYPE_HASH
,
BPF_MAP_TYPE_ARRAY
,
};
enum
bpf_prog_type
{
BPF_PROG_TYPE_UNSPEC
,
BPF_PROG_TYPE_SOCKET_FILTER
,
BPF_PROG_TYPE_KPROBE
,
BPF_PROG_TYPE_SCHED_CLS
,
BPF_PROG_TYPE_SCHED_ACT
,
};
#define BPF_PSEUDO_MAP_FD 1
/* flags for BPF_MAP_UPDATE_ELEM command */
#define BPF_ANY 0
/* create new element or update existing */
#define BPF_NOEXIST 1
/* create new element if it didn't exist */
#define BPF_EXIST 2
/* update existing element */
union
bpf_attr
{
struct
{
/* anonymous struct used by BPF_MAP_CREATE command */
__u32
map_type
;
/* one of enum bpf_map_type */
__u32
key_size
;
/* size of key in bytes */
__u32
value_size
;
/* size of value in bytes */
__u32
max_entries
;
/* max number of entries in a map */
};
struct
{
/* anonymous struct used by BPF_MAP_*_ELEM commands */
__u32
map_fd
;
__aligned_u64
key
;
union
{
__aligned_u64
value
;
__aligned_u64
next_key
;
};
__u64
flags
;
};
struct
{
/* anonymous struct used by BPF_PROG_LOAD command */
__u32
prog_type
;
/* one of enum bpf_prog_type */
__u32
insn_cnt
;
__aligned_u64
insns
;
__aligned_u64
license
;
__u32
log_level
;
/* verbosity level of verifier */
__u32
log_size
;
/* size of user buffer */
__aligned_u64
log_buf
;
/* user supplied buffer */
__u32
kern_version
;
/* checked when prog_type=kprobe */
};
}
__attribute__
((
aligned
(
8
)));
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
* function eBPF program intends to call
*/
enum
bpf_func_id
{
BPF_FUNC_unspec
,
BPF_FUNC_map_lookup_elem
,
/* void *map_lookup_elem(&map, &key) */
BPF_FUNC_map_update_elem
,
/* int map_update_elem(&map, &key, &value, flags) */
BPF_FUNC_map_delete_elem
,
/* int map_delete_elem(&map, &key) */
BPF_FUNC_probe_read
,
/* int bpf_probe_read(void *dst, int size, void *src) */
BPF_FUNC_ktime_get_ns
,
/* u64 bpf_ktime_get_ns(void) */
BPF_FUNC_trace_printk
,
/* int bpf_trace_printk(const char *fmt, int fmt_size, ...) */
BPF_FUNC_get_prandom_u32
,
/* u32 prandom_u32(void) */
BPF_FUNC_get_smp_processor_id
,
/* u32 raw_smp_processor_id(void) */
/**
* skb_store_bytes(skb, offset, from, len, flags) - store bytes into packet
* @skb: pointer to skb
* @offset: offset within packet from skb->mac_header
* @from: pointer where to copy bytes from
* @len: number of bytes to store into packet
* @flags: bit 0 - if true, recompute skb->csum
* other bits - reserved
* Return: 0 on success
*/
BPF_FUNC_skb_store_bytes
,
/**
* l3_csum_replace(skb, offset, from, to, flags) - recompute IP checksum
* @skb: pointer to skb
* @offset: offset within packet where IP checksum is located
* @from: old value of header field
* @to: new value of header field
* @flags: bits 0-3 - size of header field
* other bits - reserved
* Return: 0 on success
*/
BPF_FUNC_l3_csum_replace
,
/**
* l4_csum_replace(skb, offset, from, to, flags) - recompute TCP/UDP checksum
* @skb: pointer to skb
* @offset: offset within packet where TCP/UDP checksum is located
* @from: old value of header field
* @to: new value of header field
* @flags: bits 0-3 - size of header field
* bit 4 - is pseudo header
* other bits - reserved
* Return: 0 on success
*/
BPF_FUNC_l4_csum_replace
,
__BPF_FUNC_MAX_ID
,
};
/* user accessible mirror of in-kernel sk_buff.
* new fields can only be added to the end of this structure
*/
struct
__sk_buff
{
__u32
len
;
__u32
pkt_type
;
__u32
mark
;
__u32
queue_mapping
;
__u32
protocol
;
__u32
vlan_present
;
__u32
vlan_tci
;
__u32
vlan_proto
;
__u32
priority
;
};
#endif
/* _UAPI__LINUX_BPF_H__ */
src/compat/include/linux/bpf_common.h
deleted
100644 → 0
View file @
826136e3
#ifndef _UAPI__LINUX_BPF_COMMON_H__
#define _UAPI__LINUX_BPF_COMMON_H__
/* Instruction classes */
#define BPF_CLASS(code) ((code) & 0x07)
#define BPF_LD 0x00
#define BPF_LDX 0x01
#define BPF_ST 0x02
#define BPF_STX 0x03
#define BPF_ALU 0x04
#define BPF_JMP 0x05
#define BPF_RET 0x06
#define BPF_MISC 0x07
/* ld/ldx fields */
#define BPF_SIZE(code) ((code) & 0x18)
#define BPF_W 0x00
#define BPF_H 0x08
#define BPF_B 0x10
#define BPF_MODE(code) ((code) & 0xe0)
#define BPF_IMM 0x00
#define BPF_ABS 0x20
#define BPF_IND 0x40
#define BPF_MEM 0x60
#define BPF_LEN 0x80
#define BPF_MSH 0xa0
/* alu/jmp fields */
#define BPF_OP(code) ((code) & 0xf0)
#define BPF_ADD 0x00
#define BPF_SUB 0x10
#define BPF_MUL 0x20
#define BPF_DIV 0x30
#define BPF_OR 0x40
#define BPF_AND 0x50
#define BPF_LSH 0x60
#define BPF_RSH 0x70
#define BPF_NEG 0x80
#define BPF_MOD 0x90
#define BPF_XOR 0xa0
#define BPF_JA 0x00
#define BPF_JEQ 0x10
#define BPF_JGT 0x20
#define BPF_JGE 0x30
#define BPF_JSET 0x40
#define BPF_SRC(code) ((code) & 0x08)
#define BPF_K 0x00
#define BPF_X 0x08
#ifndef BPF_MAXINSNS
#define BPF_MAXINSNS 4096
#endif
#endif
/* _UAPI__LINUX_BPF_COMMON_H__ */
src/libbpf.h
View file @
6c0311eb
/*
* Copyright (c) 2015 PLUMgrid, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* eBPF mini library */
/* eBPF mini library */
#pragma once
#pragma once
...
...
tests/CMakeLists.txt
View file @
6c0311eb
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
configure_file
(
wrapper.sh.in
"
${
CMAKE_CURRENT_BINARY_DIR
}
/wrapper.sh"
@ONLY
)
configure_file
(
wrapper.sh.in
"
${
CMAKE_CURRENT_BINARY_DIR
}
/wrapper.sh"
@ONLY
)
set
(
TEST_WRAPPER
${
CMAKE_CURRENT_BINARY_DIR
}
/wrapper.sh
)
set
(
TEST_WRAPPER
${
CMAKE_CURRENT_BINARY_DIR
}
/wrapper.sh
)
...
...
tests/cc/CMakeLists.txt
View file @
6c0311eb
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
add_test
(
NAME py_test_stat1_b WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
add_test
(
NAME py_test_stat1_b WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
COMMAND
${
TEST_WRAPPER
}
py_stat1_b namespace
${
CMAKE_CURRENT_SOURCE_DIR
}
/test_stat1.py test_stat1.b proto.b
)
COMMAND
${
TEST_WRAPPER
}
py_stat1_b namespace
${
CMAKE_CURRENT_SOURCE_DIR
}
/test_stat1.py test_stat1.b proto.b
)
add_test
(
NAME py_test_stat1_c WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
add_test
(
NAME py_test_stat1_c WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
...
...
tests/cc/kprobe.b
View file @
6c0311eb
// Copyright (c) PLUMgrid
,
Inc
.
// Licensed under the Apache License
,
Version 2
.
0 (the "License")
#packed "false"
#packed "false"
...
...
tests/cc/proto.b
View file @
6c0311eb
// Copyright (c) PLUMgrid
,
Inc
.
// Licensed under the Apache License
,
Version 2
.
0 (the "License")
#packed "true"
#packed "true"
...
...
tests/cc/test_call1.c
View file @
6c0311eb
// Copyright (c) PLUMgrid, Inc.
// Licensed under the Apache License, Version 2.0 (the "License")
#include "../../src/cc/bpf_helpers.h"
#include "../../src/cc/bpf_helpers.h"
BPF_TABLE
(
"prog"
,
int
,
int
,
jump
,
64
);
BPF_TABLE
(
"prog"
,
int
,
int
,
jump
,
64
);
...
...
tests/cc/test_call1.py
View file @
6c0311eb
#!/usr/bin/env python
#!/usr/bin/env python
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
from
ctypes
import
c_ushort
,
c_int
,
c_ulonglong
from
ctypes
import
c_ushort
,
c_int
,
c_ulonglong
from
netaddr
import
IPAddress
from
netaddr
import
IPAddress
...
...
tests/cc/test_stat1.b
View file @
6c0311eb
// Copyright (c) PLUMgrid
,
Inc
.
// Licensed under the Apache License
,
Version 2
.
0 (the "License")
struct IPKey {
struct IPKey {
u32 dip:32;
u32 dip:32;
u32 sip:32;
u32 sip:32;
...
...
tests/cc/test_stat1.c
View file @
6c0311eb
// Copyright (c) PLUMgrid, Inc.
// Licensed under the Apache License, Version 2.0 (the "License")
#include "../../src/cc/bpf_helpers.h"
#include "../../src/cc/bpf_helpers.h"
#include "../../src/cc/proto.h"
#include "../../src/cc/proto.h"
...
...
tests/cc/test_stat1.py
View file @
6c0311eb
#!/usr/bin/env python
#!/usr/bin/env python
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
# test program to count the packets sent to a device in a .5
# test program to count the packets sent to a device in a .5
# second period
# second period
...
...
tests/cc/test_trace1.b
View file @
6c0311eb
// Copyright (c) PLUMgrid
,
Inc
.
// Licensed under the Apache License
,
Version 2
.
0 (the "License")
struct Ptr {
struct Ptr {
u64 ptr:64;
u64 ptr:64;
};
};
...
...
tests/cc/test_trace1.py
View file @
6c0311eb
#!/usr/bin/env python
#!/usr/bin/env python
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
from
ctypes
import
c_uint
,
c_ulong
,
Structure
from
ctypes
import
c_uint
,
c_ulong
,
Structure
from
bpf
import
BPF
from
bpf
import
BPF
...
...
tests/cc/test_trace2.b
View file @
6c0311eb
// Copyright (c) PLUMgrid
,
Inc
.
// Licensed under the Apache License
,
Version 2
.
0 (the "License")
#include "kprobe
.
b"
#include "kprobe
.
b"
struct Ptr { u64 ptr:64; };
struct Ptr { u64 ptr:64; };
struct Counters { u64 stat1:64; };
struct Counters { u64 stat1:64; };
...
...
tests/cc/test_trace2.c
View file @
6c0311eb
// Copyright (c) PLUMgrid, Inc.
// Licensed under the Apache License, Version 2.0 (the "License")
#include <linux/ptrace.h>
#include <linux/ptrace.h>
#include "../../src/cc/bpf_helpers.h"
#include "../../src/cc/bpf_helpers.h"
struct
Ptr
{
u64
ptr
;
};
struct
Ptr
{
u64
ptr
;
};
...
...
tests/cc/test_trace2.py
View file @
6c0311eb
#!/usr/bin/env python
#!/usr/bin/env python
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
from
ctypes
import
c_uint
,
c_ulong
,
Structure
from
ctypes
import
c_uint
,
c_ulong
,
Structure
from
bpf
import
BPF
from
bpf
import
BPF
...
...
tests/cc/test_trace3.c
View file @
6c0311eb
// Copyright (c) PLUMgrid, Inc.
// Licensed under the Apache License, Version 2.0 (the "License")
#include <linux/ptrace.h>
#include <linux/ptrace.h>
#include <linux/blkdev.h>
#include <linux/blkdev.h>
#include "../../src/cc/bpf_helpers.h"
#include "../../src/cc/bpf_helpers.h"
...
...
tests/cc/test_trace3.py
View file @
6c0311eb
#!/usr/bin/env python
#!/usr/bin/env python
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
from
ctypes
import
c_uint
,
c_ulong
,
Structure
from
ctypes
import
c_uint
,
c_ulong
,
Structure
from
bpf
import
BPF
from
bpf
import
BPF
...
...
tests/cc/test_xlate1.b
View file @
6c0311eb
// Copyright (c) PLUMgrid
,
Inc
.
// Licensed under the Apache License
,
Version 2
.
0 (the "License")
// test for packet modification
// test for packet modification
#packed "false"
#packed "false"
...
...
tests/cc/test_xlate1.c
View file @
6c0311eb
// Copyright (c) PLUMgrid, Inc.
// Licensed under the Apache License, Version 2.0 (the "License")
#include "../../src/cc/bpf_helpers.h"
#include "../../src/cc/bpf_helpers.h"
#include "../../src/cc/proto.h"
#include "../../src/cc/proto.h"
struct
IPKey
{
struct
IPKey
{
...
...
tests/cc/test_xlate1.py
View file @
6c0311eb
#!/usr/bin/env python
#!/usr/bin/env python
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
from
ctypes
import
c_uint
,
c_ulonglong
,
Structure
from
ctypes
import
c_uint
,
c_ulonglong
,
Structure
from
netaddr
import
IPAddress
from
netaddr
import
IPAddress
...
...
tests/wrapper.sh.in
View file @
6c0311eb
#!/bin/bash
#!/bin/bash
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
#set -x
#set -x
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment