Repository : ssh://git@open-mesh.org/doc
On branch : master
commit a969f99a4f395d5f6866c95140134facd2c8a8ad Author: Sven Eckelmann sven@narfation.org Date: Thu Jul 13 20:24:59 2017 +0200
doc: Remove outdated/deprecated pages
Signed-off-by: Sven Eckelmann sven@narfation.org
a969f99a4f395d5f6866c95140134facd2c8a8ad attachments/outdated.svg | 81 --- .../Batman-adv-openwrt-config-sophisticated.rst | 139 ----- batman-adv/Filing.rst | 4 - batman-adv/Multi-link-optimizations-technical.rst | 159 ------ batman-adv/Multi-link-optimize-old.rst | 77 --- batman-adv/Openwrt-package-builder.rst | 2 - batman-adv/Outdated.rst | 1 - batman-adv/Release-todo.rst | 81 --- batman-adv/SubmittingLinux.rst | 563 --------------------- batman-adv/index.rst | 8 - open-mesh/Filing.rst | 1 - open-mesh/TemplateDeprecated.rst | 4 - open-mesh/index.rst | 2 - 13 files changed, 1122 deletions(-)
diff --git a/attachments/outdated.svg b/attachments/outdated.svg deleted file mode 100644 index 318a9f1..0000000 --- a/attachments/outdated.svg +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="408.92792mm" - height="33.169174mm" - viewBox="0 0 1448.9572 117.52857" - id="svg2" - version="1.1" - inkscape:version="0.91 r13725" - sodipodi:docname="outdated.svg"> - <defs - id="defs4" /> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="0.35" - inkscape:cx="223.76427" - inkscape:cy="-162.66429" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" - inkscape:window-width="1600" - inkscape:window-height="841" - inkscape:window-x="-4" - inkscape:window-y="0" - inkscape:window-maximized="1" /> - <metadata - id="metadata7"> - rdf:RDF - <cc:Work - rdf:about=""> - dc:formatimage/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - dc:title</dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(314.47856,-252.16935)"> - <rect - style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:6.55794382;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect4140" - width="1442.3993" - height="110.97063" - x="-311.19958" - y="255.44832" - ry="14.938354" /> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="-244.56049" - y="325.49417" - id="text4136" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4138" - x="-244.56049" - y="325.49417" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Sans;-inkscape-font-specification:'Sans Bold'">THE INFORMATION PROVIDED ON THIS PAGE IS OUTDATED</tspan></text> - </g> -</svg> diff --git a/batman-adv/Batman-adv-openwrt-config-sophisticated.rst b/batman-adv/Batman-adv-openwrt-config-sophisticated.rst deleted file mode 100644 index 9a861d1..0000000 --- a/batman-adv/Batman-adv-openwrt-config-sophisticated.rst +++ /dev/null @@ -1,139 +0,0 @@ -{{include(open-mesh:TemplateDeprecated)}} - -Example B.A.T.M.A.N. configuration snippets on OpenWRT -====================================================== - -**Note**: The script below was written for batman-adv 2012.4.0 and -older. With batman-adv 2013.0.0 came a new syntax as explained -[[Batman-adv-openwrt-config|here]]. - -3-radio mesh-node, with one open VAP for roaming clients access, and another with WPA -------------------------------------------------------------------------------------- - -You should run the script inside the OpenWRT host, assuming: - -- batman-adv is compiled in, or installed (opkg install - kmod-batman-adv). -- your uci config resembles a vanilla OpenWRT (no esoteric setups done - yet) -- all radios are connected -- drivers for all radios are compiled in or installed (ex. opkg install - kmod-ath9k-htc) -- all your radios/drivers support adhoc mode properly (unfortunately - most USB don't, as of May 2012) -- main radio (radio0) supports multiple, mixed VAPs (adhoc and ap) - -You can use this configuration (run this script) on a node with just 1 -(or 2) radio(s) too, but you'll experience bandwidth degradation when -passing through that point. - -:: - - #!/bin/sh - - ### Main radio0 will broadcast one AP with no encryption, another AP with WPA2, - ### and both interfaces will be bridged together with eth0 and bat0 - ### Another VAP in adhoc mode is added to main radio0, - ### as well as adhoc networks in radio1 and radio2 if they are present. - ### All three adhoc networks are added to bat0 and thus managed by batman-adv - - ### Node-specific settings - export HOSTNAME="meshnodeX" - export IP="10.x.x.x" - export WPA_ESSID="$HOSTNAME.wpa" - export WPA_KEY="password" - - ### These parameters should be consistent across all nodes - export NETMASK="255.0.0.0" - export DNS="" - export GATEWAY="" - export PUBLIC_ESSID="3radio.mesh" - export MESH0_BSSID="CA:CA:CA:CA:CA:00" - export MESH0_ESSID="mesh0" - export MESH0_CHANNEL="1" - export MESH1_MODE="adhoc" - export MESH1_BSSID="CA:CA:CA:CA:CA:01" - export MESH1_ESSID="mesh1" - export MESH1_CHANNEL="11" - export MESH2_MODE="adhoc" - export MESH2_BSSID="CA:CA:CA:CA:CA:02" - export MESH2_ESSID="mesh2" - export MESH2_CHANNEL="6" - - ### Ensure of populating /etc/config/wireless with - ### autodetected wifi-device entries (radioX) - ### to get all list_capab and hwmode correct. Otherwise - ### OpenWRT might fail to configure the radio properly. - wifi detect >>/etc/config/wireless - - ### Clear preexisting wifi-iface sections to avoid conflicts or dups - ( for i in `seq 0 9` ; do echo "delete wireless.@wifi-iface[]" ; done ) | uci batch -q - - ### Create /etc/config/batman-adv if it's not there yet. - uci import -m batman-adv - -What if radio1 and/or radio2 don't support adhoc mode properly? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If the driver is buggy, unstable, or throughput is lower in adhoc mode, -you can fallback to using an ap/client design, at the cost of -redundancy. - -simply customize the MESHx_ parameters on a per-node basis: - -:: - - ### Relative physical location: node1 <--ch6--> node2 <--ch11--> node3 - - # On node1 - export MESH1_MODE="client" - export MESH1_BSSID="" - export MESH1_ESSID="node2.ptp-channel6" - export MESH1_CHANNEL="6" - - # On node2 - export MESH1_MODE="ap" - export MESH1_BSSID="" - export MESH1_ESSID="node2.ptp-channel6" - export MESH1_CHANNEL="6" - export MESH2_MODE="client" - export MESH2_BSSID="" - export MESH2_ESSID="node3.ptp-channel11" - export MESH2_CHANNEL="11" - - # On node3 - export MESH1_MODE="ap" - export MESH1_BSSID="" - export MESH1_ESSID="node3.ptp-channel11" - export MESH1_CHANNEL="11" - -I like the script but I don't need/want an extra VAP with WPA2, how can I disable it? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Just remove or comment out the corresponding section - -:: - - #add wireless wifi-iface - #set wireless.@wifi-iface[-1].device=radio0 - #set wireless.@wifi-iface[-1].encryption=psk2 - #set wireless.@wifi-iface[-1].key='$WPA_KEY' - #set wireless.@wifi-iface[-1].network=lan - #set wireless.@wifi-iface[-1].mode=ap - #set wireless.@wifi-iface[-1].ssid='$WPA_ESSID' - -What if I am running batman-adv 2013.0.0 or later ? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Modify the bat0 and mesh0 networks to be as follows - -:: - - set network.bat0=interface - set network.bat0.ifname=bat0 - set network.bat0.proto=none - set network.bat0.mtu=1528 - set network.mesh0=interface - set network.mesh0.proto=batadv - set network.mesh0.mtu=1528 - set network.mesh0.mesh=bat0 diff --git a/batman-adv/Filing.rst b/batman-adv/Filing.rst deleted file mode 100644 index 614e8f9..0000000 --- a/batman-adv/Filing.rst +++ /dev/null @@ -1,4 +0,0 @@ -Filing -====== - -[[Doc-overview]] diff --git a/batman-adv/Multi-link-optimizations-technical.rst b/batman-adv/Multi-link-optimizations-technical.rst deleted file mode 100644 index c1ca315..0000000 --- a/batman-adv/Multi-link-optimizations-technical.rst +++ /dev/null @@ -1,159 +0,0 @@ -This page is OUTDATED! -====================== - -This page was superseded with an update for the feature, -[[Network-wide-multi-link-optimization|documentered here]] - -Multi-link Optimizations (technical documentation) -================================================== - -Mesh nodes with multiple physical links to other mesh nodes can use this -capability to gain various benefits, for example: - -| * bonding: use multiple links for the same data stream to boost - bandwidth -| * interface alternating: send on other interfaces (and therefore - other channels, if configured correctly) to minimize multi-hop - bandwidth degradation - -These features operate under the following premises: - -| * multiple links exist between two neighbors -| * the routing decision is independent of the link a packet is - received on - -Notably, these multi-interface features are independent of B.A.T.M.A.N. -and could work with any routing algorithm/metric. The routing software -only needs to detect that multiple peers belong to the same neighbor -mesh node. This is also not related to Multi-Path Routing, which would -require multiple independent links. - -The multi-link optimization procedure can be broken into these steps: - -#. detect that a neighbor is reachable via multiple links -#. select suitable candidates among the the available links -#. use these multiple links for various manipulations - -Link detection --------------- - -The detection part is specific to batman-adv. To understand how the link -detection works it is necessary to recall how batman-adv handles -multiple interfaces: - -The MAC address (Originator address) of the primary interface (usually -the first added interface) is known throughout the mesh as OGMs -containing the MAC address are broadcasted on all available interfaces -with a big TTL. This ensures mesh nodes only reachable via secondary -interfaces will know about this node. All remaining interfaces are -"secondary" interfaces which are only known in the single hop -neighborhood. The OGMs containing their MAC addresses are broadcasted -with a small TTL on the respective interface only. These secondary OGMs -uniquely serve the purpose of detecting local neighbors and estimate the -link quality towards them. - -*Note*: It does not matter which interface is the primary interface, it -is only used to have a single Originator known in the mesh, thus -avoiding OGM overhead. - -To detect whether or not a neighbor has multiple links towards a node it -suffices to analyze the incoming primary OGM. If the primary OGM is -received via multiple interfaces a node can (almost) safely assume -having multiple links towards its Originator. However, the OGM protocol -demands to forward all incoming OGMs for the path detection which could -confuse the multi-link detection because it has to distinguish single -hop neighbors from neighbors that are further away. To resolve the issue -the PRIMARIES_FIRST_HOP flag was introduced. Only primary OGMs are -allowed to carry it and every node removes the flag before -rebroadcasting the OGM. - -|image0| - -In the illustration, A receives the OGM via A1 (sent out by B1) and A2 -(sent out by B2) - and detects that these two Links A1-B1, A2-B2 exist. -These link candidates are stored and further filtered - -Candidate selection -------------------- - -To be usable for the target features, the links must have a similar -quality and should operate on a different frequency. Therefore, in -batman-adv only links are further considered if: - -| * the link quality is not much worse than the best link within a - certain TQ threshold (now: 50) -| * the link destination is different from the other already selected - candidates - e.g. if A1-B1 was selected, A2-B1 would be forbidden as - they would operate on the same frequency and therefore would interfere - with each other - -In the illustration below, A1-B1 and A2-B2 meet this criteria and are -therefore selected as candidates. - -|image1| - -Implementation note: Detected links are internally stored within the -originator structure of the primary originator. The candidates are -internally called "bonding candidates" - -Using the candidates --------------------- - -Once a neighbor mesh node has been selected by the classic routing -algorithm, the individual links can now be equally be selected to send -data to the next neighbor without tampering with routing. Possible -mechanisms exploiting this fact are described below. - -More Info can be found in the [[multi-link-optimize|Multi-Link -Optimization]] feature description page. - -Implementation note: the manipulations are hooked in the tx path when -selecting a neighbor in find_router() - -Interface Alternating -~~~~~~~~~~~~~~~~~~~~~ - -Interface Alternating basically tries to forward a packet on another -interface than on which the frame was received. This is only done if -suitable candidate with another source interface exists. - -|image2| - -This feature is always enabled. - -Bonding -~~~~~~~ - -In bonding, we split a single stream and distribute the packets over -multiple links. Packets are sent in a round-robin fashion over the -available candidates. This can be used to increase the throughput for -data streams from node A to node B. In a perfect environment the -throughput is n times higher, where n is the number of candidates. - -|image3| - -Practice shows however that the theoretical bandwidth gain is not -reached - even if the links are physically disjoint. E.g. using a 2.4 -GHz and a 5 GHz with a modulation of 54 Mbit/s both has shown to gain -150% bandwith boost over a single link, not 200% as expected in theory. -Possible reasons may be the packet reordering and slightly different -queue load caused by random backoffs, retries, etc. For these reasons, -bonding must be enabled explicitly. - -Discussion and further work ---------------------------- - -As explained, the bonding mode stays behind the theoretical -expectations. The packet loss based TQ metric is also not optimal for -selecting bonding candidates - a bandwidth based metric would be more -suitable for this task, as slow links will slow down the whole -aggregated connection. - -These shortcomings would be subject to further improvements of this -featureset. - -.. |image0| image:: primary_flag.png -.. |image1| image:: interface_detection.dia.jpg -.. |image2| image:: alternation_chain.dia.jpg -.. |image3| image:: bonding_roundrobin.dia.jpg - diff --git a/batman-adv/Multi-link-optimize-old.rst b/batman-adv/Multi-link-optimize-old.rst deleted file mode 100644 index d3acdbc..0000000 --- a/batman-adv/Multi-link-optimize-old.rst +++ /dev/null @@ -1,77 +0,0 @@ -This page is OUTDATED! -====================== - -This page was superseded with an update for the feature, -[[Multi-link-optimize|documentered here]] - -Multi-link Optimizations -======================== - -batman-adv is able to work on different interfaces - multiple WiFi -interfaces, but also Ethernet interfaces. If two or more nodes are -interconnected through batman-adv on multiple interfaces, they may -leverage some features to increase throughput, which are explained here. - -For more technical information, please see our -[[multi-link-optimizations-technical|technical multi-link -documentation]] - -Interface alternating ---------------------- - -With Interface alternating, batman-adv forwards frames on a different -interface than on which the frame was received. The purpose of this -alternation is to reduce interference (we can either send or receive on -a WiFi interface at one time) and to balance the network load better on -the available interfaces, and eventually increases throughput. The -mechanism is illustrated below for a chain of nodes with two interfaces. - -|image0| - -Interface alternating is only performed if the two candidate links to -the next hop have a similar quality. This feature is enabled by default -and does not have to be enabled manually. - -Interface bonding ------------------ - -When multiple links (with similar transmit quality) are available to the -same neighbor, batman-adv may distribute the frames to be sent over -these available links. The individual frames are sent over the links in -a round robin fashion as illustrated below. Using this technique, the -throughput may be increased by the number of links involved in the -bonding. In practical tests over two WiFi links, we have seen more than -50% of throughput gain. - -|image1| - -However, if the links have different speeds (batman-adv won't detect -that), the throughput may even decrease due to the slower link slowing -down the whole bonding. Therefore, this feature must be explicitly -enabled. One may enable it for certain nodes in a known environment, the -same setting does not have to be applied mesh wide. - -To enable bonding, use batctl: - -:: - - batctl bonding enable - -Throughput gain ---------------- - -At the [[open-mesh:2010-06-13-wbm2010-bracciano|WirelessBattleMesh v3]] -we performed throughput tests to measure the gain of the various modes: - -|image2| - -This graph shows a 3 node setup each with 2 802.11abg wifi interfaces -connected to the mesh network (1x 2.4GHz and 1x 5.8GHz). As you can see -the alternating mode is able to maintain the performance. The old -default behavior sometimes manages to maintain a similar level of -performance but is rather unstable. - -.. |image0| image:: alternation_chain.dia.jpg -.. |image1| image:: bonding_roundrobin.dia.jpg -.. |image2| image:: bonding_2hops.png - diff --git a/batman-adv/Openwrt-package-builder.rst b/batman-adv/Openwrt-package-builder.rst deleted file mode 100644 index d6580cf..0000000 --- a/batman-adv/Openwrt-package-builder.rst +++ /dev/null @@ -1,2 +0,0 @@ -A little script for building latest batman-adv versions compatible to -OpenWRT release versions. diff --git a/batman-adv/Outdated.rst b/batman-adv/Outdated.rst deleted file mode 100644 index ecbfa07..0000000 --- a/batman-adv/Outdated.rst +++ /dev/null @@ -1 +0,0 @@ -**** diff --git a/batman-adv/Release-todo.rst b/batman-adv/Release-todo.rst deleted file mode 100644 index 7d53f5d..0000000 --- a/batman-adv/Release-todo.rst +++ /dev/null @@ -1,81 +0,0 @@ -Release Checklist -================= - -This page contains a checklist of things that need to be done for a -release. - -Release Scheduling ------------------- - -|image0| - -- master branch is closed whenever net-next is closed -- master branch is released as feature release 20_ _.a after net-next - is closed (whenever Linus released a final Linux version) - - - actually only the patches which were really submitted should be - released (when possible) - -- maint branch is released on demand - - - for example after security issues - - when net.git/Linux was released with important fixes and users - cannot switch to new feature release (which is done at the same - time) - -Documentation -------------- - -- [ ] build changelog -- [ ] update README -- [ ] [[open-mesh:News-draft|write release announcement]] -- [ ] update wiki documentation - -Code ----- - -- [ ] make sure all code contains the release version strings -- [ ] update copyright years (if needed) -- [ ] check coverity scan status -- [ ] remove dead code (if any) -- [ ] check against kernel versions -- [ ] check that maint branch is merged in master -- [ ] check for `open patches on the - ml https://patchwork.open-mesh.org/project/b.a.t.m.a.n./list/`__ -- [ ] git tag release - -Release -------- - -- [ ] build package tar.gz and generate checksums -- [ ] move packages/checksums to stable/sources / create symlinks from - releases -- [ ] update download links in the [[open-mesh:Download|redmine - downloads page]] -- [ ] `Add news </projects/open-mesh/news/new>`__ based on - [[open-mesh:News-draft]] -- [ ] send release mail -- [ ] update IRC channel topic - -Distributions -------------- - -- [ ] update alfred openwrt package -- [ ] update batman-adv/batctl openwrt package -- [ ] update gentoo package -- [ ] update debian batctl package - -Aftershow ---------- - -- [ ] Merge current git tag into maint (must be -[STRIKEOUT:ff-only or - pre-tagging steps were done wrong] git merge --ff-only v20xx.x.x) -- [ ] close `current - version https://www.open-mesh.org/projects/batman-adv/settings/versions`__ -- [ ] add `new upcoming - version https://www.open-mesh.org/projects/batman-adv/versions/new`__ -- [ ] Mark issues from `Resolved to - Closed https://www.open-mesh.org/projects/batman-adv/issues?utf8=%E2%9C%93&set_filter=1&f%5B%5D=status_id&op%5Bstatus_id%5D=%3D&v%5Bstatus_id%5D%5B%5D=3`__ - -.. |image0| image:: /attachments/download/706/release_scheduling.svg - diff --git a/batman-adv/SubmittingLinux.rst b/batman-adv/SubmittingLinux.rst deleted file mode 100644 index aa80fbe..0000000 --- a/batman-adv/SubmittingLinux.rst +++ /dev/null @@ -1,563 +0,0 @@ -{{include(open-mesh:TemplateDeprecated)}} - -Submitting Patches to Linux -=========================== - -We currently submit patches for Linux from our next branch. I try to -give a short overview about it using some patches submitted to DaveM. - -Following steps must always be done: - -- get the linux-integration + batman-adv repository -- get the newest patches from next and maint -- check for compat code -- squash/cleanup patches -- fix "Fixes: " and other commit id references -- check if coccinelle prints new warnings -- check if all versions compile cleanly using sparse (cgcc) -- do a merge in a temporary branch and compare the result with - batman-adv:next.git -- check commit messages author/signed-off-by of patches -- check if all patches are checkpatch.pl clean -- prepare changelog -- create tag for david which includes the changelog -- format patches -- submit cover letter + patches -- wait until David accepted the pull request -- update base patches - -Rules for patch handling ------------------------- - -- new patches enter batman-adv.git master branch -- new patches are forwarded to David from master branch -- master branch is closed whenever net-next is closed -- new patches for master should be avoided when Linux -rc7/final is - near (which will cause the closing of net-next) - -Variables ---------- - -There are different basepoints/references used when preparing the - -- GIT_OM_SERVER - - - server from which the open-mesh.org repositories are retrieved - -- LM_MASTER - - - name of branch in batman-adv.git which points to the latest patch - already ported to linux-merge.git:batadv/net-next - -- LM_MAINT - - - name of branch in batman-adv.git which points to the latest patch - already ported to linux-merge.git:batadv/net - -- BASE_NETNEXT - - - some recent commit in net-next.git which should be used as base - commit for the patches which will be applied (chose wisely) - -- BASE_NET - - - some recent commit in net.git which should be used as base commit - for the patches which will be applied (chose wisely) - -:: - - GIT_OM_SERVER="git+ssh://git@open-mesh.org" - LM_MASTER=ecsv/lm_master - LM_MAINT=ecsv/lm_maint - BASE_NETNEXT=v4.12-rc1 - BASE_NET=v4.12-rc1 - -get the linux-integration + batman-adv repository -------------------------------------------------- - -First step is to actually get the repositories and create the branches. -You may also use the --reference option for linux-merge to speedup the -download when you already have some linux repository on you system - -:: - - git clone "${GIT_OM_SERVER}/linux-merge.git" linux-merge - git -C linux-merge remote add net-next git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git - git -C linux-merge remote add net git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git - git -C linux-merge remote update --prune - git -C linux-merge branch base/net --track origin/base/net - git -C linux-merge branch base/net-next --track origin/base/net-next - git -C linux-merge branch batadv/net --track origin/batadv/net - git -C linux-merge branch batadv/net-next --track origin/batadv/net-next - git clone "${GIT_OM_SERVER}/batman-adv.git" batman-adv - git -C batman-adv branch "${LM_MASTER}" --track "origin/${LM_MASTER}" - git -C batman-adv branch "${LM_MAINT}" --track "origin/${LM_MAINT}" - -The next step is to make sure that out linux-merge.git branches are -either on top or equal the chosen. It should also be checked first that -it is really a basepoint in the chosen branches - -:: - - git -C linux-merge remote update --prune - git -C linux-merge branch -r --contains="${BASE_NET}" net/master - git -C linux-merge branch -r --contains="${BASE_NETNEXT}" net-next/master - - git -C linux-merge checkout base/net - git -C linux-merge merge --ff-only "origin/base/net" - git -C linux-merge merge --ff-only "${BASE_NET}" - - git -C linux-merge checkout base/net-next - git -C linux-merge merge --ff-only "origin/base/net-next" - git -C linux-merge merge --ff-only "${BASE_NETNEXT}" - - git -C linux-merge push origin base/net base/net-next - -Problems during this have to either be fixed by using a correct base -commit, fixing the local branches or by rebasing the remaining patches -on the batadv/* branches on top of the base commits (think twice before -rebasing). - -The same has to be done for the batman-adv repository. Here it is is -important to update the maint branch manually after releases. Otherwise -it would look like patches which were already submitted to net-next have -to be send again to net. But make sure that there are no actual fixes -between ${LM_MAINT} and origin/maint which were missed earlier - -:: - - git -C batman-adv remote update --prune - - git -C batman-adv checkout "${LM_MAINT}" - git -C batman-adv merge --ff-only "origin/${LM_MAINT}" - - git -C batman-adv checkout "${LM_MASTER}" - git -C batman-adv merge --ff-only "origin/${LM_MASTER}" - -get the newest patches ----------------------- - -from master -~~~~~~~~~~~ - -:: - - cd batman-adv - git checkout -B rebase --no-track origin/master - GIT_SEQUENCE_EDITOR="sh -c 'git rev-list --reverse --no-merges '\''${LM_MASTER}..origin/master'\'' --not origin/maint|awk '\''{ print "pick "$1}'\'' > $1' $@" \ - git rebase -i origin/maint --onto "${LM_MASTER}" --no-ff - -This patches have to be cleaned up. First these these changes have to be -squashed so that "Fixes: " patches are squashed together with the -patches which introduced the problem (when they exist). Also compat code -has to be removed. Both things can be identified with git log: - -Patches with "Fixes: " lines: - -:: - - git log --grep='^Fixes: ' "${LM_MASTER}"..rebase - -The extra stuff which should not be submitted can be identified via: - -:: - - git log --stat --oneline "${LM_MASTER}"..rebase -- compat-sources compat-include README.external CHANGELOG Makefile .gitignore .gitattributes compat.h gen-compat-autoconf.sh README - -This can all be cleaned up by using git-rebase and then marking the -relevant commits for editing. It may also be a good idea to move patches -like "Start-new-development-cycle" to the front - -:: - - git rebase -i "${LM_MASTER}" - - # edit the commit message to point to the correct upstream commit -- just search in linux-merge for the commit name - git commit --amend - - # remove changes either reverting to previous versions (new files have to be deleted) - git checkout HEAD~1 compat-sources compat-include README.external CHANGELOG Makefile .gitignore .gitattributes compat.h gen-compat-autoconf.sh README - - # delete some new file (example) - git rm -f compat-include/net/genetlink.h - - # at the end continue with the rebase to the next commit - git rebase --continue - -It is a good idea to check again if some file was missed. It is also a -good idea to manually check the commit messages for other commit -references: - -:: - - git log --stat "${LM_MASTER}"..rebase - -If everything looks good then these patches should be formatted (make -sure that you don't have some old patches in the directory). The branch -of already prepared patches has to be updated - -:: - - git format-patch -s "${LM_MASTER}"..rebase - git checkout "${LM_MASTER}" - git merge --ff-only origin/master - git push origin "${LM_MASTER}" - -Save the generated patches to a save place. Lets call this place -$EXPORTED_PATCHES_MASTER - -from maint -~~~~~~~~~~ - -Make sure that ${LM_MASTER} was updated after a release correctly and -${LM_MASTER}..origin/maint is containing patches which were send to -net-next - -The rest of the rebase process works similar to the next process - -:: - - cd batman-adv - git checkout -B rebase --no-track origin/maint - git rebase -i "${LM_MAINT}" - -This patches have to be cleaned up. First these these changes have to be -squashed so that "Fixes: " patches are squashed together with the -patches which introduced the problem (when they exist). Also compat code -has to be removed. Both things can be identified with git log: - -Patches with "Fixes: " lines: - -:: - - git log --grep='^Fixes: ' "${LM_MAINT}"..rebase - -The extra stuff which should not be submitted can be identified via: - -:: - - git log --stat --oneline "${LM_MAINT}"..rebase -- compat-sources compat-include README.external CHANGELOG Makefile .gitignore .gitattributes compat.h gen-compat-autoconf.sh README - -This can all be cleaned up by using git-rebase and then marking the -relevant commits for editing. It may also be a good idea to move patches -like "Start-new-development-cycle" to the front - -:: - - git rebase -i "${LM_MAINT}" - - # edit the commit message to point to the correct upstream commit -- just search in linux-merge for the commit name - git commit --amend - - # remove changes either reverting to previous versions (new files have to be deleted) - git checkout HEAD~1 compat-sources compat-include README.external CHANGELOG Makefile .gitignore .gitattributes compat.h gen-compat-autoconf.sh README - - # delete some new file (example) - git rm -f compat-include/net/genetlink.h - - # at the end continue with the rebase to the next commit - git rebase --continue - -It is a good idea to check again if some file was missed. It is also a -good idea to manually check the commit messages for other commit -references or missing signed-off-by: - -:: - - git log --stat "${LM_MAINT}"..rebase - -If everything looks good then these patches should be formatted (make -sure that you don't have some old patches in the directory). The branch -of already prepared patches has to be updated - -:: - - git format-patch -s "${LM_MAINT}"..rebase - git checkout "${LM_MAINT}" - git merge --ff-only origin/maint - git push origin "${LM_MAINT}" - -Save the generated patches to a save place. Lets call this place -$EXPORTED_PATCHES_MAINT - -Apply patches on linux-merge ----------------------------- - -from master -~~~~~~~~~~~ - -The patches were already exported. So they only have to be applied in -the correct branch - -:: - - cd linux-merge - git checkout batadv/net-next - git merge --ff-only origin/batadv/net-next - ./scripts/checkpatch --strict "${EXPORTED_PATCHES_MASTER}"/*.patch - git am -s "${EXPORTED_PATCHES_MASTER}"/*.patch - git push origin batadv/net-next - -from maint -~~~~~~~~~~ - -The patches were already exported. So they only have to be applied in -the correct branch - -:: - - cd linux-merge - git checkout batadv/net - git merge --ff-only origin/batadv/net - ./scripts/checkpatch --strict "${EXPORTED_PATCHES_MAINT}"/*.patch - git am -s "${EXPORTED_PATCHES_MAINT}"/*.patch - git push origin batadv/net - -check if coccinelle prints new warnings ---------------------------------------- - -:: - - make coccicheck KBUILD_EXTMOD=net/batman-adv/ - -check if all versions compile cleanly using sparse (cgcc) ---------------------------------------------------------- - -First the linux-merge build environment has to be prepared - -:: - - make allnoconfig - cat >> .config << EOF - CONFIG_SMP=y - CONFIG_EMBEDDED=n - CONFIG_EXPERT=n - CONFIG_MODULES=y - CONFIG_MODULE_UNLOAD=y - CONFIG_MODVERSIONS=y - CONFIG_MODULE_SRCVERSION_ALL=y - - CONFIG_CRC16=y - CONFIG_LIBCRC32C=y - CONFIG_NET=y - CONFIG_INET=y - CONFIG_DEBUG_FS=y - CONFIG_IPV6=y - CONFIG_BRIDGE=y - CONFIG_VLAN_8021Q=y - CONFIG_WIRELESS=y - CONFIG_CFG80211=y - CONFIG_CFG80211=y - - CONFIG_BATMAN_ADV=y - CONFIG_BATMAN_ADV_BATMAN_V=y - CONFIG_BATMAN_ADV_BLA=y - CONFIG_BATMAN_ADV_DAT=y - CONFIG_BATMAN_ADV_NC=y - CONFIG_BATMAN_ADV_MCAST=y - - CONFIG_CC_STACKPROTECTOR_STRONG=y - CONFIG_LOCKUP_DETECTOR=y - CONFIG_DETECT_HUNG_TASK=y - CONFIG_SCHED_STACK_END_CHECK=y - CONFIG_DEBUG_RT_MUTEXES=y - CONFIG_DEBUG_SPINLOCK=y - CONFIG_DEBUG_MUTEXES=y - CONFIG_PROVE_LOCKING=y - CONFIG_LOCK_STAT=y - CONFIG_DEBUG_LOCKDEP=y - CONFIG_DEBUG_ATOMIC_SLEEP=y - CONFIG_DEBUG_LIST=y - CONFIG_DEBUG_PI_LIST=y - CONFIG_DEBUG_SG=y - CONFIG_DEBUG_NOTIFIERS=y - CONFIG_PROVE_RCU_REPEATEDLY=y - CONFIG_SPARSE_RCU_POINTER=y - CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y - CONFIG_X86_VERBOSE_BOOTUP=y - CONFIG_DEBUG_RODATA=y - CONFIG_DEBUG_RODATA_TEST=n - CONFIG_DEBUG_SET_MODULE_RONX=y - CONFIG_PAGE_EXTENSION=y - CONFIG_DEBUG_PAGEALLOC=y - CONFIG_DEBUG_OBJECTS=y - CONFIG_DEBUG_OBJECTS_FREE=y - CONFIG_DEBUG_OBJECTS_TIMERS=y - CONFIG_DEBUG_OBJECTS_WORK=y - CONFIG_DEBUG_OBJECTS_RCU_HEAD=y - CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y - CONFIG_DEBUG_KMEMLEAK=y - CONFIG_DEBUG_STACK_USAGE=y - CONFIG_DEBUG_STACKOVERFLOW=y - CONFIG_DEBUG_INFO=y - CONFIG_DEBUG_INFO_DWARF4=y - CONFIG_GDB_SCRIPTS=y - CONFIG_READABLE_ASM=y - CONFIG_STACK_VALIDATION=y - CONFIG_WQ_WATCHDOG=y - CONFIG_DEBUG_KOBJECT_RELEASE=y - CONFIG_DEBUG_WQ_FORCE_RR_CPU=y - CONFIG_OPTIMIZE_INLINING=y - EOF - make olddefconfig - make -j$(nproc || echo 1) - -Then the rebuild has to be done between batadv/net-next and -base/net-next (or between batadv/net and base/net) for each commit: - -:: - - git checkout batadv/net-next - git rebase -i base/net-next -x 'make C=1' - -check if all patches are in linux-merge ---------------------------------------- - -TODO - -submit patches --------------- - -TODO - -A good commit in has to be chosen. We should not send more than 20 -patches for net-next for each pull request. A lower number (6?) of -patches should be used for net. - -Lets assume a good commit is 4e3e823b5a503235630921287f130e1d8d22d200 - -:: - - TAG=batadv-next-for-davem-20160701 - git tag -s ${TAG} 4e3e823b5a503235630921287f130e1d8d22d200 - # write a good commit message - git push origin ${TAG} - -The patches then have to be prepared and the cover letter has to be -created for the pull request. For net-next it would look like: - -:: - - TAG=batadv-next-for-davem-20160701 - git format-patch --cover-letter base/net-next..${TAG} - sed -i '/*** BLURB HERE ***/q' 0000-cover-letter.patch - git request-pull base/net-next git://git.open-mesh.org/linux-merge.git ${TAG} >> 0000-cover-letter.patch - # write cover letter - git send-email --to=davem@davemloft.net --cc=netdev@vger.kernel.org --cc=b.a.t.m.a.n@lists.open-mesh.org 00*.patch - -or for net: - -:: - - TAG=batadv-net-for-davem-20160701 - git format-patch --cover-letter base/net..${TAG} - sed -i '/*** BLURB HERE ***/q' 0000-cover-letter.patch - git request-pull base/net git://git.open-mesh.org/linux-merge.git ${TAG} >> 0000-cover-letter.patch - # write cover letter - git send-email --to=davem@davemloft.net --cc=netdev@vger.kernel.org --cc=b.a.t.m.a.n@lists.open-mesh.org 00*.patch - -Now I will write something like - -:: - - Subject: pull request for net-next: batman-adv 2016-07-01 - - Hi David, - - we are a bit late to submit our feature patches, but I hope we make it in time. - Antonio is taking a pause in his upstream work, so I'll be submitting our - batman-adv patches for now. It is my first time, so please bear with me. - - Please pull or let me know of any problem! - - Thank you, - Simon - - The following changes since commit 99860208bc62d8ebd5c57495b84856506fe075bc: - - sched: remove NET_XMIT_POLICED (2016-06-12 22:02:11 -0400) - - are available in the git repository at: - - git://git.open-mesh.org/linux-merge.git tags/batadv-next-for-davem-20160701 - - for you to fetch changes up to 4e3e823b5a503235630921287f130e1d8d22d200: - - batman-adv: Add debugfs table for mcast flags (2016-06-30 10:29:43 +0200) - - ---------------------------------------------------------------- - This feature patchset includes the following changes: - - - two patches with minimal clean up work by Antonio Quartulli and - Simon Wunderlich - - - eight patches of B.A.T.M.A.N. V, API and documentation clean - up work, by Antonio Quartulli and Marek Lindner - - - Andrew Lunn fixed the skb priority adoption when forwarding - fragmented packets (two patches) - - - Multicast optimization support is now enabled for bridges which - comes with some protocol updates, by Linus Luessing - - ---------------------------------------------------------------- - Andrew Lunn (2): - batman-adv: Set skb priority in fragments - batman-adv: Include frame priority in fragment header - - Antonio Quartulli (4): - batman-adv: statically print gateway table header - batman-adv: remove ogm_emit and ogm_schedule API calls - batman-adv: remove useless inline attribute for sysfs helper function - batman-adv: move GW mode and selection class to private data structure - - Linus Lüssing (4): - batman-adv: Always flood IGMP/MLD reports - batman-adv: Add multicast optimization support for bridged setups - batman-adv: Adding logging of mcast flag changes - batman-adv: Add debugfs table for mcast flags - - Marek Lindner (5): - batman-adv: document sysfs files in alphabetical order - batman-adv: update elp interval documentation - batman-adv: refactor batadv_neigh_node_* functions to follow common - style - batman-adv: remove unused callback from batadv_algo_ops struct - batman-adv: init ELP tweaking options only once - - Simon Wunderlich (2): - batman-adv: Start new development cycle - batman-adv: remove unused vid local variable in tt seq print - - .../ABI/testing/sysfs-class-net-batman-adv | 20 +- - net/batman-adv/Kconfig | 2 +- - net/batman-adv/bat_algo.h | 7 +- - net/batman-adv/bat_iv_ogm.c | 72 ++- - net/batman-adv/bat_v.c | 29 +- - net/batman-adv/bat_v_elp.c | 4 +- - net/batman-adv/bat_v_ogm.c | 4 +- - net/batman-adv/debugfs.c | 23 + - net/batman-adv/fragmentation.c | 12 +- - net/batman-adv/gateway_client.c | 15 +- - net/batman-adv/gateway_common.c | 6 +- - net/batman-adv/hard-interface.c | 6 +- - net/batman-adv/main.c | 2 - - net/batman-adv/main.h | 6 +- - net/batman-adv/multicast.c | 499 +++++++++++++++++++-- - net/batman-adv/multicast.h | 3 + - net/batman-adv/originator.c | 40 +- - net/batman-adv/originator.h | 6 +- - net/batman-adv/packet.h | 7 +- - net/batman-adv/routing.c | 2 + - net/batman-adv/send.c | 61 +-- - net/batman-adv/send.h | 4 +- - net/batman-adv/soft-interface.c | 10 +- - net/batman-adv/sysfs.c | 22 +- - net/batman-adv/translation-table.c | 2 - - net/batman-adv/types.h | 32 +- - 26 files changed, 704 insertions(+), 192 deletions(-) - -update base patches after successful pull request -------------------------------------------------- - -TODO diff --git a/batman-adv/index.rst b/batman-adv/index.rst index 5ae2227..a9a29f4 100644 --- a/batman-adv/index.rst +++ b/batman-adv/index.rst @@ -10,7 +10,6 @@ Contents: Bandwidth_meter_technical Bandwidth_meter_tests Batman-adv-openwrt-config - Batman-adv-openwrt-config-sophisticated BATMAN_V BATMAN_V_Tests Batman_v_throughput_experimental @@ -33,7 +32,6 @@ Contents: ELP Extended-isolation Faq - Filing Fragmentation-technical Gateways Kmalloc-kmem-cache-tests @@ -46,21 +44,15 @@ Contents: Multicast-optimizations-report-suppresion Multicast-optimizations Multicast-optimizations-tech - Multi-link-optimizations-technical - Multi-link-optimize-old Multi-link-optimize NetworkCoding NetworkCoding-technical Network-wide-multi-link-optimization OGM OGMv2 - Openwrt-package-builder - Outdated Packet-types Quick-start-guide - Release-todo RIP - SubmittingLinux Throughput_meter Troubleshooting TT-Flags diff --git a/open-mesh/Filing.rst b/open-mesh/Filing.rst deleted file mode 100644 index 2ba7245..0000000 --- a/open-mesh/Filing.rst +++ /dev/null @@ -1 +0,0 @@ -[[WikiStart]] diff --git a/open-mesh/TemplateDeprecated.rst b/open-mesh/TemplateDeprecated.rst deleted file mode 100644 index bbee036..0000000 --- a/open-mesh/TemplateDeprecated.rst +++ /dev/null @@ -1,4 +0,0 @@ -|image0| - -.. |image0| image:: /attachments/download/543/outdated.svg - diff --git a/open-mesh/index.rst b/open-mesh/index.rst index 6d4eafc..70813e9 100644 --- a/open-mesh/index.rst +++ b/open-mesh/index.rst @@ -16,7 +16,6 @@ Contents: Experience FAQ FFTrace - Filing Gsoc2010-ideas Gsoc2011-ideas Gsoc2011-roadmap @@ -32,7 +31,6 @@ Contents: News-draft ResearchProposals Routing_scenarios - TemplateDeprecated The-olsr-story UsingBatmanGit Wbmv4-batmandev-agenda