(OK)(OK) mptcp_android-x86-kernel-4.4.12.txt




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
in PC
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# ls /opt/android-x86/

-------------------------------

[root@localhost android-x86-6.0-rc1]# pwd
/opt/android-x86/android-x86-6.0-rc1

[root@localhost android-x86-6.0-rc1]#


-------------------------------

[root@localhost kernel]# pwd
/opt/android-x86/android-x86-6.0-rc1/kernel

[root@localhost kernel]# ls
android     block    CREDITS        drivers   include  Kbuild   lib          mm      REPORTING-BUGS  security  usr
Android.mk  certs    crypto         firmware  init     Kconfig  MAINTAINERS  net     samples         sound     virt
arch        COPYING  Documentation  fs        ipc      kernel   Makefile     README  scripts         tools

[root@localhost kernel]#

-------------------------------

mptcp_v0.91.zip.part  download from  https://github.com/multipath-tcp/mptcp

[root@localhost mptcp_v0.91]# pwd
/opt/android-x86/mptcp_v0.91

[root@localhost mptcp_v0.91]# ls
arch     CREDITS        drivers   include  Kbuild   lib          mm      REPORTING-BUGS  security  usr
block    crypto         firmware  init     Kconfig  MAINTAINERS  net     samples         sound     virt
COPYING  Documentation  fs        ipc      kernel   Makefile     README  scripts         tools

[root@localhost mptcp_v0.91]# find . -name mptcp*

./include/net/mptcp.h
./include/net/mptcp_v4.h
./include/net/mptcp_v6.h
./include/net/netns/mptcp.h

./net/mptcp
./net/mptcp/mptcp_balia.c
./net/mptcp/mptcp_binder.c
./net/mptcp/mptcp_coupled.c
./net/mptcp/mptcp_ctrl.c
./net/mptcp/mptcp_fullmesh.c
./net/mptcp/mptcp_input.c
./net/mptcp/mptcp_ipv4.c
./net/mptcp/mptcp_ipv6.c
./net/mptcp/mptcp_ndiffports.c
./net/mptcp/mptcp_ofo_queue.c
./net/mptcp/mptcp_olia.c
./net/mptcp/mptcp_output.c
./net/mptcp/mptcp_pm.c
./net/mptcp/mptcp_redundant.c
./net/mptcp/mptcp_rr.c
./net/mptcp/mptcp_sched.c
./net/mptcp/mptcp_wvegas.c

[root@localhost mptcp_v0.91]# grep mptcp -R .|cut -d: -f1|uniq

./Documentation/networking/ip-sysctl.txt
./include/linux/tcp.h
./include/net/inet_sock.h
./include/net/net_namespace.h
./include/net/tcp.h
./net/Kconfig
./net/Makefile
./net/core/sock.c
./net/ipv4/af_inet.c
./net/ipv4/inet_connection_sock.c
./net/ipv4/ip_sockglue.c
./net/ipv4/syncookies.c
./net/ipv4/tcp.c
./net/ipv4/tcp_fastopen.c
./net/ipv4/tcp_input.c
./net/ipv4/tcp_ipv4.c
./net/ipv4/tcp_minisocks.c
./net/ipv4/tcp_output.c
./net/ipv4/tcp_timer.c
./net/ipv6/ipv6_sockglue.c
./net/ipv6/syncookies.c
./net/ipv6/tcp_ipv6.c


./include/net/mptcp.h
./include/net/mptcp_v4.h
./include/net/mptcp_v6.h
./include/net/netns/mptcp.h

./net/mptcp/Kconfig
./net/mptcp/Makefile
./net/mptcp/mptcp_balia.c
./net/mptcp/mptcp_binder.c
./net/mptcp/mptcp_coupled.c
./net/mptcp/mptcp_ctrl.c
./net/mptcp/mptcp_fullmesh.c
./net/mptcp/mptcp_input.c
./net/mptcp/mptcp_ipv4.c
./net/mptcp/mptcp_ipv6.c
./net/mptcp/mptcp_ndiffports.c
./net/mptcp/mptcp_ofo_queue.c
./net/mptcp/mptcp_olia.c
./net/mptcp/mptcp_output.c
./net/mptcp/mptcp_pm.c
./net/mptcp/mptcp_redundant.c
./net/mptcp/mptcp_rr.c
./net/mptcp/mptcp_sched.c
./net/mptcp/mptcp_wvegas.c

[root@localhost mptcp_v0.91]#
cp -a net/mptcp/ /opt/android-x86/android-x86-6.0-rc1/kernel/net/
cp include/net/mptcp.h /opt/android-x86/android-x86-6.0-rc1/kernel/include/net/
cp include/net/mptcp_v4.h /opt/android-x86/android-x86-6.0-rc1/kernel/include/net/
cp include/net/mptcp_v6.h /opt/android-x86/android-x86-6.0-rc1/kernel/include/net/
cp include/net/netns/mptcp.h /opt/android-x86/android-x86-6.0-rc1/kernel/include/net/netns/

