chore/docs: lease building requirement and write build instruction

This commit is contained in:
mzz2017 2023-02-05 10:29:00 +08:00
parent 2560587022
commit 10c0c264b2
7 changed files with 45 additions and 17 deletions

View File

@ -8,9 +8,9 @@
# Pin the default clang to a stable version. # Pin the default clang to a stable version.
CLANG ?= clang CLANG ?= clang
STRIP ?= llvm-strip STRIP ?= llvm-strip
OUTPUT ?= dae
CFLAGS := -O2 -Wall -Werror $(CFLAGS) CFLAGS := -O2 -Wall -Werror $(CFLAGS)
TARGET ?= bpfel,bpfeb TARGET ?= bpfel,bpfeb
OUTPUT ?= dae
# Get version from .git. # Get version from .git.
date=$(shell git log -1 --format="%cd" --date=short | sed s/-//g) date=$(shell git log -1 --format="%cd" --date=short | sed s/-//g)

View File

@ -10,15 +10,42 @@ As a successor of [v2rayA](https://github.com/v2rayA/v2rayA), dae abandoned v2ra
## Usage ## Usage
Build: ### Build
**Make Dependencies**
```
clang >= 10
llvm >= 10
golang >= 1.18
```
**Build**
```shell ```shell
git clone https://github.com/v2rayA/dae.git git clone https://github.com/v2rayA/dae.git
cd dae cd dae
git submodule update --init git submodule update --init
make # Minimal dependency build:
make GOFLAGS="-buildvcs=false" CGO_ENABLED=0
# Or normally build:
# make
``` ```
Run: ### Run
**Runtime Dependencies**
Download [geoip.dat](https://github.com/v2ray/geoip/releases/latest) and [geosite.dat](https://github.com/v2fly/domain-list-community/releases/latest) to `/usr/local/share/dae/`.
```
mkdir -p /usr/local/share/dae/
pushd /usr/local/share/dae/
curl -L -o geoip.dat https://github.com/v2ray/geoip/releases/latest/download/geoip.dat
curl -L -o geosite.dat https://github.com/v2ray/domain-list-community/releases/latest/download/dlc.dat
popd
```
**Run**
```shell ```shell
./dae run -c example.dae ./dae run -c example.dae
``` ```
@ -51,8 +78,8 @@ Note that if you bind dae to WAN only, dae only provide network service for loca
1. Check dns upstream and source loop (whether upstream is also a client of us) and remind the user to add sip rule. 1. Check dns upstream and source loop (whether upstream is also a client of us) and remind the user to add sip rule.
1. Domain routing performance optimization. 1. Domain routing performance optimization.
1. Handle the case that nodes do not support UDP by adding `filter: l4proto_out(tcp, udp)`, and filter out those nodes support both TCP and UDP. Thus we can use routing to handle it. 1. Handle the case that nodes do not support UDP.
1. Handle the case that nodes do not support IPv6 by adding `filter: ipversion_out(4, 6)`, and filter out those nodes support both IPv4 and IPv6. Thus we can use routing to handle it. 1. Handle the case that nodes do not support IPv6.
1. L4Checksum problem. Maybe it is hard to solve. 1. L4Checksum problem. Maybe it is hard to solve.
1. MACv2 extension extraction. 1. MACv2 extension extraction.
1. Log to userspace. 1. Log to userspace.

View File

@ -26,7 +26,6 @@ var (
fmt.Println(err) fmt.Println(err)
os.Exit(1) os.Exit(1)
} }
fmt.Println("OK")
}, },
} }
) )

View File

@ -43,8 +43,9 @@ func Ipv6ByteSliceToUint32Array(_ip []byte) (ip [4]uint32) {
} }
func Ipv6Uint32ArrayToByteSlice(_ip [4]uint32) (ip []byte) { func Ipv6Uint32ArrayToByteSlice(_ip [4]uint32) (ip []byte) {
ip = make([]byte, 16)
for j := 0; j < 4; j++ { for j := 0; j < 4; j++ {
ip = binary.LittleEndian.AppendUint32(ip, _ip[j]) binary.LittleEndian.PutUint32(ip[j*4:], _ip[j])
} }
return ip return ip
} }

@ -1 +1 @@
Subproject commit 69c6c597560e3c0c445b8b0824e9a6e4e7af7dc1 Subproject commit 99eb2ebd74b10f2b91c7840c83ad08eec8f50e59

View File

@ -3,17 +3,18 @@
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
* Copyright (c) since 2022, v2rayA Organization <team@v2raya.org> * Copyright (c) since 2022, v2rayA Organization <team@v2raya.org>
*/ */
#include "headers/if_ether_defs.h"
#include "headers/pkt_cls_defs.h"
#include "headers/socket_defs.h"
#include "headers/bpf_probe_read.h"
#include "headers/vmlinux.h"
#include <asm-generic/errno-base.h> #include <asm-generic/errno-base.h>
#include "headers/if_ether_defs.h"
#include "headers/pkt_cls_defs.h"
#include "headers/socket_defs.h"
#include "headers/vmlinux.h"
// #include <bpf/bpf_core_read.h> // #include <bpf/bpf_core_read.h>
#include <bpf/bpf_endian.h> #include "headers/bpf_probe_read.h"
#include <bpf/bpf_helpers.h> #include "headers/bpf_endian.h"
#include "headers/bpf_helpers.h"
// #define __DEBUG_ROUTING // #define __DEBUG_ROUTING
// #define __PRINT_ROUTING_RESULT // #define __PRINT_ROUTING_RESULT

2
go.mod
View File

@ -1,6 +1,6 @@
module github.com/v2rayA/dae module github.com/v2rayA/dae
go 1.19 go 1.18
require ( require (
github.com/adrg/xdg v0.4.0 github.com/adrg/xdg v0.4.0