anshi233 / openwrt-bbr Goto Github PK
View Code? Open in Web Editor NEWenable bbr or bbr_mod(魔改BBR) on your openwrt/lede devices
enable bbr or bbr_mod(魔改BBR) on your openwrt/lede devices
Compile BBR on lastest Openwrt/LEDE release for kernel >= 4.14.* 中文:https://cosmiccat.net/2018/04/281/ Modified BBR: https://github.com/anshi233/BBR_MOD Usage: Get openwrt latest source code: git clone https://git.openwrt.org/openwrt/openwrt.git enter Openwrt source root git clone https://github.com/anshi233/Openwrt-BBR.git package/Openwrt-BBR To compile BBR orginal version: make menuconfig select Kernel modules --> Network Support ---> kmod-bbr make package/Openwrt-BBR/bbr_origin/compile V=99 Enable bbr on your device: install kmod-bbr ipk using opkg insmod bbr echo "bbr" > /etc/modules.d/bbr add "net.ipv4.tcp_congestion_control=bbr" to /etc/sysctl.conf save and run "sysctl -p" done To compile BBR modified version: make menuconfig select Kernel modules --> Network Support ---> kmod-bbr_mod make package/Openwrt-BBR/bbr_mod/compile V=99 Enable bbr on your device: install kmod-bbr_mod ipk using opkg insmod tcp_bbr_mod echo "tcp_bbr_mod" > /etc/modules.d/bbr add "net.ipv4.tcp_congestion_control=tcp_bbr_mod" to /etc/sysctl.conf save and run "sysctl -p" done
use ubuntu16.04 and openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64
$ make package/Openwrt-BBR/bbr_mod/compile V=99
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'r8169-firmware', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'e100-firmware', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'bnx2-firmware', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'ar3k-firmware', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'mwifiex-sdio-firmware', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'kmod-phy-bcm-ns-usb2', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'edgeport-firmware', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'kmod-phy-bcm-ns-usb3', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'prism54-firmware', which does not exist
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'rtl8192su-firmware', which does not exist
tmp/.config-package.in:36:warning: ignoring type redefinition of 'PACKAGE_libc' from 'boolean' to 'tristate'
tmp/.config-package.in:64:warning: ignoring type redefinition of 'PACKAGE_libgcc' from 'boolean' to 'tristate'
tmp/.config-package.in:149:warning: ignoring type redefinition of 'PACKAGE_libpthread' from 'boolean' to 'tristate'
#
# configuration written to .config
#
make[1]: Entering directory '/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64'
make[2]: Entering directory '/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/package/Openwrt-BBR/bbr_mod'
rm -f /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/.built
touch /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/.built_check
cat /dev/null > /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/target-mips_24kc_musl/pkginfo/bbr_mod.symvers; for subdir in .; do cat /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/target-mips_24kc_musl/pkginfo/*.symvers 2>/dev/null > /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/$subdir/Module.symvers; done
make -C "/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.9.120" ARCH="mips" CROSS_COMPILE="mips-openwrt-linux-musl-" SUBDIRS="/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod" EXTRA_CFLAGS=" " modules
make[3]: Entering directory '/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.9.120'
CC [M] /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.o
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c: In function 'bbr_is_next_cycle_phase':
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:446:3: error: implicit declaration of function 'tcp_stamp_us_delta'; did you mean 'skb_mstamp_us_delta'? [-Werror=implicit-function-declaration]
tcp_stamp_us_delta(tp->delivered_mstamp, bbr->cycle_mstamp) >
^~~~~~~~~~~~~~~~~~
skb_mstamp_us_delta
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c: In function 'bbr_advance_cycle_phase':
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:483:20: error: incompatible types when assigning to type 'u64 {aka long long unsigned int}' from type 'struct skb_mstamp'
bbr->cycle_mstamp = tp->delivered_mstamp;
^
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c: In function 'bbr_reset_lt_bw_sampling_interval':
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:532:31: error: incompatible type for argument 1 of 'div_u64'
bbr->lt_last_stamp = div_u64(tp->delivered_mstamp, USEC_PER_MSEC);
^~
In file included from ./include/linux/time.h:6:0,
from ./include/linux/stat.h:18,
from ./include/linux/module.h:10,
from /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:59:
./include/linux/math64.h:97:19: note: expected 'u64 {aka long long unsigned int}' but argument is of type 'struct skb_mstamp'
static inline u64 div_u64(u64 dividend, u32 divisor)
^~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c: In function 'bbr_lt_bw_sampling':
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:638:14: error: incompatible type for argument 1 of 'div_u64'
t = div_u64(tp->delivered_mstamp, USEC_PER_MSEC) - bbr->lt_last_stamp;
^~
In file included from ./include/linux/time.h:6:0,
from ./include/linux/stat.h:18,
from ./include/linux/module.h:10,
from /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:59:
./include/linux/math64.h:97:19: note: expected 'u64 {aka long long unsigned int}' but argument is of type 'struct skb_mstamp'
static inline u64 div_u64(u64 dividend, u32 divisor)
^~~~~~~
In file included from /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:60:0:
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c: In function 'bbr_update_min_rtt':
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:766:25: error: 'tcp_jiffies32' undeclared (first use in this function); did you mean 'get_jiffies_64'?
filter_expired = after(tcp_jiffies32,
^
./include/net/tcp.h:297:41: note: in definition of macro 'after'
#define after(seq2, seq1) before(seq1, seq2)
^~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:766:25: note: each undeclared identifier is reported only once for each function it appears in
filter_expired = after(tcp_jiffies32,
^
./include/net/tcp.h:297:41: note: in definition of macro 'after'
#define after(seq2, seq1) before(seq1, seq2)
^~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c: In function 'bbr_init':
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:845:23: error: 'tcp_jiffies32' undeclared (first use in this function); did you mean 'get_jiffies_64'?
bbr->min_rtt_stamp = tcp_jiffies32;
^~~~~~~~~~~~~
get_jiffies_64
In file included from ./arch/mips/include/asm/atomic.h:22:0,
from ./include/linux/atomic.h:4,
from ./arch/mips/include/asm/processor.h:14,
from ./arch/mips/include/asm/thread_info.h:15,
from ./include/linux/thread_info.h:58,
from ./include/asm-generic/preempt.h:4,
from ./arch/mips/include/generated/asm/preempt.h:1,
from ./include/linux/preempt.h:59,
from ./include/linux/spinlock.h:50,
from ./include/linux/seqlock.h:35,
from ./include/linux/time.h:5,
from ./include/linux/stat.h:18,
from ./include/linux/module.h:10,
from /mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:59:
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:15: error: 'struct sock' has no member named 'sk_pacing_status'; did you mean 'sk_pacing_rate'?
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^
./arch/mips/include/asm/cmpxchg.h:200:13: note: in definition of macro '__cmpxchg'
__typeof__(ptr) __ptr = (ptr); \
^~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:15: error: 'struct sock' has no member named 'sk_pacing_status'; did you mean 'sk_pacing_rate'?
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^
./arch/mips/include/asm/cmpxchg.h:200:27: note: in definition of macro '__cmpxchg'
__typeof__(ptr) __ptr = (ptr); \
^~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:15: error: 'struct sock' has no member named 'sk_pacing_status'; did you mean 'sk_pacing_rate'?
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^
./arch/mips/include/asm/cmpxchg.h:201:15: note: in definition of macro '__cmpxchg'
__typeof__(*(ptr)) __old = (old); \
^~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:33: error: 'SK_PACING_NONE' undeclared (first use in this function); did you mean 'PARITY_NONE'?
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^
./arch/mips/include/asm/cmpxchg.h:201:30: note: in definition of macro '__cmpxchg'
__typeof__(*(ptr)) __old = (old); \
^~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:15: error: 'struct sock' has no member named 'sk_pacing_status'; did you mean 'sk_pacing_rate'?
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^
./arch/mips/include/asm/cmpxchg.h:202:15: note: in definition of macro '__cmpxchg'
__typeof__(*(ptr)) __new = (new); \
^~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:49: error: 'SK_PACING_NEEDED' undeclared (first use in this function); did you mean 'SK_PACING_NONE'?
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^
./arch/mips/include/asm/cmpxchg.h:202:30: note: in definition of macro '__cmpxchg'
__typeof__(*(ptr)) __new = (new); \
^~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:15: error: 'struct sock' has no member named 'sk_pacing_status'; did you mean 'sk_pacing_rate'?
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^
./arch/mips/include/asm/cmpxchg.h:203:15: note: in definition of macro '__cmpxchg'
__typeof__(*(ptr)) __res = 0; \
^~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:207:17: error: invalid type argument of unary '*' (have 'int')
switch (sizeof(*(__ptr))) { \
^~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:143:11: error: invalid type argument of unary '*' (have 'int')
__typeof(*(m)) __ret; \
^~~~
./arch/mips/include/asm/cmpxchg.h:209:11: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:159:45: error: invalid type argument of unary '*' (have 'int')
: "=&r" (__ret), "=" GCC_OFF_SMALL_ASM() (*m) \
^
./arch/mips/include/asm/cmpxchg.h:209:11: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:160:26: error: invalid type argument of unary '*' (have 'int')
: GCC_OFF_SMALL_ASM() (*m), "Jr" (old), "Jr" (new) \
^
./arch/mips/include/asm/cmpxchg.h:209:11: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:176:45: error: invalid type argument of unary '*' (have 'int')
: "=&r" (__ret), "=" GCC_OFF_SMALL_ASM() (*m) \
^
./arch/mips/include/asm/cmpxchg.h:209:11: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:177:26: error: invalid type argument of unary '*' (have 'int')
: GCC_OFF_SMALL_ASM() (*m), "Jr" (old), "Jr" (new) \
^
./arch/mips/include/asm/cmpxchg.h:209:11: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:183:11: error: invalid type argument of unary '*' (have 'int')
__ret = *m; \
^
./arch/mips/include/asm/cmpxchg.h:209:11: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:185:4: error: invalid type argument of unary '*' (have 'int')
*m = new; \
^
./arch/mips/include/asm/cmpxchg.h:209:11: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:143:11: error: invalid type argument of unary '*' (have 'int')
__typeof(*(m)) __ret; \
^~~~
./arch/mips/include/asm/cmpxchg.h:213:12: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("lld", "scd", __ptr, \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:159:45: error: invalid type argument of unary '*' (have 'int')
: "=&r" (__ret), "=" GCC_OFF_SMALL_ASM() (*m) \
^
./arch/mips/include/asm/cmpxchg.h:213:12: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("lld", "scd", __ptr, \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:160:26: error: invalid type argument of unary '*' (have 'int')
: GCC_OFF_SMALL_ASM() (*m), "Jr" (old), "Jr" (new) \
^
./arch/mips/include/asm/cmpxchg.h:213:12: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("lld", "scd", __ptr, \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:176:45: error: invalid type argument of unary '*' (have 'int')
: "=&r" (__ret), "=" GCC_OFF_SMALL_ASM() (*m) \
^
./arch/mips/include/asm/cmpxchg.h:213:12: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("lld", "scd", __ptr, \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:177:26: error: invalid type argument of unary '*' (have 'int')
: GCC_OFF_SMALL_ASM() (*m), "Jr" (old), "Jr" (new) \
^
./arch/mips/include/asm/cmpxchg.h:213:12: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("lld", "scd", __ptr, \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:183:11: error: invalid type argument of unary '*' (have 'int')
__ret = *m; \
^
./arch/mips/include/asm/cmpxchg.h:213:12: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("lld", "scd", __ptr, \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
./arch/mips/include/asm/cmpxchg.h:185:4: error: invalid type argument of unary '*' (have 'int')
*m = new; \
^
./arch/mips/include/asm/cmpxchg.h:213:12: note: in expansion of macro '__cmpxchg_asm'
__res = __cmpxchg_asm("lld", "scd", __ptr, \
^~~~~~~~~~~~~
./arch/mips/include/asm/cmpxchg.h:227:33: note: in expansion of macro '__cmpxchg'
#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
^~~~~~~~~
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.c:863:2: note: in expansion of macro 'cmpxchg'
cmpxchg(&sk->sk_pacing_status, SK_PACING_NONE, SK_PACING_NEEDED);
^~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:302: recipe for target '/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.o' failed
make[4]: *** [/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/tcp_bbr_mod.o] Error 1
Makefile:1507: recipe for target '_module_/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod' failed
make[3]: *** [_module_/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod] Error 2
make[3]: Leaving directory '/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.9.120'
Makefile:46: recipe for target '/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/.built' failed
make[2]: *** [/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ar71xx_generic/bbr_mod/.built] Error 2
make[2]: Leaving directory '/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/package/Openwrt-BBR/bbr_mod'
Command exited with non-zero status 2
time: package/Openwrt-BBR/bbr_mod/compile#1.68#7.56#11.51
package/Makefile:107: recipe for target 'package/Openwrt-BBR/bbr_mod/compile' failed
make[1]: *** [package/Openwrt-BBR/bbr_mod/compile] Error 2
make[1]: Leaving directory '/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64'
/mnt/g/openwrt/sdk/openwrt-sdk-18.06.1-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/include/toplevel.mk:209: recipe for target 'package/Openwrt-BBR/bbr_mod/compile' failed
make: *** [package/Openwrt-BBR/bbr_mod/compile] Error 2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.