-------------------------------
modify /opt/android-x86/android-x86-6.0-rc1/kernel/* abiding by /opt/android-x86/mptcp_v0.91/*
-------------------------------
[root@localhost mptcp_v0.91]# pwd
/opt/android-x86/mptcp_v0.91
[root@localhost mptcp_v0.91]# gedit


[root@localhost kernel]# touch timestamp.txt        // important

[root@localhost kernel]# pwd
/opt/android-x86/android-x86-6.0-rc1/kernel
[root@localhost kernel]# gedit

net/core/request_sock.c        reqsk_queue_alloc(struct request_sock_queue *queue, gfp_t flags)

net/ipv4/inet_connection_sock.c        no    u32 inet_synq_hash()

net/ipv4/syncookies.c        __u32 cookie_v4_init_sequence(const struct sk_buff *skb, __u16 *mssp)

net/ipv4/tcp_fastopen.c

net/ipv4/tcp_minisocks.c        if (!is_meta_sk(sk))

net/ipv4/tcp_output.c        void tcp_set_skb_tso_segs(struct sk_buff *skb, unsigned int mss_now)

net/ipv6/inet6_connection_sock.c    inet6_synq_hash()

-------------------------------
copy files to IBM Server
-------------------------------
[root@localhost android-x86-6.0-rc1]# pwd
/opt/android-x86/android-x86-6.0-rc1

[root@localhost android-x86-6.0-rc1]# ls
find-alter-files.sh  kernel  timestamp.txt

[root@localhost android-x86-6.0-rc1]# ./find-alter-files.sh kernel

[root@localhost android-x86-6.0-rc1]# scp -r /root/opt/android-x86/android-x86-6.0-rc1/kernel 10.109.253.80:/opt/android-x86/android-x86-6.0-rc1/

-------------------------------
copy files to IBM Server
-------------------------------

[root@localhost mptcp_v0.91]# pwd
/opt/android-x86/mptcp_v0.91

[root@localhost mptcp_v0.91]#

scp -r net/mptcp/ 10.109.253.80:/opt/android-x86/android-x86-6.0-rc1/kernel/net/
scp include/net/mptcp.h 10.109.253.80:/opt/android-x86/android-x86-6.0-rc1/kernel/include/net/
scp include/net/mptcp_v4.h 10.109.253.80:/opt/android-x86/android-x86-6.0-rc1/kernel/include/net/
scp include/net/mptcp_v6.h 10.109.253.80:/opt/android-x86/android-x86-6.0-rc1/kernel/include/net/
scp include/net/netns/mptcp.h 10.109.253.80:/opt/android-x86/android-x86-6.0-rc1/kernel/include/net/netns/


-------------------------------
[root@localhost android-x86-6.0-rc1]# tree /root/opt/android-x86/android-x86-6.0-rc1/kernel/
/root/opt/android-x86/android-x86-6.0-rc1/kernel/
├── Documentation
│   └── networking
│       └── ip-sysctl.txt
├── drivers
│   └── infiniband
│       └── hw
│           └── cxgb4
│               └── cm.c
├── include
│   ├── linux
│   │   ├── ipv6.h
│   │   ├── skbuff.h
│   │   └── tcp.h
│   ├── net
│   │   ├── inet6_connection_sock.h
│   │   ├── inet_common.h
│   │   ├── inet_connection_sock.h
│   │   ├── inet_sock.h
│   │   ├── net_namespace.h
│   │   ├── request_sock.h
│   │   ├── sock.h
│   │   ├── tcp.h
│   │   └── transp_v6.h
│   └── uapi
│       └── linux
│           ├── if.h
│           └── tcp.h
└── net
    ├── core
    │   ├── dev.c
    │   ├── request_sock.c
    │   ├── skbuff.c
    │   └── sock.c
    ├── ipv4
    │   ├── af_inet.c
    │   ├── inet_connection_sock.c
    │   ├── Kconfig
    │   ├── syncookies.c
    │   ├── tcp.c
    │   ├── tcp_fastopen.c
    │   ├── tcp_input.c
    │   ├── tcp_ipv4.c
    │   ├── tcp_minisocks.c
    │   ├── tcp_output.c
    │   └── tcp_timer.c
    ├── ipv6
    │   ├── addrconf.c
    │   ├── af_inet6.c
    │   ├── ipv6_sockglue.c
    │   ├── syncookies.c
    │   └── tcp_ipv6.c
    ├── Kconfig
    └── Makefile

15 directories, 38 files
[root@localhost android-x86-6.0-rc1]#


-------------------------------
in IBM Server
-------------------------------

[root@localhost kernel]# pwd
/opt/android-x86/android-x86-6.0-rc1/kernel

[root@localhost kernel]# make menuconfig

enable MPTCP protocol
    Networking support->Networking options->TCP/IP networking->MPTCP protocol (MPTCP)

use the Linked Increase Algorithm (LIA) Congestion Control, that guarantees fairness across a shared bottleneck
    Networking support->Networking options->TCP: advanced congestion control->MPTCP Linked Increase

    To enable it as the default congestion control, you should also enable it in "Default TCP congestion control", or you just type echo 'lia' > /proc/sys/net/ipv4/tcp_congestion_control in the running Kernel. Other options are "Opportunistic Linked Increase (olia)", "WVEGAS CONGESTION CONTROL (wvegas)" or "BALIA CONGESTION CONTROL (balia)".

Choose a path-manager, by enabling "MPTCP: advanced path-manager control"

enable Policy-Routing
    Networking support->Networking options->IP: advanced router->IP: policy routing (IP_MULTIPLE_TABLES)




[root@localhost android-x86-6.0-rc1]# pwd

/opt/android-x86/android-x86-6.0-rc1

[root@localhost android-x86-6.0-rc1]#

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64
export PATH=$JAVA_HOME/bin:$PATH
. build/envsetup.sh
lunch android_x86_64-userdebug
m -j32 iso_img



posted @ 2016-07-28 16:10  张同光  阅读(133)  评论(0编辑  收藏  举报