From 905aee70989471603fc7ad986c9b8cad1d28d986 Mon Sep 17 00:00:00 2001
From: gauthier <gauthier@mycompany.com>
Date: Mon, 27 Jul 2015 15:10:28 +0000
Subject: [PATCH] moved NEMO_SHO from trunk to extras branch

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7750 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 openair3/NEMO_SHO/COPYING                     |  674 --
 openair3/NEMO_SHO/README                      |    6 -
 ...-daemon-umip-0.4-nasmesh-2009-may-12.patch |  301 -
 .../mipv6-daemon-umip-0.4-nepl-20080108.patch | 2862 ---------
 ...6-daemon-umip-0.4-nepl-mcoa-20080108.patch | 5535 -----------------
 .../mipv6-daemon-umip-0.4-sho-20080331.patch  |  978 ---
 .../NEMO_SHO/mipv6-daemon-umip-0.4.tar.gz     |  Bin 398552 -> 0 bytes
 7 files changed, 10356 deletions(-)
 delete mode 100644 openair3/NEMO_SHO/COPYING
 delete mode 100644 openair3/NEMO_SHO/README
 delete mode 100644 openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nasmesh-2009-may-12.patch
 delete mode 100755 openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-20080108.patch
 delete mode 100755 openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-mcoa-20080108.patch
 delete mode 100755 openair3/NEMO_SHO/mipv6-daemon-umip-0.4-sho-20080331.patch
 delete mode 100755 openair3/NEMO_SHO/mipv6-daemon-umip-0.4.tar.gz

diff --git a/openair3/NEMO_SHO/COPYING b/openair3/NEMO_SHO/COPYING
deleted file mode 100644
index 94a9ed024d..0000000000
--- a/openair3/NEMO_SHO/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-  You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your program
-into proprietary programs.  If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/openair3/NEMO_SHO/README b/openair3/NEMO_SHO/README
deleted file mode 100644
index 8753e997a9..0000000000
--- a/openair3/NEMO_SHO/README
+++ /dev/null
@@ -1,6 +0,0 @@
-THE APPLY ORDER MUST BE THE FOLLOWING:
-mmipv6-daemon-umip-0.4-nepl-20080108.patch
-mmipv6-daemon-umip-0.4-nepl-mcoa-20080108.patch
-mmipv6-daemon-umip-0.4-sho-20080331.patch
-mmipv6-daemon-umip-0.4-nasmesh-2009-may-12.patch
-
diff --git a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nasmesh-2009-may-12.patch b/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nasmesh-2009-may-12.patch
deleted file mode 100644
index abb8f76f8a..0000000000
--- a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nasmesh-2009-may-12.patch
+++ /dev/null
@@ -1,301 +0,0 @@
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho: config.h
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho: config.log
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho: config.status
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/libmissing: .deps
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/libmissing: Makefile
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/libnetlink: .deps
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/libnetlink: Makefile
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho: Makefile
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/man: Makefile
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: .deps
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: gram.c
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: gram.h
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: Makefile
-diff -ur mipv6-daemon-umip-0.4.all.paches.original/src/mh.c mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src/mh.c
---- mipv6-daemon-umip-0.4.all.paches.original/src/mh.c	2009-05-12 14:38:53.000000000 +0200
-+++ mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src/mh.c	2009-05-12 14:33:25.000000000 +0200
-@@ -816,8 +816,11 @@
- 	}
- 
- 	pthread_mutex_lock(&mh_sock.send_mutex);
--	setsockopt(mh_sock.fd, IPPROTO_IPV6, IPV6_PKTINFO,
-+	ret = setsockopt(mh_sock.fd, IPPROTO_IPV6, IPV6_PKTINFO,
- 		   &on, sizeof(int));
-+	if (ret < 0)
-+		dbg("setsockopt: %s\n", strerror(errno));
-+
- 	ret = sendmsg(mh_sock.fd, &msg, 0);
- 	if (ret < 0)
- 		dbg("sendmsg: %s\n", strerror(errno));
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: mh.c~
-diff -ur mipv6-daemon-umip-0.4.all.paches.original/src/mn.c mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src/mn.c
---- mipv6-daemon-umip-0.4.all.paches.original/src/mn.c	2009-05-12 14:38:53.000000000 +0200
-+++ mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src/mn.c	2009-05-12 14:33:25.000000000 +0200
-@@ -130,6 +130,8 @@
- 	 * is the BID number. BID must be between 
- 	 * BCE_TABLE_MIN and BCE_TABLE_MAX
- 	 */
-+        MDBG("--------------------------------------\n");
-+        MDBG("mcoa_mn_init_rt_table()\n");
- 	assert(bule);
- 
- 	/* If BID is not assigned, default table is taken */
-@@ -147,6 +149,8 @@
- {
- 	int ret = -1;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_block_rule_del()\n");
- 	if (!(hai->home_block & HOME_ADDR_RULE_BLOCK)) {
- 		MDBG("blackhole is not set.\n");
- 		return ret;
-@@ -166,6 +170,8 @@
- {
- 	int ret = -1;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_block_rule_add()\n");
- 	if (hai->home_block & HOME_ADDR_RULE_BLOCK) {
- 		MDBG("blackhole is already set.\n");
- 		return ret;
-@@ -182,6 +188,8 @@
- 
- static void bul_expire(struct tq_elem *tqe)
- {
-+        MDBG("--------------------------------------\n");
-+        MDBG("bul_expire()\n");
- 	pthread_rwlock_wrlock(&mn_lock);
- 	if (!task_interrupted()) {
- 		struct bulentry *bule = tq_data(tqe, struct bulentry, tqe);
-@@ -205,6 +213,8 @@
- 	uint16_t flags = e->flags;
- 	uint16_t bid = e->bid;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("bule_invalidate()\n");
- 	if (type != BUL_ENTRY) 
- 		return;
- 
-@@ -307,6 +317,8 @@
- 	struct in6_addr *raddr = &ip6h->ip6_dst;
- 	struct in6_addr addr;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_recv_param_prob()\n");
- 	/* We only handle code 1 & 2 messages. */
- 	if (ih->icmp6_code != ICMP6_PARAMPROB_NEXTHEADER &&
- 	    ih->icmp6_code != ICMP6_PARAMPROB_OPTION)
-@@ -623,6 +635,8 @@
-  */
- static int mn_dereg_bule(struct bulentry *bule)
- {
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_dereg_bule()\n");
- 	if (bule->type != NON_MIP_CN_ENTRY) {
- 		bule->seq++;
- 		bule->mcoa_dereg = 0;
-@@ -637,6 +651,8 @@
- {
- 	struct bulentry *bule = vbule;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_dereg()\n");
- 	if (bule->type == BUL_ENTRY) {
- 		if (!(bule->flags & IP6_MH_BU_HOME)) {
- 			bule->dereg = 1;
-@@ -684,6 +700,8 @@
- {
- 	int dhaad = dhaad_home_reg_failed(hai);
- 	int type = FLUSH_VALID;
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_change_ha()\n");
- 	if (hai->home_reg_status != HOME_REG_NONE)
- 		bul_iterate(&hai->bul, _bul_flush, &type);
- 	syslog(LOG_ERR,
-@@ -820,6 +838,8 @@
- 	uint32_t valid = PREFIX_LIFETIME_INFINITE;
- 	int plen = (mha->if_next == hai->if_tunnel ? 128 : hai->plen);
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mv_hoa\n");
- 	clock_gettime(CLOCK_REALTIME, &now);
- 
- 	if (hai->lladdr_comp && rta_tb[IFA_CACHEINFO] != NULL) {
-@@ -889,6 +909,8 @@
- {
- 	struct list_head *l;
- 	struct prefix_list_entry *pe;
-+        MDBG("--------------------------------------\n");
-+        MDBG("nemo_mr_tnl_routes_add\n");
- 	list_for_each(l, &hai->mob_net_prefixes) {
- 		struct prefix_list_entry *p;
- 		p = list_entry(l, struct prefix_list_entry, list);
-@@ -917,6 +939,8 @@
- 			    int ifindex, int all, int rtable)
- {
- 	int err = 0;
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_tnl_state_add\n");
- 	if (hai->home_reg_status != HOME_REG_NONE) {
- 		if ((err = mn_ro_pol_add(hai, ifindex, all)) < 0)
- 			return err;
-@@ -939,6 +963,8 @@
- 				   int ifindex, int rtable)
- {
- 	struct list_head *l;
-+        MDBG("--------------------------------------\n");
-+        MDBG("nemo_mr_tnl_routes_del\n");
- 	list_for_each(l, &hai->mob_net_prefixes) {
- 		struct prefix_list_entry *p;
- 		p = list_entry(l, struct prefix_list_entry, list);
-@@ -1001,6 +1027,8 @@
- 				 struct home_addr_info *hai,
- 				 struct timespec *lifetime)
- {
-+        MDBG("--------------------------------------\n");
-+        MDBG("process_first_home_bu\n");
- 	int err = 0;
- 	assert(hai->current_coa);
- 	bule->type = BUL_ENTRY;
-@@ -1090,6 +1118,8 @@
- 	int homereg_expired = 0;
- 	movement_t type_movement = MIP6_TYPE_MOVEMENT_UNKNOWN;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_send_home_bu\n");
- 	TRACE;
- 	assert(hai->current_coa);
- 
-@@ -1285,6 +1315,8 @@
- 
- void mn_send_cn_bu(struct bulentry *bule)
- {
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_send_cn_bu\n");
- 	/* Rate limiting CN registration binding updates
- 	   is necessary for multihomed MNs */
- 	if (mn_bu_ratelimit(bule))
-@@ -1487,6 +1519,8 @@
- 	struct timespec now, ba_lifetime, br_adv;
- 	uint16_t seqno, bid;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_recv_ba\n");
- 	TRACE;
- 
- 	if (len < sizeof(struct ip6_mh_binding_ack) ||
-@@ -1875,6 +1909,8 @@
- 					struct home_addr_info *hai,
- 					int replace)
- {
-+        MDBG("--------------------------------------\n");
-+        MDBG("mcoa_iface_dflt_hoa_rule_del\n");
- 	/* MCoA: Delete the default HoA rule */
- 	rule_del(NULL, bule->bid, IP6_RULE_PRIO_MIP6_HOA_OUT, 
- 		0, RTN_UNICAST, &hai->hoa.addr, 128,
-@@ -1900,6 +1936,8 @@
- 					  struct prefix_list_entry *p,
- 					  int replace)
- {
-+        MDBG("--------------------------------------\n");
-+        MDBG("mcoa_iface_dflt_mnp_rules_del\n");
- 	/* MCoA: Delete the default MNP rule */
- 	rule_del(NULL, bule->bid, IP6_RULE_PRIO_MIP6_FWD_MCOA, 
- 		0, RTN_UNICAST, &p->ple_prefix, p->ple_plen, 
-@@ -1926,6 +1964,8 @@
- 	struct list_head *l;
- 	int delete_dflt_mnp = 0;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mcoa_iface_rules_del\n");
- 	bule = bul_get(hai,  NULL, &hai->ha_addr, bid);
- 	if (!hai->reg_mcoa || (bule && !bule->rules))
- 		return NULL;
-@@ -1977,6 +2017,8 @@
- {
- 	struct list_head *l;
-  
-+        MDBG("--------------------------------------\n");
-+        MDBG("mcoa_mn_rules_del\n");
- 	list_for_each(l, &hinfo->mcoa) {
- 		struct mn_addr *iface = NULL;
- 		iface = list_entry(l, struct mn_addr, list);
-@@ -2006,6 +2048,8 @@
- 	struct list_head *l;
- 	uint8_t prio;
-  
-+        MDBG("--------------------------------------\n");
-+        MDBG("mcoa_iface_rules_add\n");
- 	bule = bul_get(hai, NULL, &hai->ha_addr, bid);
- 	if (!bid || !hai->reg_mcoa || !bule || (bule && bule->rules))
- 		return 0;
-@@ -2088,6 +2132,8 @@
- {
- 	struct list_head *l;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("nemo_mr_rules_del\n");
- 	list_for_each(l, &hinfo->mob_net_prefixes) {
- 		struct prefix_list_entry *p = NULL;
- 		p = list_entry(l, struct prefix_list_entry, list);
-@@ -2111,6 +2157,8 @@
- 	struct prefix_list_entry *pe = NULL;
- 	struct list_head *l;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("nemo_mr_rules_add\n");
- 	list_for_each(l, &hinfo->mob_net_prefixes) {
- 		struct prefix_list_entry *p = NULL;
- 		p = list_entry(l, struct prefix_list_entry, list);
-@@ -2164,6 +2212,8 @@
- 	struct flag_hoa_args arg;
- 	int plen = (hai->hoa.iif == hai->if_tunnel ? 128 : hai->plen);
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("clean_home_addr_info\n");
- 	list_del(&hai->list);
- 	if (hai->mob_rtr)
- 		nemo_mr_rules_del(hai);
-@@ -2538,6 +2588,8 @@
- 	struct mv_hoa_args mha;
- 	struct list_head *l;
- 
-+        MDBG("--------------------------------------\n");
-+        MDBG("mn_move\n");
- 	mha.target = hai;
- 
- 	TRACE;
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: mn.c~
-diff -ur mipv6-daemon-umip-0.4.all.paches.original/src/movement.c mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src/movement.c
---- mipv6-daemon-umip-0.4.all.paches.original/src/movement.c	2009-05-12 14:38:53.000000000 +0200
-+++ mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src/movement.c	2009-05-12 14:33:25.000000000 +0200
-@@ -611,7 +611,9 @@
- 	memset(lladdr, 0, sizeof(struct in6_addr));
- 	uint8_t *eui = lladdr->s6_addr + 8;
- 	switch (iface_type) {
--	case ARPHRD_ETHER:
-+	case ARPHRD_EUROPENAIRMESH:
-+		memcpy(eui, hwa, 8);
-+		break;
- 	case ARPHRD_IEEE802:
- 	case ARPHRD_IEEE802_TR:
- 	case ARPHRD_IEEE80211:
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: movement.c~
-diff -ur mipv6-daemon-umip-0.4.all.paches.original/src/ndisc.h mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src/ndisc.h
---- mipv6-daemon-umip-0.4.all.paches.original/src/ndisc.h	2009-05-12 14:38:38.000000000 +0200
-+++ mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src/ndisc.h	2009-05-12 14:33:25.000000000 +0200
-@@ -11,6 +11,8 @@
- {
- 	switch (iface_type) {
- 		/* supported physical devices */
-+	case ARPHRD_EUROPENAIRMESH:
-+		return 8;
- 	case ARPHRD_ETHER:
- 	case ARPHRD_IEEE802:
- 	case ARPHRD_IEEE802_TR:
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: ndisc.h~
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: pmgr.c
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: pmgr.h
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho/src: scan.c
-Only in mipv6-daemon-umip-0.4_patch_nepl_mcoa_sho: stamp-h1
-Only in mipv6-daemon-umip-0.4.all.paches.original: ZE_PATCH.patch
diff --git a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-20080108.patch b/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-20080108.patch
deleted file mode 100755
index 7d70c0d531..0000000000
--- a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-20080108.patch
+++ /dev/null
@@ -1,2862 +0,0 @@
-diff -r a7e20b0b5c43 AUTHORS
---- a/AUTHORS	Wed Nov 28 16:43:32 2007 +0100
-+++ b/AUTHORS	Tue Jan 08 11:28:48 2008 +0100
-@@ -5,3 +5,14 @@ Petander.  Code has been contributed by 
- Petander.  Code has been contributed by several individuals.  See
- THANKS for listing.  See libnetlink/README for information regarding
- libnetlink.
-+
-+The NEMO Basic support code is developed by Ville Nuorvala
-+<vnuorval@tcs.hut.fi> in co-operation with the Nautilus6/WIDE
-+project (http://www.nautilus6.org).
-+
-+The NEMO Basic Support code has been ported to UMIP by Romain KUNTZ
-+<kuntz@lsiit.u-strasbg.fr> and received contributions from the
-+following people:
-+- Sebastien DECUGIS (Nautilus6): IPsec support for NEMO
-+- Arnaud EBALARD (EADS): fixes for Big Endian architectures and
-+  improvements of the NEMO debug messages.
-diff -r a7e20b0b5c43 BUGS
---- a/BUGS	Wed Nov 28 16:43:32 2007 +0100
-+++ b/BUGS	Tue Jan 08 11:28:48 2008 +0100
-@@ -17,3 +17,11 @@ Mobile Node issues
- * Multihoming support hasn't been very thoroughly tested and should
-   therefore be considered developmental code.  However, it is a lot
-   more stable than in the Release Candidates.
-+
-+NEMO issues
-+-----------
-+
-+* The Mobile Router's home address may only be on the egress interface.
-+
-+* Dynamic routing protocols between the Home Agent and Mobile Router
-+  are not yet supported.
-diff -r a7e20b0b5c43 COPYING.NEMO
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/COPYING.NEMO	Tue Jan 08 11:28:48 2008 +0100
-@@ -0,0 +1,13 @@
-+Cisco and Nokia have both published IPR notices regarding RFC 3963
-+"Network Mobility (NEMO) Basic Support Protocol."
-+
-+Cisco has agreed not to assert its patents against any party agreeing with the
-+terms in its IPR notice.
-+
-+Likewise, Nokia has agreed not to assert its patents against Open Source
-+implementations of the specification.
-+
-+For further information, please read
-+licenses/cisco-ipr-draft-ietf-nemo-basic-support-03.txt and 
-+licenses/nokia-ipr-draft-ietf-nemo-basic-support.txt.
-+
-diff -r a7e20b0b5c43 INSTALL
---- a/INSTALL	Wed Nov 28 16:43:32 2007 +0100
-+++ b/INSTALL	Tue Jan 08 11:28:48 2008 +0100
-@@ -45,6 +45,8 @@ 4. Run 'make install'.  Executables shou
-    further information on how to configure your node.  Also take a
-    look at the example configuration files in the extras directory.
- 
-+   For comments about NEMO check README.NEMO.
-+
-    For comments about IPsec support check README.IPsec.
- 
- 5. A startup script 
-diff -r a7e20b0b5c43 README
---- a/README	Wed Nov 28 16:43:32 2007 +0100
-+++ b/README	Tue Jan 08 11:28:48 2008 +0100
-@@ -2,6 +2,9 @@ MIPL Mobile IPv6 for Linux
- 
-   MIPL Mobile IPv6 for Linux is an implementation of the Mobility
-   Support in IP version 6 (RFC 3775).
-+
-+  It also supports Network Mobility with the NEMO Basic Support
-+  implementation (RFC 3963).
-   
-   This user space part works together with Mobile IPv6 enabled Linux
-   kernels.  See INSTALL and any other documents referred there for
-diff -r a7e20b0b5c43 README.NEMO
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/README.NEMO	Tue Jan 08 11:28:48 2008 +0100
-@@ -0,0 +1,18 @@
-+README for NEMO Basic Support 
-+-----------------------------
-+
-+Here are a few things you need to keep in mind when setting up Network
-+Mobility:
-+
-+The MR is a router so you need to set
-+/proc/sys/net/ipv6/conf/all/forwarding to 1 to make sure it will forward
-+packets between its ingress and egress interfaces.
-+
-+With static routing the HA and other routers on the home link might need some
-+additional boot-strapping.  If the MR has a physical home link that it may be
-+attached to, the other routers must be pre-configured with routes to the MR's
-+Mobile Network Prefixes via the MR's home address.  This ensures packets will
-+be forwarded correctly also when the MR is at home.
-+
-+To be able to support NEMO DHAAD the HA needs to have AdvHomeAgentInfo and
-+AdvMobRtrSupportFlag turned on in radvd.conf.
-diff -r a7e20b0b5c43 include/netinet/icmp6.h
---- a/include/netinet/icmp6.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/include/netinet/icmp6.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -27,7 +27,13 @@ struct mip_dhaad_req {		/* Dynamic HA Ad
- #define mip_dhreq_code			mip_dhreq_hdr.icmp6_code
- #define mip_dhreq_cksum			mip_dhreq_hdr.icmp6_cksum
- #define mip_dhreq_id			mip_dhreq_hdr.icmp6_data16[0]
--#define mip_dhreq_reserved		mip_dhreq_hdr.icmp6_data16[1]
-+#define mip_dhreq_flags_reserved	mip_dhreq_hdr.icmp6_data16[1]
-+
-+#if BYTE_ORDER == BIG_ENDIAN
-+#define MIP_DHREQ_FLAG_SUPPORT_MR	0x8000
-+#else				/* BYTE_ORDER == LITTLE_ENDIAN */
-+#define MIP_DHREQ_FLAG_SUPPORT_MR	0x0080
-+#endif
- #endif
- 
- #ifndef HAVE_STRUCT_MIP_DHAAD_REP
-@@ -40,7 +46,13 @@ struct mip_dhaad_rep {		/* HA Address Di
- #define mip_dhrep_code			mip_dhrep_hdr.icmp6_code
- #define mip_dhrep_cksum			mip_dhrep_hdr.icmp6_cksum
- #define mip_dhrep_id			mip_dhrep_hdr.icmp6_data16[0]
--#define mip_dhrep_reserved		mip_dhrep_hdr.icmp6_data16[1]
-+#define mip_dhrep_flags_reserved	mip_dhrep_hdr.icmp6_data16[1]
-+
-+#if BYTE_ORDER == BIG_ENDIAN
-+#define MIP_DHREP_FLAG_SUPPORT_MR	0x8000
-+#else				/* BYTE_ORDER == LITTLE_ENDIAN */
-+#define MIP_DHREP_FLAG_SUPPORT_MR	0x0080
-+#endif
- #endif
- 
- #ifndef HAVE_STRUCT_MIP_PREFIX_SOLICIT
-@@ -89,10 +101,20 @@ struct nd_opt_homeagent_info {	/* Home A
- struct nd_opt_homeagent_info {	/* Home Agent information */
- 	uint8_t		nd_opt_hai_type;
- 	uint8_t		nd_opt_hai_len;
--	uint16_t	nd_opt_hai_reserved;
-+	uint16_t	nd_opt_hai_flags_reserved;
- 	uint16_t	nd_opt_hai_preference;
- 	uint16_t	nd_opt_hai_lifetime;
- };
- #endif
- 
-+#define nd_opt_hai_reserved     nd_opt_hai_flags_reserved
-+
-+#ifndef ND_OPT_HAI_FLAG_SUPPORT_MR
-+#if BYTE_ORDER == BIG_ENDIAN
-+#define ND_OPT_HAI_FLAG_SUPPORT_MR	0x8000
-+#else				/* BYTE_ORDER == LITTLE_ENDIAN */
-+#define ND_OPT_HAI_FLAG_SUPPORT_MR	0x0080
-+#endif
-+#endif
-+
- #endif	/* netinet/icmp6.h */
-diff -r a7e20b0b5c43 licenses/cisco-ipr-draft-ietf-nemo-basic-support-03.txt
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/licenses/cisco-ipr-draft-ietf-nemo-basic-support-03.txt	Tue Jan 08 11:28:48 2008 +0100
-@@ -0,0 +1,41 @@
-+Title: Cisco Systems' Updated Statement about IPR claimed in
-+       draft-ietf-nemo-basic-support-03.txt
-+Received 25 October 2004
-+From: Robert Barr <rbarr@cisco.com>
-+
-+This statement updates the IPR statement filed by Cisco on June 20, 2003 for
-+draft-ietf-nemo-basic-support-00.txt.
-+
-+Cisco is the owner of US Patent No. 6,636,498 and at least one pending
-+patent application
-+relating to the subject matter of draft-ietf-nemo-basic-support-03.txt
-+"Network Mobility (NEMO) Basic Support Protocol" .
-+If a standard relating to this subject matter is adopted by IETF and any
-+claims
-+of any issued Cisco patents are necessary for practicing this standard, any
-+party will be able to obtain a license from Cisco to use any such patent
-+claims under openly specified, reasonable, non-discriminatory terms, with
-+reciprocity, to implement and fully comply with the standard.
-+
-+The reasonable non-discriminatory terms are:
-+
-+If this standard is adopted, Cisco will not assert any patents owned or
-+controlled by Cisco against any party for making, using, selling, importing
-+or offering for sale a product that implements the standard, provided,
-+however that Cisco retains the right to assert its patents (including the
-+right to claim past royalties) against any party that asserts a patent it
-+owns or controls (either directly or indirectly) against Cisco or any of
-+Cisco's affiliates or successors in title; and Cisco retains the right to
-+assert its patents against any product or portion thereof that is not
-+necessary for compliance with the standard.
-+
-+Royalty-bearing licenses will be available to anyone who prefers that
-+option.
-+
-+For information contact:
-+
-+Robert Barr
-+Worldwide Patent Counsel
-+Cisco Systems
-+408-525-9706
-+rbarr@cisco.com
-diff -r a7e20b0b5c43 licenses/nokia-ipr-draft-ietf-nemo-basic-support.txt
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/licenses/nokia-ipr-draft-ietf-nemo-basic-support.txt	Tue Jan 08 11:28:48 2008 +0100
-@@ -0,0 +1,26 @@
-+Title: Nokia Corporation's statement about IPR claimed in draft-ietf-nemo-basic-support
-+Received: July 1, 2003
-+From: Heikki Huttunen <heikki.a.huttunen@nokia.com>
-+
-+This is to advise the IETF that Nokia believes the Nokia patent application "Mobile Router 
-+Support for IPv6", US10/295014, WO03/043226 may be relevant to Nemo Basic Support Protocol 
-+<draft-ietf-nemo-basic-support>.
-+
-+Regarding internet draft "draft-ietf-nemo-basic-support", to the extent this draft is 
-+included into final IETF standard specification, Nokia agrees not to assert those claims 
-+in Nokia patents that apply to this draft and that are technically necessary to implement 
-+the IETF standard specification against any other party in respect of its implementation of 
-+the specification, if only practiced under any software distributed under the present terms 
-+of GNU GENERAL PUBLIC LICENSE (http://www.fsf.org/copyleft/gpl.html) or under license terms 
-+that conform to the present open source definition (http://www.opensource.org/osd.html) and 
-+provided that the party relying on this commitment does not assert its patents against Nokia.
-+
-+Otherwise general Nokia Statement on Patent Licensing (http://www.ietf.org/ietf/IPR/NOKIA) 
-+applies to this submission. 
-+
-+
-+Heikki Huttunen
-+Director, Licensing
-+Nokia Corporation
-+P.O Box 86, FIN-24101 Salo, Finland
-+Phone: +358 (0) 7180 41202, Fax: +358 (0) 7180 44275
-diff -r a7e20b0b5c43 man/mip6d.conf.tmpl
---- a/man/mip6d.conf.tmpl	Wed Nov 28 16:43:32 2007 +0100
-+++ b/man/mip6d.conf.tmpl	Tue Jan 08 11:28:48 2008 +0100
-@@ -1,12 +1,12 @@
- .\" $Id: mip6d.conf.tmpl 1.33 06/05/12 11:48:36+03:00 vnuorval@tcs.hut.fi $
--.TH mip6d.conf 5 "January 31, 2006" "" "Mobile IPv6 Daemon Configuration"
-+.TH mip6d.conf 5 "January 31, 2006" "" "Mobile IPv6 and NEMO Daemon Configuration"
- .SH NAME
--mip6d.conf \- MIPL Mobile IPv6 Configuration file
-+mip6d.conf \- MIPL Mobile IPv6 and NEMO Configuration file
- .SH SYNOPSIS
- .B %etc%/mip6d.conf
- .sp
- .SH DESCRIPTION
--MIPL Mobile IPv6 daemon's configuration file
-+MIPL Mobile IPv6 and NEMO daemon's configuration file
- .P
- Below is a list of currently supported configuration options. All
- configuration lines are terminated with a semicolon.  Sub-sections are
-@@ -184,10 +184,29 @@ Default: 86400
- Default: 86400
- 
- .TP
--.BR "BindingAclPolicy " "address " "allow | deny"
-+.BR "HaAcceptMobRtr enabled | disabled"
- 
--Defines if a MN is allowed to register with the HA or not. The MN home address
--of the MN is given in the address field."
-+Indicates if the HA accepts Mobile Router bindings.
-+
-+Default: disabled;
-+
-+.TP
-+.BR "HaServedPrefix " "prefix/length" ";"
-+
-+Prefix is an IPv6 prefix and length is the prefix length. Defines the whole
-+aggregated or extended prefix the HA serves. This option is only used for MR
-+bindings and is only needed if the MRs derive their Home Addresses from their
-+Mobile Network Prefixes, instead of one of the home link prefixes.
-+
-+.TP
-+.BR "BindingAclPolicy " "address MNP list " "allow | deny"
-+
-+Defines if a MN is allowed to register with the HA or not. The home address
-+of the MN is given in the address field.  The mobile network prefixes
-+belonging a NEMO Mobile Router are listed in the MNP list. The list can either
-+be an empty string or a comma separated list of network prefixes
-+enclosed in braces, for example:
-+.B "(3ffe:2620:6:3::/64, 3ffe:2620:6:4::/64)"
- 
- .TP
- .BR "DefaultBindingAclPolicy allow | deny"
-@@ -254,6 +273,13 @@ Default: disabled
- Default: disabled
- 
- .TP
-+.BR "MobRtrUseExplicitMode enabled | disabled"
-+
-+Toggles between explicit or implicit mode home registrations in the MR.
-+
-+Default: enabled
-+
-+.TP
- .BR "UseCnBuAck " "boolean" ";"
- 
- Indicates if the Acknowledge bit should be set in Binding Updates sent to
-@@ -299,7 +325,7 @@ Default: disabled;
- .TP
- .nf
- .BR "MnHomeLink " "name " "{"
--.BR "	HomeAddress " "address/length" ";"
-+.BR "	HomeAddress " "address/length MNP list" ";"
- .BR "	HomeAgentAddress " "address" ";"
- .BR "	MnRoPolicy ..."
- .BR "	..."
-@@ -317,11 +343,14 @@ definitions.  All the home link specific
- definitions.  All the home link specific definitions are detailed below: 
- 
- .TP
--.BR "HomeAddress " "address/length" ";"
-+.BR "HomeAddress " "address/length MNP list" ";"
- 
- Address is an IPv6 address, and length the prefix length of the
--address, usually 64.  This option must be included in a home link
--definition.
-+address, usually 64.  The MNP list contains the mobile network prefixes
-+belonging to that particular NEMO Mobile Router. The MNP list is of the
-+same format as in
-+.B "BindingAclPolicy."
-+This option must be included in a home link definition.
- 
- .TP
- .BR "HomeAgentAddress " "address" ";"
-@@ -330,6 +359,13 @@ if it is the unspecified address ::.
- if it is the unspecified address ::.
- 
- Default: ::
-+
-+.TP
-+.BR "IsMobRtr enabled | disabled"
-+
-+Defines if the MN is a NEMO MR.
-+
-+Default: disabled
- 
- .TP
- The route optimization policies are of the form:
-@@ -351,6 +387,49 @@ matching this entry.
- matching this entry.
- 
- .SH EXAMPLES
-+
-+.TP
-+.BR "A NEMO Home Agent example:"
-+
-+.nf
-+NodeConfig HA;
-+
-+Interface "eth0";
-+
-+HaAcceptMobRtr enabled;
-+
-+HaServedPrefix 3ffe:2620:6::/48;
-+
-+DefaultBindingAclPolicy deny;
-+BindingAclPolicy 3ffe:2620:6:1::1234 (3ffe:2620:6:2::/64, 3ffe:2620:6:3::/64) allow;
-+BindingAclPolicy 3ffe:2620:6:1::1235 allow;
-+
-+UseMnHaIPsec disabled;
-+.fi
-+
-+.TP
-+.BR "A NEMO Mobile Router example:"
-+
-+.nf
-+NodeConfig MN;
-+
-+DoRouteOptimizationCN disabled;
-+DoRouteOptimizationMN disabled;
-+
-+Interface "eth0";
-+
-+MnRouterProbes 1;
-+
-+MobRtrUseExplicitMode enabled;
-+
-+MnHomeLink "eth0" {
-+        IsMobRtr enabled;
-+        HomeAgentAddress 3ffe:2620:6:1::1;
-+        HomeAddress 3ffe:2620:6:1::1234/64 (3ffe:2620:6:2::/64, 3ffe:2620:6:3::/64);
-+}
-+
-+UseMnHaIPsec disabled;
-+.fi
- 
- .TP
- .BR "A Correspondent Node example:"
-diff -r a7e20b0b5c43 man/mip6d.tmpl
---- a/man/mip6d.tmpl	Wed Nov 28 16:43:32 2007 +0100
-+++ b/man/mip6d.tmpl	Tue Jan 08 11:28:48 2008 +0100
-@@ -1,13 +1,13 @@
- .\" $Id: mip6d.tmpl 1.4 05/05/16 13:13:41+03:00 anttit@tcs.hut.fi $
--.TH mip6d 1 "May 16, 2005" "" "Mobile IPv6 Daemon"
-+.TH mip6d 1 "May 16, 2005" "" "Mobile IPv6 and NEMO Daemon"
- .SH NAME
--mip6d \- MIPL Mobile IPv6 protocol implementation
-+mip6d \- MIPL Mobile IPv6 and NEMO Basic Support protocol implementation
- .SH SYNOPSIS
- .B mip6d [options]
- .sp
- .SH DESCRIPTION
- 
--Mobile IPv6 implementation
-+Mobile IPv6 and NEMO Basic Support implementation
- 
- .SH OPTIONS
- .IP "\fB\-V, \-\-version\fP"
-@@ -41,3 +41,5 @@ RFC3775: Mobility Support in IPv6,
- .PP
- RFC3776: Using IPsec to Protect Mobile IPv6 Signaling Between Mobile
- Nodes and Home Agents
-+.PP
-+RFC3963: Network Mobility (NEMO) Basic Support Protocol
-diff -r a7e20b0b5c43 src/bcache.c
---- a/src/bcache.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/bcache.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -39,6 +39,7 @@
- #include "mh.h"
- #include "cn.h"
- #include "vt.h"
-+#include "prefix.h"
- 
- #define BCACHE_BUCKETS 32
- 
-@@ -63,6 +64,7 @@ void dump_bce(void *bce, void *os)
- {
- 	struct bcentry *e = (struct bcentry *)bce;
- 	FILE *out = (FILE *)os;
-+	int mnpcount = 0;
- 
- 	fprintf(out, " == Binding Cache entry ");
- 
-@@ -87,6 +89,37 @@ void dump_bce(void *bce, void *os)
- 		NIP6ADDR(&e->our_addr));
- 	fprintf(out, " lifetime %ld\n ", e->lifetime.tv_sec);
- 	fprintf(out, " seqno %d\n", e->seqno);
-+
-+	if (e->flags & IP6_MH_BA_MR) {
-+		struct list_head *list;
-+
-+		/* MR registration type */
-+		fprintf(out, "MR Registration type: ");
-+		switch(e->nemo_type) {
-+		case BCE_NEMO_EXPLICIT:
-+			fprintf(out, "explicit.\n");
-+			break;
-+		case BCE_NEMO_IMPLICIT:
-+			fprintf(out, "implicit.\n");
-+			break;
-+		default:
-+			fprintf(out, "unknown.\n");
-+		}
-+
-+		/* Mobile Network prefixes */
-+		fprintf(out, "MR Mobile network prefixes: ");
-+		list_for_each(list, &e->mob_net_prefixes) {
-+			struct prefix_list_entry *p;
-+			p = list_entry(list, struct prefix_list_entry, list);
-+			if (mnpcount)
-+				fprintf(out, "                            ");
-+			fprintf(out, "%x:%x:%x:%x:%x:%x:%x:%x/%d\n",
-+				NIP6ADDR(&p->ple_prefix), p->ple_plen);
-+			mnpcount++;
-+		}
-+		if (!mnpcount)
-+			fprintf(out, " none registered.\n");
-+	}
- 
- 	fflush(out);
- }
-@@ -144,6 +177,7 @@ struct bcentry *bcache_alloc(int type)
- 	}
- 	memset(tmp, 0, sizeof(*tmp));
- 	INIT_LIST_HEAD(&tmp->tqe.list);
-+	INIT_LIST_HEAD(&tmp->mob_net_prefixes);
- 	return tmp;
- }
- 
-@@ -158,6 +192,7 @@ void bcache_free(struct bcentry *bce)
- 	/* This function should really return allocated space to free
- 	 * pool. */
- 	pthread_rwlock_destroy(&bce->lock);
-+	prefix_list_free(&bce->mob_net_prefixes);
- 	free(bce);
- }
- 
-diff -r a7e20b0b5c43 src/bcache.h
---- a/src/bcache.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/bcache.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -18,7 +18,8 @@ struct bcentry {
- 
- 	uint16_t nonce_coa;
- 	uint16_t nonce_hoa;
--	int type;			/* Entry type */
-+	uint16_t type;     		/* Entry type */
-+	uint16_t nemo_type;    		/* NEMO registration type */
- 	int unreach;			/* ICMP dest unreach count */
- 	int tunnel;			/* Tunnel interface index */
- 	int link;			/* Home link interface index */
-@@ -33,6 +34,8 @@ struct bcentry {
- 	struct tq_elem tqe;		/* Timer queue entry for expire */
- 
- 	void (*cleanup)(struct bcentry *bce); /* Clean up bce data */
-+
-+	struct list_head mob_net_prefixes;
- };
- 
- #define BCE_NONCE_BLOCK 0
-@@ -40,6 +43,10 @@ struct bcentry {
- #define BCE_CACHED  2
- #define BCE_CACHE_DYING 3
- #define BCE_DAD 4
-+
-+#define BCE_NEMO_EXPLICIT 1
-+#define BCE_NEMO_IMPLICIT 2
-+#define BCE_NEMO_DYNAMIC 3
- 
- struct bcentry *bcache_alloc(int type);
- 
-diff -r a7e20b0b5c43 src/bul.c
---- a/src/bul.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/bul.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -103,9 +103,11 @@ void dump_bule(void *bule, void *os)
- 	if (e->flags & IP6_MH_BU_ACK)
- 		fprintf(out, "IP6_MH_BU_ACK ");
- 	if (e->flags & IP6_MH_BU_LLOCAL)
--		fprintf(out, "IP6_MH_BU_LLOCAL");
-+		fprintf(out, "IP6_MH_BU_LLOCAL ");
- 	if (e->flags & IP6_MH_BU_KEYM)
--		fprintf(out, "IP6_MH_BU_KEYM");
-+		fprintf(out, "IP6_MH_BU_KEYM ");
-+	if (e->flags & IP6_MH_BU_MR)
-+		fprintf(out, "IP6_MH_BU_MR");
- 
- 	fprintf(out, "\n");
- 	fflush(out);
-@@ -184,7 +186,8 @@ int bul_add(struct bulentry *bule)
- 			goto home_bul_free;
- 	} else if (bule->type == NON_MIP_CN_ENTRY) {
- 		if (bule->flags & IP6_MH_BU_HOME) {
--			if (xfrm_block_hoa(hai) < 0)
-+			if (xfrm_block_hoa(hai) < 0 ||
-+			    (hai->mob_rtr && xfrm_block_ra(hai) < 0))
- 				goto home_bul_free;
- 		}
- 	}
-@@ -231,6 +234,10 @@ void bul_delete(struct bulentry *bule)
- 				xfrm_unblock_link(hai);
- 			if (hai->home_block & HOME_ADDR_BLOCK)
- 				xfrm_unblock_hoa(hai);
-+			if (hai->home_block & NEMO_RA_BLOCK)
-+				xfrm_unblock_ra(hai);
-+			if (hai->home_block & NEMO_FWD_BLOCK)
-+				xfrm_unblock_fwd(hai);
- 		}
- 	}
- 	while (bule->ext_cleanup)
-diff -r a7e20b0b5c43 src/cn.c
---- a/src/cn.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/cn.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -177,8 +177,8 @@ void cn_recv_bu(const struct ip6_mh *mh,
- 	non_ind = mh_opt(&bu->ip6mhbu_hdr, &mh_opts, IP6_MHOPT_NONCEID);
- 	bce = bcache_get(out.src, out.dst);
- 	if (bce) {
--		if ((bce->flags^bu_flags) & IP6_MH_BU_HOME) {
--			/* H-bit mismatch, flags changed */
-+		if ((bce->flags^bu_flags) & (IP6_MH_BU_HOME|IP6_MH_BU_MR)) {
-+			/* H-bit or R-bit mismatch, flags changed */
- 			bcache_release_entry(bce);
- 			bce = NULL;
- 			status = IP6_MH_BAS_REG_NOT_ALLOWED;
-@@ -221,9 +221,15 @@ void cn_recv_bu(const struct ip6_mh *mh,
- 			/* else get rid of it */
- 			bcache_delete(out.src, out.dst);
- 		}
--	} else if (bu_flags & IP6_MH_BU_HOME) {
--		status = IP6_MH_BAS_HA_NOT_SUPPORTED;
--		goto send_nack;
-+	} else {
-+		if (bu_flags & IP6_MH_BU_HOME) {
-+			status = IP6_MH_BAS_HA_NOT_SUPPORTED;
-+			goto send_nack;
-+		}
-+		if (bu_flags & IP6_MH_BU_MR) {
-+			status = IP6_MH_BAS_MR_OP_NOT_PERMITTED;
-+			goto send_nack;
-+		}
- 	}
- 	status = conf.pmgr.discard_binding(out.dst, out.bind_coa,
- 					   out.src, bu, len);
-diff -r a7e20b0b5c43 src/conf.c
---- a/src/conf.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/conf.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -212,6 +212,7 @@ static void conf_default(struct mip6_con
- 	INIT_LIST_HEAD(&c->home_addrs);
- 	c->MoveModulePath = NULL; /* internal */
- 	c->DoRouteOptimizationMN = 1;
-+	c->MobRtrUseExplicitMode = 1;
- 	c->SendMobPfxSols = 1;
- 	c->OptimisticHandoff = 0;
- 
-@@ -221,6 +222,7 @@ static void conf_default(struct mip6_con
- 	c->MaxMobPfxAdvInterval = 86400; /* seconds */
- 	c->MinMobPfxAdvInterval = 600; /* seconds */
- 	c->HaMaxBindingLife = MAX_BINDING_LIFETIME;
-+	INIT_LIST_HEAD(&c->nemo_ha_served_prefixes);
- 
- 	/* CN bindings */
- 	c->DoRouteOptimizationCN = 1;
-@@ -304,6 +306,8 @@ void conf_show(struct mip6_config *c)
- 	    CONF_BOOL_STR(c->MnDiscardHaParamProb));
- 	dbg("SendMobPfxSols = %s\n", CONF_BOOL_STR(c->SendMobPfxSols));
- 	dbg("OptimisticHandoff = %s\n", CONF_BOOL_STR(c->OptimisticHandoff));
-+	dbg("MobRtrUseExplicitMode = %s\n",
-+	    CONF_BOOL_STR(c->MobRtrUseExplicitMode));
- 
- 	/* HA options */
- 	dbg("SendMobPfxAdvs = %s\n", CONF_BOOL_STR(c->SendMobPfxAdvs));
-@@ -312,7 +316,8 @@ void conf_show(struct mip6_config *c)
- 	dbg("MaxMobPfxAdvInterval = %u\n", c->MaxMobPfxAdvInterval);
- 	dbg("MinMobPfxAdvInterval = %u\n", c->MinMobPfxAdvInterval);
- 	dbg("HaMaxBindingLife = %u\n", c->HaMaxBindingLife);
--	
-+	dbg("HaAcceptMobRtr = %s\n", CONF_BOOL_STR(c->HaAcceptMobRtr));
-+
- 	/* CN options */
- 	dbg("DoRouteOptimizationCN = %s\n",
- 	    CONF_BOOL_STR(c->DoRouteOptimizationCN));
-diff -r a7e20b0b5c43 src/conf.h
---- a/src/conf.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/conf.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -39,6 +39,7 @@ struct mip6_config {
- 	struct list_head home_addrs;
- 	char *MoveModulePath;
- 	uint16_t CnBuAck;
-+	char MobRtrUseExplicitMode;
- 	char DoRouteOptimizationMN;
- 	char MnUseAllInterfaces;
- 	char MnDiscardHaParamProb;
-@@ -46,15 +47,16 @@ struct mip6_config {
- 	char OptimisticHandoff;
- 
- 	/* HA options */
-+	char HaAcceptMobRtr;
- 	char SendMobPfxAdvs;
- 	char SendUnsolMobPfxAdvs;
- 	unsigned int MaxMobPfxAdvInterval;
- 	unsigned int MinMobPfxAdvInterval;
- 	unsigned int HaMaxBindingLife;
-+	struct list_head nemo_ha_served_prefixes;
- 
- 	/* CN options */
- 	char DoRouteOptimizationCN;
--
- };
- 
- struct net_iface {
-diff -r a7e20b0b5c43 src/dhaad_ha.c
---- a/src/dhaad_ha.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/dhaad_ha.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -83,8 +83,8 @@ static void dhaad_expire_halist(struct t
- 	pthread_rwlock_unlock(&ha_lock);
- }
- 
--void dhaad_insert_halist(struct ha_interface *i, 
--			 uint16_t key, uint16_t life_sec,
-+void dhaad_insert_halist(struct ha_interface *i, uint16_t key,
-+			 uint16_t life_sec, uint16_t flags,
- 			 struct nd_opt_prefix_info *pinfo,
- 			 const struct in6_addr *lladdr)
- {
-@@ -110,6 +110,7 @@ void dhaad_insert_halist(struct ha_inter
- 			return;
- 		}
- 		memset(ha, 0, sizeof(*ha));
-+		ha->flags = flags;
- 		ha->iface = i;
- 		ha->addr = *addr;
- 		INIT_LIST_HEAD(&ha->tqe.list);
-@@ -136,18 +137,22 @@ void dhaad_insert_halist(struct ha_inter
- 	return;
- }
- 
--static int dhaad_get_halist(struct ha_interface *i, int max, struct iovec *iov)
-+static int dhaad_get_halist(struct ha_interface *i, uint16_t flags,
-+			    int max, struct iovec *iov)
- {
- 	struct list_head *lp;
- 	int n = 0;
- 	list_for_each(lp, &i->ha_list) {
- 		struct home_agent *h;
- 		h = list_entry(lp, struct home_agent, list);
--		n++;
--		iov[n].iov_len = sizeof(struct in6_addr);
--		iov[n].iov_base = &h->addr;
--		if (n >= max)
--			break;
-+		if (!(flags & MIP_DHREQ_FLAG_SUPPORT_MR) ||
-+		    h->flags & ND_OPT_HAI_FLAG_SUPPORT_MR) {
-+			n++;
-+			iov[n].iov_len = sizeof(struct in6_addr);
-+			iov[n].iov_base = &h->addr;
-+			if (n >= max)
-+				break;
-+		}
- 	}
- 	return n;
- }
-@@ -177,8 +182,12 @@ static void dhaad_recv_req(const struct 
- 
- 	rph->mip_dhrep_id = rqh->mip_dhreq_id;
- 
-+	if (rqh->mip_dhreq_flags_reserved & MIP_DHREQ_FLAG_SUPPORT_MR)
-+		rph->mip_dhrep_flags_reserved = MIP_DHREP_FLAG_SUPPORT_MR;
-+
- 	pthread_rwlock_rdlock(&ha_lock);
--	iovlen = dhaad_get_halist(i, MAX_HOME_AGENTS, iov);
-+	iovlen = dhaad_get_halist(i, rqh->mip_dhreq_flags_reserved,
-+				  MAX_HOME_AGENTS, iov);
- 	icmp6_send(i->ifindex, 64, ha_addr, src, iov, iovlen + 1);
- 	pthread_rwlock_unlock(&ha_lock);
- 	free_iov_data(&iov[0], 1);
-diff -r a7e20b0b5c43 src/dhaad_ha.h
---- a/src/dhaad_ha.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/dhaad_ha.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -17,8 +17,8 @@ void dhaad_halist_iterate(struct ha_inte
- 			  int (* func)(int, void *, void *), void *arg);
- #endif
- 
--void dhaad_insert_halist(struct ha_interface *i, 
--			 uint16_t key, uint16_t life_sec,
-+void dhaad_insert_halist(struct ha_interface *i, uint16_t key,
-+			 uint16_t life_sec, uint16_t flags,
- 			 struct nd_opt_prefix_info *pinfo,
- 			 const struct in6_addr *lladdr);
- 
-diff -r a7e20b0b5c43 src/dhaad_mn.c
---- a/src/dhaad_mn.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/dhaad_mn.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -86,7 +86,8 @@ static int dhaad_append_candidate(struct
- }
- 
- static int dhaad_send_request(int oif, struct in6_addr *src, 
--			      struct in6_addr *pfx, int plen)
-+			      struct in6_addr *pfx, int plen,
-+			      uint16_t flags)
- {
- 	struct mip_dhaad_req *ih;
- 	struct iovec iov;
-@@ -98,6 +99,7 @@ static int dhaad_send_request(int oif, s
- 	    return -1;
- 	id = dhaad_id++;
- 	ih->mip_dhreq_id = htons(id);
-+	ih->mip_dhreq_flags_reserved = flags;
- 	dhaad_gen_ha_anycast(&dst, pfx, plen);
- 	icmp6_send(oif, 0, src, &dst, &iov, 1);
- 	free_iov_data(&iov, 1);
-@@ -121,7 +123,9 @@ static void dhaad_resend(struct tq_elem 
- 		t->dhaad_id = dhaad_send_request(hai->primary_coa.iif,
- 						 &hai->primary_coa.addr,
- 						 &hai->home_prefix,
--						 hai->home_plen);
-+						 hai->home_plen,
-+						 hai->mob_rtr?
-+						 MIP_DHREQ_FLAG_SUPPORT_MR:0);
- 		t->dhaad_resends++;
- 		tsadd(t->dhaad_delay, t->dhaad_delay, t->dhaad_delay);
- 		add_task_rel(&t->dhaad_delay, &t->tqe, dhaad_resend);
-@@ -139,11 +143,15 @@ static void _dhaad_start(struct home_add
- 	      t->dhaad_resends == DHAAD_RETRIES))) {
- 		if (!(hai->home_block & HOME_ADDR_BLOCK))
- 			xfrm_block_hoa(hai);
-+		if (hai->mob_rtr && !(hai->home_block & NEMO_RA_BLOCK))
-+			xfrm_block_ra(hai);
- 		t->dhaad_resends = 0;
- 		t->dhaad_id = dhaad_send_request(hai->primary_coa.iif,
- 						 &hai->primary_coa.addr,
- 						 &hai->home_prefix,
--						 hai->home_plen);
-+						 hai->home_plen,
-+						 hai->mob_rtr?
-+						 MIP_DHREQ_FLAG_SUPPORT_MR:0);
- 		t->dhaad_delay = INITIAL_DHAAD_TIMEOUT_TS;
- 		add_task_rel(&t->dhaad_delay, &t->tqe, dhaad_resend);
- 	}
-@@ -165,6 +173,8 @@ static void _dhaad_stop(struct home_addr
- 	tsclear(t->dhaad_delay);
- 	if (hai->home_block & HOME_ADDR_BLOCK)
- 		xfrm_unblock_hoa(hai);
-+	if (hai->home_block & NEMO_RA_BLOCK)
-+		xfrm_unblock_ra(hai);
- }
- 
- void dhaad_stop(struct home_addr_info *hai)
-@@ -245,6 +255,12 @@ static void dhaad_recv_rep(const struct 
- 		pthread_rwlock_unlock(&mn_lock);
- 		return;
- 	}
-+	if (hai->mob_rtr &&
-+	    !(rph->mip_dhrep_flags_reserved & MIP_DHREP_FLAG_SUPPORT_MR)) {
-+		dbg("HA doesn't support MR\n");
-+		pthread_rwlock_unlock(&mn_lock);
-+		return;
-+	}
- 	ha = (struct in6_addr *)(ih + 1);
- 
- 	dhaad_flush_candidates(&hai->ha_list);
-diff -r a7e20b0b5c43 src/gram.y
---- a/src/gram.y	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/gram.y	Tue Jan 08 11:28:48 2008 +0100
-@@ -30,10 +30,10 @@
- #ifdef HAVE_CONFIG_H
- #include <config.h>
- #endif
-+#include <stdio.h>
- #include <pthread.h>
- #include <netinet/in.h>
- #include <net/if.h>
--#include <stdio.h>
- #include <string.h>
- #include <stdarg.h>
- #include <netinet/ip6mh.h>
-@@ -54,8 +54,23 @@ struct net_iface ni = {
- };
- 	
- struct home_addr_info hai = {
--	.ro_policies = LIST_HEAD_INIT(hai.ro_policies)
-+	.ro_policies = LIST_HEAD_INIT(hai.ro_policies),
-+	.mob_net_prefixes = LIST_HEAD_INIT(hai.mob_net_prefixes)
- };
-+
-+LIST_HEAD(prefixes);
-+
-+int mv_prefixes(struct list_head *list)
-+{
-+	struct list_head *l, *n;
-+	int res = 0;
-+	list_for_each_safe(l, n, &prefixes) {
-+		list_del(l);
-+		list_add_tail(l, list);
-+		res++;
-+	}
-+	return res;
-+}
- 
- struct policy_bind_acl_entry *bae = NULL;
- 
-@@ -165,6 +180,11 @@ static void uerror(const char *fmt, ...)
- %token		MNROUTERPROBETIMEOUT
- %token		MNDISCARDHAPARAMPROB
- %token		OPTIMISTICHANDOFF
-+%token		HOMEPREFIX
-+%token		HAACCEPTMOBRTR
-+%token		ISMOBRTR
-+%token		HASERVEDPREFIX
-+%token		MOBRTRUSEEXPLICITMODE
- 
- %token		INV_TOKEN
- 
-@@ -282,6 +302,19 @@ topdef		: MIP6ENTITY mip6entity ';'
- 		{
- 			conf.DefaultBindingAclPolicy = $2;
- 		}
-+		| HAACCEPTMOBRTR BOOL ';'
-+		{
-+			conf.HaAcceptMobRtr = $2;
-+		}
-+		| HASERVEDPREFIX prefixlistentry ';'
-+		{
-+			list_splice(&prefixes,
-+				    conf.nemo_ha_served_prefixes.prev);
-+		}
-+		| MOBRTRUSEEXPLICITMODE BOOL ';'
-+		{
-+			conf.MobRtrUseExplicitMode = $2;
-+		}
- 		| BINDINGACLPOLICY bindaclpolicy ';' 
- 		{
- 			bae = NULL;
-@@ -398,12 +431,16 @@ linksub		: QSTRING '{' linkdefs '}'
- 			memcpy(nhai, &hai, sizeof(struct home_addr_info));
- 			INIT_LIST_HEAD(&nhai->ro_policies);
- 			INIT_LIST_HEAD(&nhai->ha_list.home_agents);
-+			INIT_LIST_HEAD(&nhai->mob_net_prefixes);
- 			nhai->ha_list.dhaad_id = -1;
- 			list_splice(&hai.ro_policies, &nhai->ro_policies);
-+			list_splice(&hai.mob_net_prefixes,
-+				    &nhai->mob_net_prefixes);
- 			list_add_tail(&nhai->list, &conf.home_addrs);
- 
- 			memset(&hai, 0, sizeof(struct home_addr_info));
- 			INIT_LIST_HEAD(&hai.ro_policies);
-+			INIT_LIST_HEAD(&hai.mob_net_prefixes);
- 		}
- 		;
- 
-@@ -415,16 +452,35 @@ linkdef		: HOMEAGENTADDRESS ADDR ';'
- 		{
- 			memcpy(&hai.ha_addr, &$2, sizeof(struct in6_addr));
- 		}
--		| HOMEADDRESS ADDR '/' prefixlen ';'
--		{
--			hai.hoa.addr = $2;
--			hai.plen = $4;
--		}
-+		| HOMEADDRESS homeaddress ';'
- 		| USEALTCOA BOOL ';'
-                 {
- 		        hai.altcoa = $2;
- 		}	  
- 		| MNROPOLICY mnropolicy ';'
-+		| ISMOBRTR BOOL ';'
-+                {
-+			if ($2)
-+				hai.mob_rtr = IP6_MH_BU_MR;
-+		}
-+		|  HOMEPREFIX ADDR '/' prefixlen ';'
-+                {
-+			ipv6_addr_prefix(&hai.home_prefix, &$2, $4);
-+			hai.home_plen = $4;
-+		}
-+		;
-+
-+homeaddress	: homeaddrdef prefixlistsub
-+		{
-+			hai.mnp_count = mv_prefixes(&hai.mob_net_prefixes);
-+		}
-+		;
-+
-+homeaddrdef	: ADDR '/' prefixlen
-+		{
-+			hai.hoa.addr = $1;
-+			hai.plen = $3;
-+		}
- 		;
- 
- ipsecpolicyset	: ipsechaaddrdef ipsecmnaddrdefs ipsecpolicydefs
-@@ -639,7 +695,7 @@ bindaclpolval	: BOOL
- 		| NUMBER { $$ = $1; }
- 		;
- 
--bindaclpolicy	: ADDR bindaclpolval
-+bindaclpolicy	: ADDR prefixlistsub bindaclpolval
- 		{
- 			bae = malloc(sizeof(struct policy_bind_acl_entry));
- 			if (bae == NULL) {
-@@ -649,7 +705,9 @@ bindaclpolicy	: ADDR bindaclpolval
- 			memset(bae, 0, sizeof(struct policy_bind_acl_entry)); 
- 			bae->hoa = $1;
- 			bae->plen = 128;
--			bae->bind_policy = $2;
-+			INIT_LIST_HEAD(&bae->mob_net_prefixes);
-+			bae->mnp_count = mv_prefixes(&bae->mob_net_prefixes);
-+			bae->bind_policy = $3;
- 			list_add_tail(&bae->list, &conf.bind_acl);
- 		}
- 		;
-@@ -664,4 +722,27 @@ prefixlen	: NUMBER
- 		}
- 		;
- 
-+prefixlistsub	:
-+		| '(' prefixlist ')'
-+		;
-+
-+prefixlist	: prefixlistentry
-+		| prefixlist ',' prefixlistentry
-+		;
-+
-+prefixlistentry	: ADDR '/' prefixlen
-+		{
-+			struct prefix_list_entry *p;
-+			p = malloc(sizeof(struct prefix_list_entry));
-+			if (p == NULL) {
-+				fprintf(stderr,
-+					"%s: out of memory\n", __FUNCTION__);
-+				return -1;
-+			}
-+			memset(p, 0, sizeof(struct prefix_list_entry));
-+			p->ple_prefix = $1;
-+			p->ple_plen = $3;
-+			list_add_tail(&p->list, &prefixes);
-+		}
-+		;
- %%
-diff -r a7e20b0b5c43 src/ha.c
---- a/src/ha.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/ha.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -79,6 +79,7 @@ static void ha_recv_ra(const struct icmp
- 	struct ha_interface *iface;
- 	uint16_t pref = 0;
- 	uint16_t life = 0;
-+	uint16_t flags = 0;
- 
- 	/* validity checks */
- 	if (hoplimit < 255 || !IN6_IS_ADDR_LINKLOCAL(src) ||
-@@ -120,6 +121,7 @@ static void ha_recv_ra(const struct icmp
- 			hainfo = (struct nd_opt_homeagent_info *)opt;
- 			pref = ntohs(hainfo->nd_opt_hai_preference);
- 			life = ntohs(hainfo->nd_opt_hai_lifetime);
-+			flags = hainfo->nd_opt_hai_flags_reserved;
- 		}
- 		optlen -= olen;
- 		opt += olen;
-@@ -129,7 +131,7 @@ static void ha_recv_ra(const struct icmp
- 		if (pinfo[i]->nd_opt_pi_flags_reserved & 
- 		    ND_OPT_PI_FLAG_RADDR) {
- 			dhaad_insert_halist(iface, pref, life,
--					    pinfo[i], src);
-+					    flags, pinfo[i], src);
- 		}
- 	}
- 	mpd_del_expired_pinfos(iface);
-@@ -499,14 +501,53 @@ static int ha_vt_init(void)
- }
- #endif
- 
-+
-+static void nemo_ha_del_mnp_routes(struct list_head *old_mnps,
-+				   struct list_head *new_mnps,
-+				   int ifindex, int all)
-+{
-+	struct list_head *list;
-+	list_for_each(list, old_mnps) {
-+		struct prefix_list_entry *p;
-+		p = list_entry(list, struct prefix_list_entry, list);
-+		if (!all &&
-+		    prefix_list_find(new_mnps, &p->ple_prefix, p->ple_plen))
-+			continue;
-+
-+		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_FWD,
-+			  NULL, 0, &p->ple_prefix, p->ple_plen, NULL);
-+	}
-+}
-+
-+static int nemo_ha_add_mnp_routes(struct list_head *old_mnps,
-+				  struct list_head *new_mnps,
-+				  int ifindex, int all)
-+{
-+	struct list_head *list;
-+	list_for_each(list, new_mnps) {
-+		struct prefix_list_entry *p;
-+		p = list_entry(list, struct prefix_list_entry, list);
-+		if (!all &&
-+		    prefix_list_find(old_mnps, &p->ple_prefix, p->ple_plen))
-+			continue;
-+		if (route_add(ifindex, RT6_TABLE_MIP6, RTPROT_MIP,
-+			      0, IP6_RT_PRIO_MIP6_FWD,
-+			      NULL, 0, &p->ple_prefix, p->ple_plen, NULL) < 0)
-+			return -1;
-+	}
-+	return 0;
-+}
-+
- struct home_tnl_ops_parm {
- 	struct bcentry *bce;
- 	int ba_status;
-+	struct list_head mob_net_prefixes;
- };
- 
- static int home_tnl_del(int old_if, int new_if, struct home_tnl_ops_parm *p)
- {
- 	const struct in6_addr *our_addr, *peer_addr, *coa, *old_coa;
-+	struct list_head *mnp;
- 
- 	assert(old_if);
- 
-@@ -514,17 +555,22 @@ static int home_tnl_del(int old_if, int 
- 	peer_addr = &p->bce->peer_addr;
- 	coa = &p->bce->peer_addr;
- 	old_coa = &p->bce->coa;
-+	mnp = &p->bce->mob_net_prefixes;
- 
- 	if (conf.UseMnHaIPsec) {
- 		/* migrate */ 
- 		ha_ipsec_tnl_update(our_addr, peer_addr,
--				    coa, old_coa, p->bce->tunnel);
-+				    coa, old_coa, p->bce->tunnel, mnp);
- 		/* delete SP entry */ 
--		ha_ipsec_tnl_pol_del(our_addr, peer_addr, p->bce->tunnel);
-+		ha_ipsec_tnl_pol_del(our_addr, peer_addr, p->bce->tunnel, mnp);
- 	}
- 	/* delete HoA route */
- 	route_del(old_if, RT6_TABLE_MAIN,
- 		  IP6_RT_PRIO_MIP6_FWD, NULL, 0, peer_addr, 128, NULL);
-+
-+	/* delete MNP routes */
-+	nemo_ha_del_mnp_routes(&p->bce->mob_net_prefixes,
-+			       &p->mob_net_prefixes, old_if, 1);
- 	/* update tunnel interface */
- 	p->bce->tunnel = new_if;
- 
-@@ -534,17 +580,29 @@ static int home_tnl_add(int old_if, int 
- static int home_tnl_add(int old_if, int new_if, struct home_tnl_ops_parm *p)
- {
- 	const struct in6_addr *our_addr, *peer_addr, *coa, *old_coa;
-+	struct list_head *mnp;
- 
- 	assert(new_if);
- 
- 	our_addr = &p->bce->our_addr;
- 	peer_addr = &p->bce->peer_addr;
- 	coa = &p->bce->coa;
--	old_coa = &p->bce->peer_addr;
-+	old_coa = IN6_ARE_ADDR_EQUAL(&p->bce->old_coa, &in6addr_any) ?
-+		&p->bce->peer_addr : &p->bce->old_coa;
-+	mnp = &p->mob_net_prefixes;
- 
- 	/* update tunnel interface */
- 	p->bce->tunnel = new_if;
- 
-+	/* add MNP routes */
-+	if (nemo_ha_add_mnp_routes(&p->bce->mob_net_prefixes,
-+				   &p->mob_net_prefixes, new_if, 1) < 0) {
-+		if (p->bce->nemo_type == BCE_NEMO_EXPLICIT)
-+			p->ba_status = IP6_MH_BAS_INVAL_PRFX;
-+		else
-+			p->ba_status = IP6_MH_BAS_FWDING_FAILED;
-+		goto err;
-+	}
- 	/* add HoA route */
- 	if (route_add(new_if, RT6_TABLE_MAIN,
- 		      RTPROT_MIP, 0, IP6_RT_PRIO_MIP6_FWD,
-@@ -555,13 +613,13 @@ static int home_tnl_add(int old_if, int 
- 	/* add SP entry */	
- 	if (conf.UseMnHaIPsec) {
- 		if (ha_ipsec_tnl_pol_add(our_addr, peer_addr,
--					 p->bce->tunnel) < 0) {
-+					 p->bce->tunnel, mnp) < 0) {
- 			p->ba_status = IP6_MH_BAS_INSUFFICIENT;
- 			goto err;
- 		}
- 		/* migrate */ 
- 		if (ha_ipsec_tnl_update(our_addr, peer_addr, coa, old_coa,
--					p->bce->tunnel) < 0) {
-+					p->bce->tunnel, mnp) < 0) {
- 			p->ba_status = IP6_MH_BAS_INSUFFICIENT;
- 			goto err;
- 		}
-@@ -578,17 +636,51 @@ static int home_tnl_chg(int old_if, int 
- 
- 	if (old_if == new_if) {
- 		const struct in6_addr *our_addr, *peer_addr, *coa, *old_coa;
-+		struct list_head *mnp;
- 
- 		our_addr = &p->bce->our_addr;
- 		peer_addr = &p->bce->peer_addr;
- 		coa = &p->bce->coa;
- 		old_coa = &p->bce->old_coa;
-+		mnp = &p->mob_net_prefixes;
-+
-+		/* if interface hasn't changed, at least check if the
-+		   MR's MNPs have changed */
-+		if (!prefix_list_cmp(&p->bce->mob_net_prefixes,
-+				     &p->mob_net_prefixes)) {
-+
-+			/* Remove old policies and install new ones */
-+			if (conf.UseMnHaIPsec) {
-+				ha_ipsec_mnp_pol_del(our_addr, peer_addr,
-+						     &p->bce->mob_net_prefixes,
-+						     &p->mob_net_prefixes,
-+						     p->bce->tunnel);
-+				ha_ipsec_mnp_pol_add(our_addr, peer_addr,
-+						     &p->bce->mob_net_prefixes,
-+						     &p->mob_net_prefixes,
-+						     p->bce->tunnel);
-+			}
-+
-+			/* Do the same for routes */
-+			nemo_ha_del_mnp_routes(&p->bce->mob_net_prefixes,
-+					       &p->mob_net_prefixes,
-+					       old_if, 0);
-+			if (nemo_ha_add_mnp_routes(&p->bce->mob_net_prefixes,
-+						   &p->mob_net_prefixes,
-+						   new_if, 0) < 0) {
-+				if (p->bce->nemo_type == BCE_NEMO_EXPLICIT)
-+					p->ba_status = IP6_MH_BAS_INVAL_PRFX;
-+				else
-+					p->ba_status = IP6_MH_BAS_FWDING_FAILED;
-+				return -1;
-+			}
-+		}
- 
- 		/* migrate */ 
- 		if (conf.UseMnHaIPsec &&
- 		    !IN6_ARE_ADDR_EQUAL(old_coa, coa) &&
- 		    ha_ipsec_tnl_update(our_addr, peer_addr, coa, old_coa,
--					p->bce->tunnel) < 0) {
-+					p->bce->tunnel, mnp) < 0) {
- 			return -1;
- 		}
- 	} else { 
-@@ -632,6 +724,61 @@ static void home_cleanup(struct bcentry 
- 	if (conf.UseMnHaIPsec) {
- 		ha_mn_ipsec_pol_mod(&bce->our_addr, &bce->peer_addr);
- 	}
-+}
-+
-+
-+static int ha_extract_mnps(const struct ip6_mh_binding_update *bu,
-+			   const struct mh_options *opts,
-+			   struct list_head *mob_net_prefixes)
-+{
-+	struct ip6_mh_opt_mob_net_prefix *op;
-+	int prefix_count = 0;
-+	for (op = mh_opt(&bu->ip6mhbu_hdr, opts, IP6_MHOPT_MOB_NET_PRFX);
-+	     op != NULL;
-+	     op = mh_opt_next(&bu->ip6mhbu_hdr, opts, op)) {
-+		struct prefix_list_entry *p;
-+		p = malloc(sizeof(struct prefix_list_entry));
-+		if (p == NULL) {
-+			prefix_list_free(mob_net_prefixes);
-+			return -1;
-+		}
-+		memset(p, 0, sizeof(struct prefix_list_entry));
-+		p->ple_plen = op->ip6mnp_prefix_len;
-+		p->ple_prefix = op->ip6mnp_prefix;
-+		list_add_tail(&p->list, mob_net_prefixes);
-+		prefix_count++;
-+	}
-+	return prefix_count;
-+}
-+
-+static int ha_get_mnps(const struct in6_addr *hoa,
-+		       struct list_head *mob_net_prefixes)
-+{
-+	struct nd_opt_prefix_info *mnps;
-+	int mnp_count = conf.pmgr.get_mnp_count(hoa);
-+	int i;
-+
-+	if (mnp_count <= 0)
-+		return mnp_count;
-+
-+	mnps = calloc(mnp_count, sizeof(struct nd_opt_prefix_info));
-+	if (mnps == NULL)
-+		return -1;
-+
-+	mnp_count = conf.pmgr.get_mnps(hoa, mnp_count, mnps);
-+	for (i = 0; i < mnp_count; i++) {
-+		struct prefix_list_entry *p;
-+		p = malloc(sizeof(struct prefix_list_entry));
-+		if (p == NULL) {
-+			prefix_list_free(mob_net_prefixes);
-+			free(mnps);
-+			return -1;
-+		}
-+		p->pinfo = *(mnps + i);
-+		list_add_tail(&p->list, mob_net_prefixes);
-+	}
-+	free(mnps);
-+	return mnp_count;
- }
- 
- struct ha_recv_bu_args {
-@@ -684,8 +831,9 @@ restart:
- 	bce = bcache_get(out.src, out.dst);
- 	if (bce) {
- 		if (bce->type != BCE_NONCE_BLOCK) {
--			if (!(bce->flags & IP6_MH_BU_HOME)) {
--				/* H-bit mismatch, flags changed */
-+			/* H-bit or R-bit mismatch, flags changed */
-+			if ((bce->flags ^ bu_flags) &
-+			    (IP6_MH_BU_HOME | IP6_MH_BU_MR)) {
- 				bcache_release_entry(bce);
- 				bce = NULL;
- 				status = IP6_MH_BAS_REG_NOT_ALLOWED;
-@@ -733,9 +881,15 @@ restart:
- 	}
- 	if ((status = mpd_prefix_check(out.src, out.dst,
- 				       &lft, &home_ifindex, new)) < 0) {
--		/* not home agent for this subnet */
--		status = IP6_MH_BAS_NOT_HOME_SUBNET;
--		goto send_nack;
-+		if (!(bu_flags & IP6_MH_BU_MR) ||
-+		    home_ifindex == 0 ||
-+		    !prefix_list_find(&conf.nemo_ha_served_prefixes,
-+		     		      out.dst, 0)) {
-+			/* not home agent for this subnet */
-+			status = IP6_MH_BAS_NOT_HOME_SUBNET;
-+			goto send_nack;
-+		}
-+		status = IP6_MH_BAS_ACCEPTED;
- 	}
- 	status = conf.pmgr.discard_binding(out.dst, out.bind_coa,
- 					   out.src, arg->bu, arg->len);
-@@ -787,6 +941,25 @@ restart:
- 		}
- 		new = 1;
- 	}
-+	INIT_LIST_HEAD(&p.mob_net_prefixes);
-+	if (bu_flags & IP6_MH_BU_MR && tsisset(lft)) {
-+		if (mh_opt(&arg->bu->ip6mhbu_hdr,
-+			   &arg->mh_opts, IP6_MHOPT_MOB_NET_PRFX) != NULL) {
-+			if (ha_extract_mnps(arg->bu,
-+					    &arg->mh_opts,
-+					    &p.mob_net_prefixes) < 0) {
-+				status = IP6_MH_BAS_INVAL_PRFX;
-+				goto send_nack;
-+			}
-+			bce->nemo_type = BCE_NEMO_EXPLICIT;
-+		} else if (ha_get_mnps(out.dst, &p.mob_net_prefixes) > 0) {
-+			bce->nemo_type = BCE_NEMO_IMPLICIT;
-+		} else {
-+			/* Todo: dynamic routing */
-+			status = IP6_MH_BAS_FWDING_FAILED;
-+			goto send_nack;
-+		}
-+	}
- 	p.bce = bce;
- 	p.ba_status = status;
- 	bce->seqno = seqno;
-@@ -801,6 +974,9 @@ restart:
- 				status = IP6_MH_BAS_INSUFFICIENT;
- 			goto send_nack;
- 		}
-+		/* Now save the MNP list in the BCE */
-+		list_splice(&p.mob_net_prefixes, &bce->mob_net_prefixes);
-+
- 		bce->cleanup = home_cleanup;
- 
- 		if (route_add(bce->link, RT6_TABLE_MIP6,
-@@ -829,6 +1005,10 @@ restart:
- 				status = IP6_MH_BAS_INSUFFICIENT;
- 			goto send_nack;
- 		}
-+		/* Now update the MNP list in the BCE */
-+		prefix_list_free(&bce->mob_net_prefixes);
-+		list_splice(&p.mob_net_prefixes, &bce->mob_net_prefixes);
-+
- 		bcache_update_expire(bce);
- 	}
- 	/* bce is always valid here */
-@@ -855,6 +1035,9 @@ restart:
- 		 * have a binding before sending this Binding Update,
- 		 * discard the connections to the home address. */
- 	}
-+ 	if (status < IP6_MH_BAS_UNSPECIFIED && bu_flags & IP6_MH_BU_MR)
-+ 		ba_flags |= IP6_MH_BA_MR;
-+
- 	if (!(arg->flags & HA_BU_F_SKIP_BA))
- 		mh_send_ba(&out, status, ba_flags, seqno, &lft, NULL, iif);
- 	if (new && tsisset(lft))
-diff -r a7e20b0b5c43 src/ha.h
---- a/src/ha.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/ha.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -23,6 +23,7 @@ struct home_agent {
- 	struct list_head list;
- 	struct in6_addr addr;
- 	uint16_t preference;
-+	uint16_t flags;
- 	struct timespec lifetime;
- 	struct ha_interface *iface;
- 	struct tq_elem tqe;
-diff -r a7e20b0b5c43 src/ipsec.c
---- a/src/ipsec.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/ipsec.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -81,7 +81,9 @@ static void _set_sp(struct xfrm_userpoli
- 		    struct ipsec_policy_entry *e,
- 		    int dir,
- 		    const struct in6_addr *in6_dst,
-+		    int  dst_len,
- 		    const struct in6_addr *in6_src,
-+		    int src_len,
- 		    int ifindex,
- 		    int nodetype)
- {
-@@ -97,10 +99,13 @@ static void _set_sp(struct xfrm_userpoli
- 	sp->action = e->action;
- 	memcpy(&sp->sel.saddr.a6, in6_src, sizeof(sp->sel.saddr.a6));
- 	memcpy(&sp->sel.daddr.a6, in6_dst, sizeof(sp->sel.daddr.a6));
--	sp->sel.prefixlen_s = IN6_ARE_ADDR_EQUAL(in6_src, &in6addr_any) ?
--				0 : 128;
--	sp->sel.prefixlen_d = IN6_ARE_ADDR_EQUAL(in6_dst, &in6addr_any) ?
--				0 : 128;
-+	sp->sel.prefixlen_s = src_len;
-+	if (!src_len && (!IN6_ARE_ADDR_EQUAL(in6_src, &in6addr_any)))
-+		sp->sel.prefixlen_s = 128;
-+	sp->sel.prefixlen_d = dst_len;
-+	if (!dst_len && (!IN6_ARE_ADDR_EQUAL(in6_dst, &in6addr_any)))
-+		sp->sel.prefixlen_d = 128;
-+
- 	sp->sel.ifindex = 0;
- 
- 	switch (e->type) {
-@@ -347,6 +352,7 @@ struct ha_ipsec_tnl_update {
- 	int tunnel;
- 	struct in6_addr coa;
- 	struct in6_addr old_coa;
-+	struct list_head *mnp;
- };
- 
- /*
-@@ -365,6 +371,7 @@ static int _ha_tnl_update(const struct i
- 	int ifindex;
- 	const struct in6_addr *oldcoa, *newcoa;
- 	const struct in6_addr *peer_addr = hoa;
-+	struct list_head *mnp;
- 	u_int8_t ipsec_proto;
- 	struct xfrm_user_tmpl tmpl;
- 	struct xfrm_userpolicy_info sp;
-@@ -399,13 +406,14 @@ static int _ha_tnl_update(const struct i
- 	oldcoa = IN6_ARE_ADDR_EQUAL(&info->old_coa, &in6addr_any) ?
- 		peer_addr : &info->old_coa;
- 	newcoa = &info->coa;
-+	mnp = info->mnp;
- 
- 	dump_migrate(ifindex, ipsec_proto, hoa, haaddr, oldcoa, newcoa);
- 
- 	/* inbound */
- 	_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  haaddr, oldcoa, e->reqid_toha);
--	_set_sp(&sp, e, XFRM_POLICY_IN, &in6addr_any, hoa,
-+	_set_sp(&sp, e, XFRM_POLICY_IN, &in6addr_any, 0, hoa, 0,
- 		ifindex, MIP6_ENTITY_HA);
- 	if ((err = xfrm_sendmigrate(&sp, &tmpl, haaddr, newcoa)) < 0) {
- 		dbg("migrate for INBOUND policy failed\n");
-@@ -415,7 +423,7 @@ static int _ha_tnl_update(const struct i
- 	/* forward */
- 	_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  haaddr, oldcoa, e->reqid_toha);
--	_set_sp(&sp, e, XFRM_POLICY_FWD, &in6addr_any, hoa,
-+	_set_sp(&sp, e, XFRM_POLICY_FWD, &in6addr_any, 0, hoa, 0,
- 		ifindex, MIP6_ENTITY_HA);
- 	if ((err = xfrm_sendmigrate(&sp, &tmpl, haaddr, newcoa)) < 0) {
- 		dbg("migrate for FORWARD policy failed\n");
-@@ -425,11 +433,54 @@ static int _ha_tnl_update(const struct i
- 	/* outbound */
- 	_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  oldcoa, haaddr, e->reqid_tomn);
--	_set_sp(&sp, e, XFRM_POLICY_OUT, hoa, &in6addr_any,
-+	_set_sp(&sp, e, XFRM_POLICY_OUT, hoa, 0, &in6addr_any, 0,
- 		ifindex, MIP6_ENTITY_HA);
- 	if ((err = xfrm_sendmigrate(&sp, &tmpl, newcoa, haaddr)) < 0) {
- 		dbg("migrate for OUTBOUND policy failed\n");
-         	goto end;
-+	}
-+
-+	/* Mobile router case */
-+	if ( (e->type == IPSEC_POLICY_TYPE_TUNNELPAYLOAD) && mnp)
-+	{
-+		struct list_head *list;
-+
-+		/* We have to modify rules to protect traffic to and from MNP's, the same way as HoA */
-+		list_for_each(list, mnp)
-+		{
-+			struct prefix_list_entry *p;
-+			p = list_entry(list, struct prefix_list_entry, list);
-+
-+			/* inbound */
-+			_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  haaddr, oldcoa, e->reqid_toha);
-+			_set_sp(&sp, e, XFRM_POLICY_IN, &in6addr_any, 0, &p->ple_prefix, p->ple_plen,
-+				ifindex, MIP6_ENTITY_HA);
-+			if ((err = xfrm_sendmigrate(&sp, &tmpl, haaddr, newcoa)) < 0) {
-+				dbg("migrate for INBOUND policy failed\n");
-+        			goto end;
-+			}
-+
-+			/* forward */
-+			_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  haaddr, oldcoa, e->reqid_toha);
-+			_set_sp(&sp, e, XFRM_POLICY_FWD, &in6addr_any, 0, &p->ple_prefix, p->ple_plen,
-+				ifindex, MIP6_ENTITY_HA);
-+			if ((err = xfrm_sendmigrate(&sp, &tmpl, haaddr, newcoa)) < 0) {
-+				dbg("migrate for FORWARD policy failed\n");
-+				goto end;
-+			}
-+
-+			/* outbound */
-+			_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  oldcoa, haaddr, e->reqid_tomn);
-+			_set_sp(&sp, e, XFRM_POLICY_OUT, &p->ple_prefix, p->ple_plen, &in6addr_any, 0,
-+				ifindex, MIP6_ENTITY_HA);
-+			if ((err = xfrm_sendmigrate(&sp, &tmpl, newcoa, haaddr)) < 0) {
-+				dbg("migrate for OUTBOUND policy failed\n");
-+        			goto end;
-+			}
-+		}
- 	}
- 
-  end:
-@@ -440,13 +491,176 @@ int ha_ipsec_tnl_update(const struct in6
- 			const struct in6_addr *hoa,
- 			const struct in6_addr *coa,
- 			const struct in6_addr *old_coa,
--			int tunnel)
-+			int tunnel,
-+			struct list_head *mnp)
- {
- 	struct ha_ipsec_tnl_update b;
- 	b.coa = *coa;
- 	b.old_coa = *old_coa;
- 	b.tunnel = tunnel;
-+	b.mnp = mnp;
- 	return ipsec_policy_apply(haaddr, hoa, _ha_tnl_update, &b);
-+}
-+
-+struct ha_ipsec_mnp_update {
-+	int tunnel;
-+	struct list_head *old_mnps;
-+	struct list_head *new_mnps;
-+};
-+
-+/*
-+ *   Add/Delete MNP IPsec Security Policy
-+ */
-+static int _ha_mnp_pol_mod(const struct in6_addr *haaddr,
-+			   const struct in6_addr *hoa,
-+			   struct ipsec_policy_entry *e,
-+			   void *arg,
-+			   int add)
-+{
-+	int err = 0;
-+	struct ha_ipsec_mnp_update *parms = (struct ha_ipsec_mnp_update *)arg;
-+	struct xfrm_userpolicy_info sp;
-+	struct xfrm_user_tmpl tmpl;
-+	u_int16_t ipsec_proto;
-+	struct list_head *list, *old_mnps, *new_mnps, *main_mnps, *ref_mnps;
-+	int ifindex;
-+
-+	assert(haaddr);
-+	assert(hoa);
-+	assert(e);
-+	assert(arg);
-+
-+	ifindex = parms->tunnel;
-+	old_mnps = parms->old_mnps;
-+	new_mnps = parms->new_mnps;
-+
-+	if (e->type != IPSEC_POLICY_TYPE_TUNNELPAYLOAD)
-+		goto end;
-+
-+	/* XXX Limitation: Single IPsec proto can only be applied */
-+	if (ipsec_use_esp(e))
-+		ipsec_proto = IPPROTO_ESP;
-+	else if (ipsec_use_ah(e))
-+		ipsec_proto = IPPROTO_AH;
-+	else if (ipsec_use_ipcomp(e))
-+		ipsec_proto = IPPROTO_COMP;
-+	else {
-+		dbg("invalid ipsec proto\n");
-+		goto end;
-+	}
-+
-+	/* Reverse the search logic on lists based on expected
-+	 * action (add/del) */
-+	main_mnps = add ? new_mnps : old_mnps;
-+	ref_mnps = add ? old_mnps : new_mnps;
-+
-+	if (main_mnps == NULL)
-+		goto end;
-+
-+	/* We have to add/delete rules to protect traffic to
-+	   and from MNP's, the same way as HoA */
-+	list_for_each(list, main_mnps) {
-+		struct prefix_list_entry *p;
-+		p = list_entry(list, struct prefix_list_entry, list);
-+
-+		if (ref_mnps &&
-+		    prefix_list_find(ref_mnps, &p->ple_prefix, p->ple_plen))
-+			continue;
-+
-+		/* inbound */
-+		_set_sp(&sp, e, XFRM_POLICY_IN, &in6addr_any, 0, &p->ple_prefix, p->ple_plen,
-+			ifindex, MIP6_ENTITY_HA);
-+		_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
-+			  haaddr, hoa, e->reqid_toha);
-+		if (xfrm_ipsec_policy_mod(&sp, &tmpl, 1, add) < 0) {
-+			dbg("modifying INBOUND policy failed\n");
-+			err = -1;
-+			goto end;
-+		}
-+
-+		/* forward */
-+		_set_sp(&sp, e, XFRM_POLICY_FWD, &in6addr_any, 0, &p->ple_prefix, p->ple_plen,
-+			ifindex, MIP6_ENTITY_HA);
-+		_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
-+			  haaddr, hoa, e->reqid_toha);
-+		if (xfrm_ipsec_policy_mod(&sp, &tmpl, 1, add) < 0) {
-+			dbg("modifying FORWARD policy failed\n");
-+			err = -1;
-+			goto end;
-+		}
-+
-+		/* outbound */
-+		_set_sp(&sp, e, XFRM_POLICY_OUT, &p->ple_prefix, p->ple_plen, &in6addr_any, 0,
-+			ifindex, MIP6_ENTITY_HA);
-+		_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
-+			  hoa, haaddr, e->reqid_tomn);
-+		if (xfrm_ipsec_policy_mod(&sp, &tmpl, 1, add) < 0) {
-+			dbg("modifying OUTBOUND policy failed\n");
-+			err = -1;
-+			goto end;
-+		}
-+	}
-+
-+ end:
-+	return err;
-+}
-+
-+
-+/*
-+ *   Add SP entry (for MNP on HA)
-+ *
-+ *   NOTE:
-+ *   - This is a hook routine to ipsec_policy_apply()
-+ */
-+static int _ha_mnp_pol_add(const struct in6_addr *haaddr,
-+			   const struct in6_addr *hoa,
-+			   struct ipsec_policy_entry *e,
-+			   void *arg)
-+{
-+	return _ha_mnp_pol_mod(haaddr, hoa, e, arg, 1);
-+}
-+
-+int ha_ipsec_mnp_pol_add(const struct in6_addr *our_addr,
-+			 const struct in6_addr *peer_addr,
-+			 struct list_head *old_mnps,
-+			 struct list_head *new_mnps,
-+			 int tunnel)
-+{
-+	struct ha_ipsec_mnp_update b;
-+	b.tunnel = tunnel;
-+	b.old_mnps = old_mnps;
-+	b.new_mnps = new_mnps;
-+
-+	return ipsec_policy_apply(our_addr, peer_addr, _ha_mnp_pol_add, &b);
-+}
-+
-+/*
-+ *   Delete SP entry (for MNP on HA)
-+ *
-+ *   NOTE:
-+ *   - This is a hook routine to ipsec_policy_apply()
-+ */
-+static int _ha_mnp_pol_del(const struct in6_addr *haaddr,
-+			   const struct in6_addr *hoa,
-+			   struct ipsec_policy_entry *e,
-+			   void *arg)
-+{
-+	return _ha_mnp_pol_mod(haaddr, hoa, e, arg, 0);
-+}
-+
-+int ha_ipsec_mnp_pol_del(const struct in6_addr *our_addr,
-+			 const struct in6_addr *peer_addr,
-+			 struct list_head *old_mnps,
-+			 struct list_head *new_mnps,
-+			 int tunnel)
-+{
-+	struct ha_ipsec_mnp_update b;
-+	b.tunnel = tunnel;
-+	b.old_mnps = old_mnps;
-+	b.new_mnps = new_mnps;
-+
-+	return ipsec_policy_apply(our_addr, peer_addr,
-+				  _ha_mnp_pol_del, &b);
- }
- 
- /*
-@@ -459,7 +673,9 @@ static int _ha_tnl_pol_mod(const struct 
- 			   int add)
- {
- 	int err = 0;
--	int ifindex = *(int *)arg;
-+	struct ha_ipsec_tnl_update *parms = (struct ha_ipsec_tnl_update *)arg;
-+	int ifindex;
-+	struct list_head *mnp;
- 	struct xfrm_userpolicy_info sp;
- 	struct xfrm_user_tmpl tmpl;
- 	u_int16_t ipsec_proto;
-@@ -468,6 +684,9 @@ static int _ha_tnl_pol_mod(const struct 
- 	assert(hoa);
- 	assert(e);
- 	assert(arg);
-+
-+	ifindex = parms->tunnel;
-+	mnp = parms->mnp;
- 
- 	switch (e->type) {
- 	case IPSEC_POLICY_TYPE_TUNNELHOMETESTING:
-@@ -493,7 +712,7 @@ static int _ha_tnl_pol_mod(const struct 
- 	dump_migrate(ifindex, ipsec_proto, hoa, haaddr, NULL, NULL);
- 
- 	/* inbound */
--	_set_sp(&sp, e, XFRM_POLICY_IN, &in6addr_any, hoa,
-+	_set_sp(&sp, e, XFRM_POLICY_IN, &in6addr_any, 0, hoa, 0,
- 		ifindex, MIP6_ENTITY_HA);
- 	_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  haaddr, hoa, e->reqid_toha);
-@@ -504,7 +723,7 @@ static int _ha_tnl_pol_mod(const struct 
- 	}
- 
- 	/* forward */
--	_set_sp(&sp, e, XFRM_POLICY_FWD, &in6addr_any, hoa,
-+	_set_sp(&sp, e, XFRM_POLICY_FWD, &in6addr_any, 0, hoa, 0,
- 		ifindex, MIP6_ENTITY_HA);
- 	_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  haaddr, hoa, e->reqid_toha);
-@@ -515,7 +734,7 @@ static int _ha_tnl_pol_mod(const struct 
- 	}
- 
- 	/* outbound */
--	_set_sp(&sp, e, XFRM_POLICY_OUT, hoa, &in6addr_any,
-+	_set_sp(&sp, e, XFRM_POLICY_OUT, hoa, 0, &in6addr_any, 0,
- 		ifindex, MIP6_ENTITY_HA);
- 	_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  hoa, haaddr, e->reqid_tomn);
-@@ -525,6 +744,16 @@ static int _ha_tnl_pol_mod(const struct 
- 		goto end;
- 	}
- 
-+	/* Mobile Router case */
-+	if ((e->type == IPSEC_POLICY_TYPE_TUNNELPAYLOAD) && mnp) {
-+		struct ha_ipsec_mnp_update b;
-+
-+		b.tunnel = ifindex;
-+		b.old_mnps = add ? NULL : mnp;
-+		b.new_mnps = add ? mnp : NULL;
-+
-+		err = _ha_mnp_pol_mod(haaddr, hoa, e, (void *)&b, add);
-+	}
-  end:
- 	return err;
- }
-@@ -545,11 +774,14 @@ static int _ha_tnl_pol_add(const struct 
- 
- int ha_ipsec_tnl_pol_add(const struct in6_addr *our_addr, 
- 			 const struct in6_addr *peer_addr,
--			 int tunnel)
-+			 int tunnel,
-+			 struct list_head *mnp)
- {
--	int t = tunnel;
-+	struct ha_ipsec_tnl_update b;
-+	b.tunnel = tunnel;
-+	b.mnp = mnp;
- 
--	return ipsec_policy_apply(our_addr, peer_addr, _ha_tnl_pol_add, &t);
-+	return ipsec_policy_apply(our_addr, peer_addr, _ha_tnl_pol_add, &b);
- }
- 
- /*
-@@ -568,12 +800,15 @@ static int _ha_tnl_pol_del(const struct 
- 
- int ha_ipsec_tnl_pol_del(const struct in6_addr *our_addr, 
- 			 const struct in6_addr *peer_addr,
--			 int tunnel)
-+			 int tunnel,
-+			 struct list_head *mnp)
- {
--	int t = tunnel;
-+	struct ha_ipsec_tnl_update b;
-+	b.tunnel = tunnel;
-+	b.mnp = mnp;
- 
- 	return ipsec_policy_apply(our_addr, peer_addr,
--				  _ha_tnl_pol_del, &t);
-+				  _ha_tnl_pol_del, &b);
- }
- 
- /*
-@@ -631,7 +866,7 @@ static int _mn_tnl_update(const struct i
- 	/* outbound */
- 	_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  haaddr, oldcoa, e->reqid_toha);
--	_set_sp(&sp, e, XFRM_POLICY_OUT, &in6addr_any, hoa,
-+	_set_sp(&sp, e, XFRM_POLICY_OUT, &in6addr_any, 0, hoa, 0,
- 		ifindex, MIP6_ENTITY_MN);
- 	if ((err = xfrm_sendmigrate(&sp, &tmpl, haaddr, newcoa)) < 0) {
- 		dbg("migrate for OUTBOUND policy failed\n");
-@@ -641,7 +876,7 @@ static int _mn_tnl_update(const struct i
- 	/* inbound */
- 	_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  oldcoa, haaddr, e->reqid_tomn);
--	_set_sp(&sp, e, XFRM_POLICY_IN, hoa, &in6addr_any,
-+	_set_sp(&sp, e, XFRM_POLICY_IN, hoa, 0, &in6addr_any, 0,
- 		ifindex, MIP6_ENTITY_MN);
- 	if ((err = xfrm_sendmigrate(&sp, &tmpl, newcoa, haaddr)) < 0) {
- 		dbg("migrate for INBOUND policy (1) failed\n");
-@@ -657,7 +892,7 @@ static int _mn_tnl_update(const struct i
- 		/* template */
- 		_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
- 			  oldcoa, haaddr, e->reqid_tomn);
--		_set_sp(&sp, e, XFRM_POLICY_IN, hoa, &in6addr_any,
-+		_set_sp(&sp, e, XFRM_POLICY_IN, hoa, 0, &in6addr_any, 0,
- 			ifindex, MIP6_ENTITY_MN);
- 		/* additional settings */
- 		sp.priority = MIP6_PRIO_RO_SIG_IPSEC;
-@@ -666,6 +901,52 @@ static int _mn_tnl_update(const struct i
- 		if ((err = xfrm_sendmigrate(&sp, &tmpl, newcoa, haaddr)) < 0) {
- 			dbg("migrate for INBOUND policy (2) failed\n");
- 			goto end;
-+		}
-+	}
-+
-+	/*
-+	 * If we are a Mobile Router, we also need to migrate IN/FWD/OUT rules
-+	 * for forwarded traffic in case we have TUNNELPAYLOAD protection.
-+	 */
-+	if ((e->type == IPSEC_POLICY_TYPE_TUNNELPAYLOAD) && (bule->home->mob_rtr))
-+	{
-+		struct list_head *mnp;
-+
-+		list_for_each(mnp, &bule->home->mob_net_prefixes)
-+		{
-+			struct prefix_list_entry *p;
-+			p = list_entry(mnp, struct prefix_list_entry, list);
-+
-+			/* outbound */
-+			_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  haaddr, oldcoa, e->reqid_toha);
-+			_set_sp(&sp, e, XFRM_POLICY_OUT, &in6addr_any, 0, &p->ple_prefix, p->ple_plen,
-+				ifindex, MIP6_ENTITY_MN);
-+			if ((err = xfrm_sendmigrate(&sp, &tmpl, haaddr, newcoa)) < 0) {
-+				dbg("migrate for OUTBOUND policy failed\n");
-+				goto end;
-+			}
-+
-+			/* forwarded */
-+			_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  oldcoa, haaddr, e->reqid_tomn);
-+			_set_sp(&sp, e, XFRM_POLICY_IN, &p->ple_prefix, p->ple_plen, &in6addr_any, 0,
-+				ifindex, MIP6_ENTITY_MN);
-+			if ((err = xfrm_sendmigrate(&sp, &tmpl, newcoa, haaddr)) < 0) {
-+				dbg("migrate for INBOUND policy (1) failed\n");
-+				goto end;
-+			}
-+
-+			/* inbound */
-+			_set_tmpl(&tmpl, 0, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  oldcoa, haaddr, e->reqid_tomn);
-+			_set_sp(&sp, e, XFRM_POLICY_IN, &p->ple_prefix, p->ple_plen, &in6addr_any, 0,
-+				ifindex, MIP6_ENTITY_MN);
-+			if ((err = xfrm_sendmigrate(&sp, &tmpl, newcoa, haaddr)) < 0) {
-+				dbg("migrate for INBOUND policy (1) failed\n");
-+				goto end;
-+			}
-+
- 		}
- 	}
- 
-@@ -724,7 +1005,7 @@ static int _mn_tnl_pol_mod(const struct 
- 	dump_migrate(ifindex, ipsec_proto, hoa, haaddr, NULL, NULL);
- 
- 	/* inbound */
--	_set_sp(&sp, e, XFRM_POLICY_IN, hoa, &in6addr_any,
-+	_set_sp(&sp, e, XFRM_POLICY_IN, hoa, 0, &in6addr_any, 0,
- 		ifindex, MIP6_ENTITY_MN);
- 	_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  hoa, haaddr, e->reqid_tomn);
-@@ -735,7 +1016,7 @@ static int _mn_tnl_pol_mod(const struct 
- 	}
- 		
- 	/* outbound */
--	_set_sp(&sp, e, XFRM_POLICY_OUT, &in6addr_any, hoa,
-+	_set_sp(&sp, e, XFRM_POLICY_OUT, &in6addr_any, 0, hoa, 0,
- 		ifindex, MIP6_ENTITY_MN);
- 	_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
- 		  haaddr, hoa, e->reqid_toha);
-@@ -758,6 +1039,54 @@ static int _mn_tnl_pol_mod(const struct 
- 			mn_ipsec_recv_bu_tnl_pol_del(bule, ifindex, e);
- 			/* restore wildrecv SPD entry for processing BU */
- 			err = cn_wildrecv_bu_pol_add();
-+		}
-+	}
-+
-+	/*
-+	 * If we are a Mobile Router, we also need to create IN/FWD/OUT rules
-+	 * for forwarded traffic in case we have TUNNELPAYLOAD protection.
-+	 */
-+	if ((e->type == IPSEC_POLICY_TYPE_TUNNELPAYLOAD) && (bule->home->mob_rtr))
-+	{
-+		struct list_head *mnp;
-+
-+		list_for_each(mnp, &bule->home->mob_net_prefixes)
-+		{
-+			struct prefix_list_entry *p;
-+			p = list_entry(mnp, struct prefix_list_entry, list);
-+
-+			/* inbound */
-+			_set_sp(&sp, e, XFRM_POLICY_IN, &p->ple_prefix, p->ple_plen, &in6addr_any, 0,
-+				ifindex, MIP6_ENTITY_MN);
-+			_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  hoa, haaddr, e->reqid_tomn);
-+			if (xfrm_ipsec_policy_mod(&sp, &tmpl, 1, add) < 0) {
-+				dbg("modifying INBOUND policy failed.\n");
-+				err = -1;
-+				goto end;
-+			}
-+
-+			/* forward */
-+			_set_sp(&sp, e, XFRM_POLICY_FWD, &p->ple_prefix, p->ple_plen, &in6addr_any, 0,
-+				ifindex, MIP6_ENTITY_MN);
-+			_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  hoa, haaddr, e->reqid_tomn);
-+			if (xfrm_ipsec_policy_mod(&sp, &tmpl, 1, add) < 0) {
-+				dbg("modifying INBOUND policy failed.\n");
-+				err = -1;
-+				goto end;
-+			}
-+
-+			/* outbound */
-+			_set_sp(&sp, e, XFRM_POLICY_OUT, &in6addr_any, 0, &p->ple_prefix, p->ple_plen,
-+				ifindex, MIP6_ENTITY_MN);
-+			_set_tmpl(&tmpl, AF_INET6, ipsec_proto, XFRM_MODE_TUNNEL,
-+				  haaddr, hoa, e->reqid_toha);
-+			if (xfrm_ipsec_policy_mod(&sp, &tmpl, 1, add) < 0) {
-+				dbg("modifying OUTBOUND policy failed.\n");
-+				err = -1;
-+				goto end;
-+			}
- 		}
- 	}
- 
-diff -r a7e20b0b5c43 src/ipsec.h
---- a/src/ipsec.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/ipsec.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -82,15 +82,30 @@ int ha_ipsec_tnl_update(const struct in6
- 			const struct in6_addr *hoa,
- 			const struct in6_addr *coa,
- 			const struct in6_addr *old_coa,
--			int tunnel);
-+			int tunnel,
-+			struct list_head *mnp);
-+
-+int ha_ipsec_mnp_pol_del(const struct in6_addr *our_addr,
-+			 const struct in6_addr *peer_addr,
-+			 struct list_head *old_mnps,
-+			 struct list_head *new_mnps,
-+			 int tunnel);
-+
-+int ha_ipsec_mnp_pol_add(const struct in6_addr *our_addr,
-+			 const struct in6_addr *peer_addr,
-+			 struct list_head *old_mnps,
-+			 struct list_head *new_mnps,
-+			 int tunnel);
- 
- int ha_ipsec_tnl_pol_add(const struct in6_addr *our_addr, 
- 			 const struct in6_addr *peer_addr,
--			 int tunnel);
-+			 int tunnel,
-+			 struct list_head *mnp);
- 
- int ha_ipsec_tnl_pol_del(const struct in6_addr *our_addr, 
- 			 const struct in6_addr *peer_addr,
--			 int tunnel);
-+			 int tunnel,
-+			 struct list_head *mnp);
- 
- int mn_ipsec_tnl_update(const struct in6_addr *haaddr,
- 			const struct in6_addr *hoa,
-diff -r a7e20b0b5c43 src/mh.c
---- a/src/mh.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/mh.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -51,6 +51,7 @@
- #include "conf.h"
- #include "bcache.h"
- #include "keygen.h"
-+#include "prefix.h"
- 
- #define MH_DEBUG_LEVEL 1
- 
-@@ -75,6 +76,7 @@ int mh_opts_dup_ok[] = {
- 	0, /* Alternate CoA */
- 	0, /* Nonce Index */
- 	0, /* Binding Auth Data */
-+	1, /* Mobile Network Prefix */
- };
- 
- #define __MH_SENTINEL (IP6_MH_TYPE_MAX + 1)
-@@ -401,6 +403,46 @@ static int create_opt_pad(struct iovec *
- 	return 0;
- }
- 
-+int mh_create_opt_mob_net_prefix(struct iovec *iov, int mnp_count,
-+				 struct list_head *mnps)
-+{
-+	int optlen = (mnp_count * sizeof(struct ip6_mh_opt_mob_net_prefix) +
-+		      (mnp_count - 1) * sizeof(_pad4));
-+	struct list_head *l;
-+	int i = 0;
-+	uint8_t *data;
-+	iov->iov_base = malloc(optlen);
-+	iov->iov_len = optlen;
-+
-+	if (iov->iov_base == NULL)
-+		return -ENOMEM;
-+
-+	memset(iov->iov_base, 0, iov->iov_len);
-+	data = (uint8_t *)iov->iov_base;
-+
-+	list_for_each(l, mnps) {
-+		struct prefix_list_entry *p;
-+		struct ip6_mh_opt_mob_net_prefix *mnp;
-+
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		mnp = (struct ip6_mh_opt_mob_net_prefix *)data;
-+
-+		mnp->ip6mnp_type = IP6_MHOPT_MOB_NET_PRFX;
-+		mnp->ip6mnp_len = 18;
-+		mnp->ip6mnp_prefix_len = p->ple_plen;
-+		mnp->ip6mnp_prefix = p->ple_prefix;
-+
-+		data += sizeof(struct ip6_mh_opt_mob_net_prefix);
-+
-+		/* do internal padding here, so one iovec for MNPs is enough */
-+		if (++i < mnp_count) {
-+		  memcpy(data, _pad4, sizeof(_pad4));
-+		  data += sizeof(_pad4);
-+		}
-+	}
-+	return 0;
-+}
-+
- static size_t mh_length(struct iovec *vec, int count)
- {
- 	size_t len = 0;
-@@ -441,6 +483,9 @@ static int mh_try_pad(const struct iovec
- 			break;
- 		case IP6_MHOPT_BAUTH:
- 			pad = optpad(8, 2, len); /* 8n+2 */
-+			break;
-+		case IP6_MHOPT_MOB_NET_PRFX:
-+			pad = optpad(8, 4, len); /* 8n+4 */
- 			break;
- 		}
- 		if (pad > 0) {
-@@ -694,6 +739,8 @@ static int mh_opt_len_chk(uint8_t type, 
- 		return len != sizeof(struct ip6_mh_opt_nonce_index);
- 	case IP6_MHOPT_BAUTH:
- 		return len != sizeof(struct ip6_mh_opt_auth_data);
-+	case IP6_MHOPT_MOB_NET_PRFX:
-+		return len != sizeof(struct ip6_mh_opt_mob_net_prefix);
- 	case IP6_MHOPT_PADN:
- 	default:
- 		return 0;
-diff -r a7e20b0b5c43 src/mh.h
---- a/src/mh.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/mh.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -10,7 +10,7 @@
- 
- /* If new types or options appear, these should be updated. */
- #define IP6_MH_TYPE_MAX IP6_MH_TYPE_BERROR
--#define IP6_MHOPT_MAX IP6_MHOPT_BAUTH
-+#define IP6_MHOPT_MAX IP6_MHOPT_MOB_NET_PRFX
- 
- struct in6_addr_bundle {
- 	struct in6_addr *src;
-@@ -74,6 +74,11 @@ int mh_create_opt_nonce_index(struct iov
- 
- int mh_create_opt_auth_data(struct iovec *iov);
- 
-+struct list_head;
-+
-+int mh_create_opt_mob_net_prefix(struct iovec *iov, int mnp_count,
-+				 struct list_head *mnps);
-+
- static inline void *mh_opt(const struct ip6_mh *mh,
- 			   const struct mh_options *mh_opts, uint8_t type)
- {
-diff -r a7e20b0b5c43 src/mn.c
---- a/src/mn.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/mn.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -326,7 +326,17 @@ static int mn_send_bu_msg(struct bulentr
- 		free_iov_data(iov, iov_ind);
- 		return -ENOMEM;
- 	}
--	if (!(bule->flags & IP6_MH_BU_HOME)) {
-+	if (bule->flags & IP6_MH_BU_HOME) {
-+		struct home_addr_info *hai = bule->home;
-+		if (bule->flags & IP6_MH_BU_MR && bu->ip6mhbu_lifetime &&
-+		    bule->home->mnp_count > 0 && conf.MobRtrUseExplicitMode &&
-+		    mh_create_opt_mob_net_prefix(&iov[iov_ind++],
-+						 hai->mnp_count,
-+						 &hai->mob_net_prefixes) < 0) {
-+			free_iov_data(iov, iov_ind);
-+			return -ENOMEM;
-+		}
-+	} else {
- 		if (mh_create_opt_nonce_index(&iov[iov_ind++], bule->rr.ho_ni,
- 					      bule->rr.co_ni) ||
- 		    mh_create_opt_auth_data(&iov[iov_ind++])) {
-@@ -616,6 +626,34 @@ static int mv_hoa(struct ifaddrmsg *ifa,
- 	return 0;
- }
- 
-+int nemo_mr_tnl_routes_add(struct home_addr_info *hai, int ifindex)
-+{
-+	struct list_head *l;
-+	struct prefix_list_entry *pe;
-+	list_for_each(l, &hai->mob_net_prefixes) {
-+		struct prefix_list_entry *p;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		if (route_add(ifindex, RT6_TABLE_MIP6, RTPROT_MIP,
-+			      0, IP6_RT_PRIO_MIP6_FWD,
-+			      &p->ple_prefix, p->ple_plen,
-+			      &in6addr_any, 0, NULL) < 0) {
-+			pe = p;
-+			goto undo;
-+		}
-+	}
-+	return 0;
-+undo:
-+	list_for_each(l, &hai->mob_net_prefixes) {
-+		struct prefix_list_entry *p;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_FWD,
-+			  &p->ple_prefix, p->ple_plen, &in6addr_any, 0, NULL);
-+		if (p == pe)
-+			break;
-+	}
-+	return -1;
-+}
-+
- static int mn_tnl_state_add(struct home_addr_info *hai, int ifindex, int all)
- {
- 	int err = 0;
-@@ -628,12 +666,31 @@ static int mn_tnl_state_add(struct home_
- 			mn_ro_pol_del(hai, ifindex, all);
- 		}
- 	}
-+	if (hai->mob_rtr &&
-+	    (err = nemo_mr_tnl_routes_add(hai, ifindex)) < 0) {
-+		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_OUT,
-+			  &hai->hoa.addr, 128, &in6addr_any, 0, NULL);
-+		mn_ro_pol_del(hai, ifindex, all);
-+	}
- 	return err;
-+}
-+
-+static void nemo_mr_tnl_routes_del(struct home_addr_info *hai, int ifindex)
-+{
-+	struct list_head *l;
-+	list_for_each(l, &hai->mob_net_prefixes) {
-+		struct prefix_list_entry *p;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_FWD,
-+			  &p->ple_prefix, p->ple_plen, &in6addr_any, 0, NULL);
-+	}
- }
- 
- static void mn_tnl_state_del(struct home_addr_info *hai, int ifindex, int all)
- {
- 	if (hai->home_reg_status != HOME_REG_NONE) {
-+		if (hai->mob_rtr)
-+			nemo_mr_tnl_routes_del(hai, ifindex);
- 		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_OUT, 
- 			  &hai->hoa.addr, 128, &in6addr_any, 0, NULL);
- 		mn_ro_pol_del(hai, ifindex, all);
-@@ -674,7 +731,8 @@ static int process_first_home_bu(struct 
- {
- 	int err = 0;
- 	bule->type = BUL_ENTRY;
--	bule->flags = IP6_MH_BU_HOME | IP6_MH_BU_ACK | hai->lladdr_comp;
-+	bule->flags = (IP6_MH_BU_HOME | IP6_MH_BU_ACK |
-+		       hai->lladdr_comp | hai->mob_rtr);
- 	bule->coa_changed = -1;
- 	bule->coa = hai->primary_coa.addr;
- 	bule->if_coa = hai->primary_coa.iif;
-@@ -1084,6 +1142,18 @@ static void mn_recv_ba(const struct ip6_
- 	if (bule->flags & IP6_MH_BU_HOME) {
- 		struct home_addr_info *hai = bule->home;
- 		struct ip6_mh_opt_refresh_advice *bra;
-+
-+		if (bule->flags & IP6_MH_BU_MR &&
-+		    !(ba->ip6mhba_flags & IP6_MH_BA_MR)) {
-+			if (hai->use_dhaad) {
-+				mn_change_ha(hai);
-+			} else {
-+				int one = 1;
-+				bul_iterate(&hai->bul, mn_dereg, &one);
-+			}
-+			pthread_rwlock_unlock(&mn_lock);
-+			return;
-+		}
- 		if (!tsisset(ba_lifetime)) {
- 			int type = FLUSH_FAILED;
- 			mn_dereg_home(hai);
-@@ -1251,12 +1321,73 @@ static int flag_hoa(struct ifaddrmsg *if
- 	return 0;
- }
- 
-+static void nemo_mr_rules_del(struct home_addr_info *hinfo)
-+{
-+	struct list_head *l;
-+
-+	list_for_each(l, &hinfo->mob_net_prefixes) {
-+		struct prefix_list_entry *p = NULL;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		rule_del(NULL, RT6_TABLE_MIP6,
-+			 IP6_RULE_PRIO_MIP6_FWD, RTN_UNICAST,
-+			 &p->ple_prefix, p->ple_plen, &in6addr_any, 0, 0);
-+		rule_del(NULL, RT6_TABLE_MAIN,
-+			 IP6_RULE_PRIO_MIP6_MNP_IN, RTN_UNICAST,
-+			 &in6addr_any, 0, &p->ple_prefix, p->ple_plen, 0);
-+	}
-+}
-+
-+static int nemo_mr_rules_add(struct home_addr_info *hinfo)
-+{
-+	struct prefix_list_entry *pe = NULL;
-+	struct list_head *l;
-+
-+	list_for_each(l, &hinfo->mob_net_prefixes) {
-+		struct prefix_list_entry *p = NULL;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		if (rule_add(NULL, RT6_TABLE_MAIN,
-+			     IP6_RULE_PRIO_MIP6_MNP_IN, RTN_UNICAST,
-+			     &in6addr_any, 0,
-+			     &p->ple_prefix, p->ple_plen, 0) < 0) {
-+			pe = p;
-+			goto undo;
-+		}
-+		if (rule_add(NULL, RT6_TABLE_MIP6,
-+			     IP6_RULE_PRIO_MIP6_FWD, RTN_UNICAST,
-+			     &p->ple_prefix, p->ple_plen,
-+			     &in6addr_any, 0, 0) < 0) {
-+			rule_del(NULL, RT6_TABLE_MAIN,
-+				 IP6_RULE_PRIO_MIP6_MNP_IN, RTN_UNICAST,
-+				 &in6addr_any, 0, &p->ple_prefix, p->ple_plen, 0);
-+			pe = p;
-+			goto undo;
-+		}
-+	}
-+	return 0;
-+undo:
-+	list_for_each(l, &hinfo->mob_net_prefixes) {
-+		struct prefix_list_entry *p = NULL;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		rule_del(NULL, RT6_TABLE_MIP6,
-+			 IP6_RULE_PRIO_MIP6_FWD,  RTN_UNICAST,
-+			 &p->ple_prefix, p->ple_plen, &in6addr_any, 0, 0);
-+		rule_del(NULL, RT6_TABLE_MAIN,
-+			 IP6_RULE_PRIO_MIP6_MNP_IN, RTN_UNICAST,
-+			 &in6addr_any, 0, &p->ple_prefix, p->ple_plen, 0);
-+		if (p == pe)
-+			break;
-+	}
-+	return -1;
-+}
-+
- static void clean_home_addr_info(struct home_addr_info *hai)
- {
- 	struct flag_hoa_args arg;
- 	int plen = (hai->hoa.iif == hai->if_tunnel ? 128 : hai->plen);
- 
- 	list_del(&hai->list);
-+	if (hai->mob_rtr)
-+		nemo_mr_rules_del(hai);
- 	arg.target = hai;
- 	arg.flag = 0;
- 	addr_do(&hai->hoa.addr, plen,
-@@ -1310,13 +1441,23 @@ static struct home_addr_info *hai_copy(s
- 
- 		if (pthread_mutex_init(&hai->ha_list.c_lock, NULL))
- 			goto undo;
-+
-+		INIT_LIST_HEAD(&hai->mob_net_prefixes);
-+		if (hai->mob_rtr &&
-+		    prefix_list_copy(&conf_hai->mob_net_prefixes,
-+				     &hai->mob_net_prefixes) < 0)
-+			goto mutex_undo;
-+
- 		INIT_LIST_HEAD(&hai->ro_policies);
- 		if (rpl_copy(&conf_hai->ro_policies, &hai->ro_policies) < 0)
--			goto mutex_undo;
-+			goto mnp_undo;
-+
- 		INIT_LIST_HEAD(&hai->ha_list.tqe.list);
- 		INIT_LIST_HEAD(&hai->ha_list.home_agents);
- 	}
- 	return hai;
-+mnp_undo:
-+	prefix_list_free(&hai->mob_net_prefixes);
- mutex_undo:
- 	pthread_mutex_destroy(&hai->ha_list.c_lock);
- undo:
-@@ -1337,6 +1478,15 @@ static int conf_home_addr_info(struct ho
- 	if  ((hai = hai_copy(conf_hai)) == NULL)
- 		goto err;
- 
-+	if (hai->mob_rtr) {
-+		MDBG("is Mobile Router\n");
-+		list_for_each(list, &hai->mob_net_prefixes) {
-+			struct prefix_list_entry *p;
-+			p = list_entry(list, struct prefix_list_entry, list);
-+			MDBG("Mobile Network Prefix %x:%x:%x:%x:%x:%x:%x:%x/%d\n",
-+			     NIP6ADDR(&p->ple_prefix), p->ple_plen);
-+		}
-+	}
- 	if (IN6_IS_ADDR_UNSPECIFIED(&hai->ha_addr)) {
- 		hai->use_dhaad = 1;
- 	} else {
-@@ -1379,6 +1529,9 @@ static int conf_home_addr_info(struct ho
- 
- 	if (addr_do(&hai->hoa.addr, 128,
- 		    hai->if_tunnel, &arg, flag_hoa) < 0) {
-+		goto clean_err;
-+	}
-+	if (hai->mob_rtr && nemo_mr_rules_add(hai) < 0) {
- 		goto clean_err;
- 	}
- 	hai->at_home = hai->hoa.iif == hai->if_home;
-diff -r a7e20b0b5c43 src/mn.h
---- a/src/mn.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/mn.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -45,9 +45,11 @@ struct ha_candidate_list {
- 	pthread_mutex_t c_lock;
- };
- 
--#define	HOME_LINK_BLOCK	0x1
--#define	HOME_ADDR_BLOCK	0x2
--#define	HOME_ADDR_RULE_BLOCK	0x4
-+#define	HOME_LINK_BLOCK	0x01
-+#define	HOME_ADDR_BLOCK	0x02
-+#define	HOME_ADDR_RULE_BLOCK	0x04
-+#define	NEMO_RA_BLOCK	0x08
-+#define	NEMO_FWD_BLOCK	0x10
- 
- struct mn_addr {
- 	struct in6_addr addr;
-@@ -84,7 +86,10 @@ struct home_addr_info {
- 	int if_block;
- 	short hwalen;
- 	uint8_t altcoa;
-+	uint16_t mob_rtr;
- 	char name[IF_NAMESIZE];
-+	int mnp_count;
-+	struct list_head mob_net_prefixes;
- };
- 
- enum {
-diff -r a7e20b0b5c43 src/movement.c
---- a/src/movement.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/movement.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -78,6 +78,7 @@ static int conf_default_rs = 3;
- static int conf_default_rs = 3;
- static int conf_default_rs_ival = 4;
- 
-+static int conf_forwarding = 0;
- static int conf_autoconf = 1;
- static int conf_ra_defrtr = 0;
- static int conf_rs = 0;
-@@ -177,6 +178,12 @@ static void __md_free_router(struct md_r
- 
- 		route_del(rtr->ifindex, RT_TABLE_MAIN, 0,
- 			  &in6addr_any, 0, &in6addr_any, 0, &rtr->lladdr);
-+
-+		/* delete default route for the packets coming from the
-+		 * Mobile Network
-+		 */
-+		route_del(rtr->ifindex, RT6_TABLE_MIP6, 0,
-+			  &in6addr_any, 0, &in6addr_any, 0, &rtr->lladdr);
- 	}
- 	list_for_each_safe(l, n, &rtr->prefixes) {
- 		struct prefix_list_entry *p;
-@@ -231,8 +238,31 @@ static void md_expire_coa(struct md_inet
- 	list_add_tail(&coa->list, &iface->expired_coas);
- }
- 
-+static void md_reset_egress_forward(void)
-+{
-+	struct list_head *l;
-+	int forward = 0;;
-+
-+	if (list_empty(&ifaces))
-+		return;
-+
-+	list_for_each(l, &ifaces) {
-+		struct md_inet6_iface *i;
-+		i = list_entry(l, struct md_inet6_iface, list);
-+		forward |= i->home_link;
-+	}
-+	list_for_each(l, &ifaces) {
-+		struct md_inet6_iface *i;
-+		i = list_entry(l, struct md_inet6_iface, list);
-+		set_iface_proc_entry(PROC_SYS_IP6_FORWARDING,
-+				     i->name, forward);
-+	}
-+}
-+
- static void md_reset_home_link(struct md_inet6_iface *i)
- {
-+	if (i->home_link)
-+		md_reset_egress_forward();
- 	i->home_link = 0;
- 	i->ll_dad_unsafe = 0;
- }
-@@ -648,6 +678,8 @@ md_create_inet6_iface(struct ifinfomsg *
- 
- static void iface_proc_entries_init(struct md_inet6_iface *iface)
- {
-+	set_iface_proc_entry(PROC_SYS_IP6_FORWARDING, iface->name,
-+			     conf_forwarding);
- 	set_iface_proc_entry(PROC_SYS_IP6_AUTOCONF, iface->name,
- 			     conf_autoconf);
- 	set_iface_proc_entry(PROC_SYS_IP6_ACCEPT_RA_DEFRTR, iface->name, conf_ra_defrtr);
-@@ -878,6 +910,8 @@ static void md_check_home_link(struct md
- 			ll_dad_unsafe |= hai->lladdr_comp;
- 		}
- 	}
-+	if (i->home_link != home_link)
-+		md_reset_egress_forward();
- 	i->home_link = home_link;
- 	i->ll_dad_unsafe = ll_dad_unsafe;
- }
-@@ -1189,6 +1223,11 @@ static void md_update_router_stats(struc
- 		  RTF_DEFAULT|RTF_ADDRCONF, 1024,
- 		  &in6addr_any, 0, &in6addr_any, 0, &rtr->lladdr);
- 	
-+	/* default route for the packet coming from the Mobile Network */
-+	route_add(rtr->ifindex, RT6_TABLE_MIP6, RTPROT_MIP,
-+		  0, IP6_RT_PRIO_MIP6_FWD,
-+		  &in6addr_any, 0, &in6addr_any, 0, &rtr->lladdr);
-+
- 	list_for_each(list, &rtr->prefixes) {
- 		struct prefix_list_entry *p;
- 		p = list_entry(list, struct prefix_list_entry, list);
-@@ -1737,6 +1776,8 @@ static void iface_default_proc_entries_c
- 
- static void iface_proc_entries_cleanup(struct md_inet6_iface *iface)
- {
-+	set_iface_proc_entry(PROC_SYS_IP6_FORWARDING, iface->name,
-+			     iface->devconf[DEVCONF_FORWARDING]);
- 	set_iface_proc_entry(PROC_SYS_IP6_AUTOCONF, iface->name,
- 			     iface->devconf[DEVCONF_AUTOCONF]);
- 	set_iface_proc_entry(PROC_SYS_IP6_ACCEPT_RA_DEFRTR, iface->name,
-diff -r a7e20b0b5c43 src/ndisc.c
---- a/src/ndisc.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/ndisc.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -106,7 +106,7 @@ int proxy_nd_start(int ifindex, struct i
- {
- 	struct in6_addr lladdr;
- 	int err;
--	int nd_flags = 0;
-+	int nd_flags = bu_flags&IP6_MH_BU_MR ? NTF_ROUTER : 0;
- 
- 	err = pneigh_add(ifindex, nd_flags, target);
- 
-@@ -117,7 +117,9 @@ int proxy_nd_start(int ifindex, struct i
- 			pneigh_del(ifindex, target);
- 	}
- 	if (!err) {
--		uint32_t na_flags = ND_NA_FLAG_OVERRIDE;
-+		uint32_t na_flags = (ND_NA_FLAG_OVERRIDE |
-+				     nd_flags ? ND_NA_FLAG_ROUTER : 0);
-+
- 		ndisc_send_na(ifindex, src, &in6addr_all_nodes_mc,
- 			      target, na_flags);
- 
-diff -r a7e20b0b5c43 src/policy.c
---- a/src/policy.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/policy.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -107,6 +107,23 @@ int default_max_binding_life(const struc
- 	return 0;
- }
- 
-+static inline int
-+policy_check_mob_net_prefix(const struct policy_bind_acl_entry *acl,
-+			    const struct ip6_mh_binding_update *bu,
-+			    const struct mh_options *opts)
-+{
-+	struct ip6_mh_opt_mob_net_prefix *op;
-+	for (op = mh_opt(&bu->ip6mhbu_hdr, opts, IP6_MHOPT_MOB_NET_PRFX);
-+	     op != NULL;
-+	     op = mh_opt_next(&bu->ip6mhbu_hdr, opts, op)) {
-+		if (!prefix_list_get(&acl->mob_net_prefixes,
-+				     &op->ip6mnp_prefix,
-+				     op->ip6mnp_prefix_len))
-+			return IP6_MH_BAS_NOT_AUTH_FOR_PRFX;
-+	}
-+	return IP6_MH_BAS_ACCEPTED;
-+}
-+
- /**
-  * default_discard_binding - check for discard policy
-  * @remote_hoa: remote MN's home address
-@@ -127,10 +144,20 @@ int default_discard_binding(const struct
- 	int ret = def_bind_policy;
- 	struct policy_bind_acl_entry *acl;
- 
-+	if (bu->ip6mhbu_flags & IP6_MH_BU_MR && !conf.HaAcceptMobRtr)
-+		return IP6_MH_BAS_MR_OP_NOT_PERMITTED;
-+
- 	pthread_rwlock_rdlock(&policy_lock);
- 	acl = hash_get(&policy_bind_acl_hash, NULL, remote_hoa);
- 	if (acl != NULL) {
- 		ret = acl->bind_policy;
-+		if (ret < IP6_MH_BAS_UNSPECIFIED &&
-+		    bu->ip6mhbu_flags & IP6_MH_BU_MR) {
-+			struct mh_options opts;
-+			mh_opt_parse(&bu->ip6mhbu_hdr, len,
-+				     sizeof(*bu), &opts);
-+			ret = policy_check_mob_net_prefix(acl, bu, &opts);
-+		}
- 	}
- 	pthread_rwlock_unlock(&policy_lock);
- 	return ret;
-@@ -227,6 +254,42 @@ int default_best_ro_coa(const struct in6
- 	return 0;
- }
- 
-+int default_get_mnp_count(const struct in6_addr *hoa)
-+{
-+	int ret = 0;
-+	struct policy_bind_acl_entry *acl;
-+	pthread_rwlock_rdlock(&policy_lock);
-+	acl = hash_get(&policy_bind_acl_hash, NULL, hoa);
-+	if (acl != NULL)
-+		ret = acl->mnp_count;
-+	pthread_rwlock_unlock(&policy_lock);
-+	return ret;
-+
-+}
-+
-+int default_get_mnps(const struct in6_addr *hoa,
-+		     const int mnp_count,
-+		     struct nd_opt_prefix_info *mnps)
-+{
-+	int i = 0;
-+	struct policy_bind_acl_entry *acl;
-+
-+	pthread_rwlock_rdlock(&policy_lock);
-+	acl = hash_get(&policy_bind_acl_hash, NULL, hoa);
-+	if (acl != NULL) {
-+		struct list_head *l;
-+		list_for_each(l, &acl->mob_net_prefixes) {
-+			struct prefix_list_entry *e;
-+			if (i >= mnp_count)
-+				break;
-+			e = list_entry(l, struct prefix_list_entry, list);
-+			mnps[i++] = e->pinfo;
-+		}
-+	}
-+	pthread_rwlock_unlock(&policy_lock);
-+	return i;
-+}
-+
- static int policy_bind_acle_cleanup(void *data, void *arg)
- {
- 	struct policy_bind_acl_entry *acl = data;
-diff -r a7e20b0b5c43 src/policy.h
---- a/src/policy.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/policy.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -10,12 +10,15 @@
- 
- struct ip6_mh_binding_update;
- struct nd_router_advert;
-+struct nd_opt_prefix_info;
- 
- struct policy_bind_acl_entry {
- 	struct list_head list;
- 	struct in6_addr hoa;
- 	int plen;
- 	int bind_policy;
-+	int mnp_count;
-+	struct list_head mob_net_prefixes;
- };
- 
- /**
-@@ -147,6 +150,12 @@ int default_best_ro_coa(const struct in6
- 			const struct in6_addr *cn,
- 			struct in6_addr *coa);
- 
-+int default_get_mnp_count(const struct in6_addr *hoa);
-+
-+int default_get_mnps(const struct in6_addr *hoa,
-+		     const int mnp_count,
-+		     struct nd_opt_prefix_info *mnps);
-+
- void policy_cleanup(void);
- 
- int policy_init(void);
-diff -r a7e20b0b5c43 src/proc_sys.h
---- a/src/proc_sys.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/proc_sys.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -14,6 +14,7 @@
- #define PROC_SYS_IP6_APP_SOLICIT "/proc/sys/net/ipv6/neigh/%s/app_solicit"
- #define PROC_SYS_IP6_BASEREACHTIME_MS "/proc/sys/net/ipv6/neigh/%s/base_reachable_time_ms"
- #define PROC_SYS_IP6_RETRANSTIMER_MS "/proc/sys/net/ipv6/neigh/%s/retrans_time_ms"
-+#define PROC_SYS_IP6_FORWARDING "/proc/sys/net/ipv6/conf/%s/forwarding"
- 
- int set_iface_proc_entry(const char *tmpl, const char *if_name, int val);
- 
-diff -r a7e20b0b5c43 src/rtnl.h
---- a/src/rtnl.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/rtnl.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -16,6 +16,7 @@
- #define IP6_RT_PRIO_MIP6_FWD 192
- #define IP6_RT_PRIO_ADDRCONF 256
- 
-+#define IP6_RULE_PRIO_MIP6_MNP_IN    1000
- #define IP6_RULE_PRIO_MIP6_HOA_OUT   1001
- #define IP6_RULE_PRIO_MIP6_COA_OUT   1002
- #define IP6_RULE_PRIO_MIP6_BLOCK     1003
-diff -r a7e20b0b5c43 src/scan.l
---- a/src/scan.l	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/scan.l	Tue Jan 08 11:28:48 2008 +0100
-@@ -136,6 +136,11 @@ MnRouterProbeTimeout		{ return MNROUTERP
- MnRouterProbeTimeout		{ return MNROUTERPROBETIMEOUT; }
- MnDiscardHaParamProb		{ return MNDISCARDHAPARAMPROB; }
- OptimisticHandoff		{ return OPTIMISTICHANDOFF; }
-+HaAcceptMobRtr   		{ return HAACCEPTMOBRTR; }
-+IsMobRtr       			{ return ISMOBRTR; }
-+HaServedPrefix       	       	{ return HASERVEDPREFIX; }
-+HomePrefix     			{ return HOMEPREFIX; }
-+MobRtrUseExplicitMode    	{ return MOBRTRUSEEXPLICITMODE; }
- internal			{ return INTERNAL; }
- 
- {addr}		{
-diff -r a7e20b0b5c43 src/vt.c
---- a/src/vt.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/vt.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -677,6 +677,16 @@ static int bcache_vt_dump(void *data, vo
- 	}
- 
- 	fprintf(vh->vh_stream, "\n");
-+
-+	/* Dump the registered MNP */
-+	{
-+		struct list_head *l;
-+		list_for_each(l, &bce->mob_net_prefixes) {
-+			struct prefix_list_entry *p;
-+			p = list_entry(l, struct prefix_list_entry, list);
-+			fprintf(vh->vh_stream, " MNP: %x:%x:%x:%x:%x:%x:%x:%x/%d\n", NIP6ADDR(&p->ple_prefix), p->ple_plen);
-+		}
-+	}
- 
- 	return 0;
- }
-diff -r a7e20b0b5c43 src/xfrm.c
---- a/src/xfrm.c	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/xfrm.c	Tue Jan 08 11:28:48 2008 +0100
-@@ -679,12 +679,73 @@ static int _mn_ha_ipsec_bypass_init(cons
- 	return err;
- }
- 
-+static int mr_ipsec_bypass_init(void)
-+{
-+	struct list_head *home;
-+	struct list_head *mnps;
-+	int err=0;
-+
-+	/* Loop for each HomeAddress info */
-+	list_for_each(home, &conf.home_addrs)
-+	{
-+		struct home_addr_info *hai;
-+		hai = list_entry(home, struct home_addr_info, list);
-+
-+		/* If Mobile Router for this link, loop for each MNP */
-+		if (hai->mob_rtr)
-+		{
-+			/* Add bypass policies to and from the MNP link */
-+			list_for_each(mnps, &hai->mob_net_prefixes)
-+			{
-+				struct prefix_list_entry * mnp;
-+				struct xfrm_selector sel;
-+
-+				mnp = list_entry(mnps, struct prefix_list_entry, list);
-+
-+				memset(&sel, 0, sizeof(sel));
-+				sel.family = AF_INET6;
-+				sel.user = getuid();
-+
-+				/* IN, src = MNP , dst = any */
-+				memcpy(&sel.saddr.a6, &mnp->ple_prefix, sizeof(sel.saddr.a6));
-+				sel.prefixlen_s = mnp->ple_plen;
-+
-+				err = xfrm_ipsec_policy_add(&sel, 0, XFRM_POLICY_IN,
-+				        		    XFRM_POLICY_ALLOW, MIP6_PRIO_MR_LOCAL_DATA_BYPASS,
-+							    NULL, 0);
-+
-+				/* XXX: what should we do in case of error? */
-+
-+				/* FWD, src = MNP , dst = any */
-+				err = xfrm_ipsec_policy_add(&sel, 0, XFRM_POLICY_FWD,
-+				        		    XFRM_POLICY_ALLOW, MIP6_PRIO_MR_LOCAL_DATA_BYPASS,
-+							    NULL, 0);
-+
-+				/* OUT, src = any , dst = MNP */
-+				memset(&sel.saddr.a6, 0, sizeof(sel.saddr.a6));
-+				sel.prefixlen_s = 0;
-+				memcpy(&sel.daddr.a6, &mnp->ple_prefix, sizeof(sel.daddr.a6));
-+				sel.prefixlen_d = mnp->ple_plen;
-+
-+				err = xfrm_ipsec_policy_add(&sel, 0, XFRM_POLICY_OUT,
-+				        		    XFRM_POLICY_ALLOW, MIP6_PRIO_MR_LOCAL_DATA_BYPASS,
-+							    NULL, 0);
-+			}
-+		}
-+	}
-+
-+	return err;
-+}
-+
- static inline int mn_ha_ipsec_init(void)
- {
- 	int err;
- 
- 	/* insert bypass policy */
- 	err = ipsec_policy_walk(_mn_ha_ipsec_bypass_init, NULL);
-+
-+	/* insert NEMO-related bypass */
-+	err = mr_ipsec_bypass_init();
- 
- 	err = ipsec_policy_walk(_mn_ha_ipsec_init, NULL);
- 
-@@ -787,9 +848,64 @@ static int _mn_ha_ipsec_bypass_cleanup(c
- 	return err;
- }
- 
-+static int mr_ipsec_bypass_cleanup(void)
-+{
-+	struct list_head *home;
-+	struct list_head *mnps;
-+	int err=0;
-+
-+	/* Loop for each HomeAddress info */
-+	list_for_each(home, &conf.home_addrs)
-+	{
-+		struct home_addr_info *hai;
-+		hai = list_entry(home, struct home_addr_info, list);
-+
-+		/* If Mobile Router for this link, loop for each MNP */
-+		if (hai->mob_rtr)
-+		{
-+			/* Delete bypass policies to and from the MNP link */
-+			list_for_each(mnps, &hai->mob_net_prefixes)
-+			{
-+				struct prefix_list_entry * mnp;
-+				struct xfrm_selector sel;
-+
-+				mnp = list_entry(mnps, struct prefix_list_entry, list);
-+
-+				memset(&sel, 0, sizeof(sel));
-+				sel.family = AF_INET6;
-+				sel.user = getuid();
-+
-+				/* IN, src = MNP , dst = any */
-+				memcpy(&sel.saddr.a6, &mnp->ple_prefix, sizeof(sel.saddr.a6));
-+				sel.prefixlen_s = mnp->ple_plen;
-+
-+				err = xfrm_ipsec_policy_del(&sel, XFRM_POLICY_IN);
-+
-+				/* XXX: what should we do in case of error? */
-+
-+				/* FWD, src = MNP , dst = any */
-+				err = xfrm_ipsec_policy_del(&sel, XFRM_POLICY_FWD);
-+
-+				/* OUT, src = any , dst = MNP */
-+				memset(&sel.saddr.a6, 0, sizeof(sel.saddr.a6));
-+				sel.prefixlen_s = 0;
-+				memcpy(&sel.daddr.a6, &mnp->ple_prefix, sizeof(sel.daddr.a6));
-+				sel.prefixlen_d = mnp->ple_plen;
-+
-+				err = xfrm_ipsec_policy_del(&sel, XFRM_POLICY_OUT);
-+			}
-+		}
-+	}
-+
-+	return err;
-+}
-+
-+
- static inline void mn_ha_ipsec_cleanup(void)
- {
- 	ipsec_policy_walk(_mn_ha_ipsec_bypass_cleanup, NULL);
-+
-+	(void)mr_ipsec_bypass_cleanup();
- 
- 	ipsec_policy_walk(_mn_ha_ipsec_cleanup, NULL);
- }
-@@ -1719,6 +1835,8 @@ int xfrm_pre_bu_add_bule(struct bulentry
- 		if (hai->home_block & HOME_LINK_BLOCK)
- 			xfrm_unblock_link(hai);
- 		xfrm_block_link(hai);
-+		if (hai->mob_rtr && !(hai->home_block & NEMO_FWD_BLOCK))
-+			xfrm_block_fwd(hai);
- 	}
- 	if (IN6_ARE_ADDR_EQUAL(&bule->hoa, &bule->coa)) {
- 		if (rdata)
-@@ -1784,6 +1902,8 @@ int xfrm_post_ba_mod_bule(struct bulentr
- 		struct home_addr_info *hai = bule->home;
- 		if (hai->home_block & HOME_LINK_BLOCK)
- 			xfrm_unblock_link(hai);
-+		if (hai->home_block & NEMO_FWD_BLOCK)
-+			xfrm_unblock_fwd(hai);
- 	}
- 	/* check if XFRM policies and states have already been cleaned up */
- 	if (IN6_ARE_ADDR_EQUAL(&bule->hoa, &bule->coa))
-@@ -2058,6 +2178,50 @@ void xfrm_unblock_hoa(struct home_addr_i
- 	hai->home_block &= ~HOME_ADDR_BLOCK;
- }
- 
-+/* block all RA messages sent by MR */
-+int xfrm_block_ra(struct home_addr_info *hai)
-+{
-+	int ret = 0;
-+	struct xfrm_selector sel;
-+	hai->home_block |= NEMO_RA_BLOCK;
-+	set_selector(&in6addr_any, &in6addr_any, IPPROTO_ICMPV6,
-+		     ND_ROUTER_ADVERT, 0, 0, &sel);
-+	if ((ret = xfrm_mip_policy_add(&sel, 0, XFRM_POLICY_OUT, XFRM_POLICY_BLOCK,
-+				   MIP6_PRIO_HOME_BLOCK, NULL, 0)))
-+		return ret;
-+	return ret;
-+}
-+
-+void xfrm_unblock_ra(struct home_addr_info *hai)
-+{
-+	struct xfrm_selector sel;
-+	set_selector(&in6addr_any, &in6addr_any, IPPROTO_ICMPV6,
-+		     ND_ROUTER_ADVERT, 0, 0, &sel);
-+	xfrm_mip_policy_del(&sel, XFRM_POLICY_OUT);
-+	hai->home_block &= ~NEMO_RA_BLOCK;
-+}
-+
-+/* block all forwarded packets */
-+int xfrm_block_fwd(struct home_addr_info *hai)
-+{
-+	int ret = 0;
-+	struct xfrm_selector sel;
-+	hai->home_block |= NEMO_FWD_BLOCK;
-+	set_selector(&in6addr_any, &in6addr_any, 0, 0, 0, 0, &sel);
-+	if ((ret = xfrm_mip_policy_add(&sel, 0, XFRM_POLICY_FWD, XFRM_POLICY_BLOCK,
-+				   MIP6_PRIO_HOME_BLOCK, NULL, 0)))
-+		return ret;
-+	return ret;
-+}
-+
-+void xfrm_unblock_fwd(struct home_addr_info *hai)
-+{
-+	struct xfrm_selector sel;
-+	set_selector(&in6addr_any, &in6addr_any, 0, 0, 0, 0, &sel);
-+	xfrm_mip_policy_del(&sel, XFRM_POLICY_FWD);
-+	hai->home_block &= ~NEMO_FWD_BLOCK;
-+}
-+
- int mn_ipsec_recv_bu_tnl_pol_add(struct bulentry *bule, int ifindex, 
- 				 struct ipsec_policy_entry *e)
- {
-diff -r a7e20b0b5c43 src/xfrm.h
---- a/src/xfrm.h	Wed Nov 28 16:43:32 2007 +0100
-+++ b/src/xfrm.h	Tue Jan 08 11:28:48 2008 +0100
-@@ -15,6 +15,7 @@
- #define MIP6_PRIO_RO_SIG_IPSEC		7	/* XXX: BU between MN-MN with IPsec */
- #define MIP6_PRIO_RO_SIG		8	/* XXX: BU between MN-CN */
- #define MIP6_PRIO_RO_SIG_ANY		9
-+#define MIP6_PRIO_MR_LOCAL_DATA_BYPASS	9	/* Bypass rule for local traffic in mobile network */
- #define MIP6_PRIO_RO_SIG_RR		10	/* XXX: MH(or HoTI/HoT) between MN-CN */
- #define MIP6_PRIO_RO_BLOCK		11
- #define MIP6_PRIO_NO_RO_SIG_ANY		12
-@@ -87,6 +88,12 @@ int xfrm_block_hoa(struct home_addr_info
- int xfrm_block_hoa(struct home_addr_info *hai);
- void xfrm_unblock_hoa(struct home_addr_info *hai);
- 
-+int xfrm_block_ra(struct home_addr_info *hai);
-+void xfrm_unblock_ra(struct home_addr_info *hai);
-+
-+int xfrm_block_fwd(struct home_addr_info *hai);
-+void xfrm_unblock_fwd(struct home_addr_info *hai);
-+
- int ha_mn_ipsec_pol_mod(struct in6_addr *haaddr,
- 			struct in6_addr *hoa);
- 
diff --git a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-mcoa-20080108.patch b/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-mcoa-20080108.patch
deleted file mode 100755
index 11217388cf..0000000000
--- a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-mcoa-20080108.patch
+++ /dev/null
@@ -1,5535 +0,0 @@
-diff -r 82fcd4bea972 NEWS.MCOA
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/NEWS.MCOA	Fri Jan 11 17:02:25 2008 +0100
-@@ -0,0 +1,103 @@
-+mipv6-daemon-umip-0.4-nepl-mcoa-20080108.patch
-+News and Bugfixes list since mipv6-daemon-umip-0.3-nepl-mcoa-20071022.patch:
-+
-+* Updated code on top of the latest NEPL patch
-+* No new features
-+
-+-----------------------------------------------------------------------
-+mipv6-daemon-umip-0.4-nepl-mcoa-20071022.patch
-+News and Bugfixes list since mipv6-daemon-umip-0.3-nepl-mcoa-20070613.patch:
-+
-+* Ported the code to UMIP 0.4. MCoA now runs on a 2.6.23 kernel, 
-+  with an UMIP 0.4-based code for the userland.
-+* Merged a fix to the proxy ND code for the HA (provided by 
-+  Tobias HOF): the HA can now be used as legacy node on the 
-+  Home Link (whereas it only worked as a gateway before).
-+
-+-----------------------------------------------------------------------
-+mipv6-daemon-umip-0.3-nepl-mcoa-20070613.patch
-+News and Bugfixes list since nemo-0.2-mcoa-beta2-20060630:
-+
-+* Ported the code to UMIP. MCoA now runs on a 2.6.21.3 kernel, 
-+  with an UMIP-based code for the userland.
-+* MCoA is now provided as a patch for the UMIP userland. 
-+* The MCoA kernel patch is not needed anymore as it has been 
-+  integrated in the mainline kernel.
-+* No new functionnalities were added.
-+
-+-----------------------------------------------------------------------
-+nemo-0.2-mcoa-beta3-20070118
-+News and Bugfixes list since nemo-0.2-mcoa-beta2-20060630:
-+
-+* Base code:
-+- Userland runs on a 2.6.16 kernel 
-+- Upgraded fwmark patch for 2.6.16 kernel
-+- MCoA userland code updated to nemo-20060725
-+
-+* Features:
-+- New "Reliable" option that allows to use the BU as a 
-+  heartbeat, and to automatically divert the traffic to 
-+  another interface when one MR-HA path fails. 
-+  See the manpage for details.
-+- MPS/MPA can now be used with MCoA.
-+- When handover occurs on an interface, forwarded traffic is now
-+  blocked only for the interface performing the handover (whereas 
-+  it was blocked globally before). The local traffic is also 
-+  blocked for the interface that performs the handover, whereas 
-+  it was blocked for the HoA interface before.
-+- Merged patch to support HoA from MNP (for Mobile Routers)
-+- Merged patch to support SIT tunnels
-+- Merged patch to fix the MR behaviour in the Home Network
-+  (the MR was not correctly forwarding packets from the MNNs)
-+
-+* Bugfixes:
-+- The source address used to send the BU was sometimes outdated 
-+  because the CoA was not correctly updated in the XFRM kernel 
-+  state.
-+- When packets originated from the MR were sent to the HA, the 
-+  HA did not behave correctly because the source address of the 
-+  packet may not match the one in the kernel XFRM state (that 
-+  can only store one CoA). Thus the MR behaviour has been 
-+  slightly changed to NOT use HAO dest. option when sending 
-+  packet to the HA (This behaviour seems to respect the MIP6 
-+  spec).
-+- When packets originated from the MR were sent to the HA, and 
-+  the MR handoffs, the HA still sent replied packets to the 
-+  old CoA (using Routing Header Type 2). The HA now updates 
-+  correctly the CoA stored in the kernel, but as the kernel 
-+  can only store 1 CoA at a time, when the HA replies to the 
-+  MR the path may be asymetric.
-+- Added more checks in the configuration file grammar to 
-+  avoid configuration errors for MCoA.
-+- Solved infinite loop when interface was declared as Interface
-+  but not in IfMultipleCoA.
-+- Fixed some bugs when MCoA was disabled. It now works fine when 
-+  not using MCoA. Interface prefence works also fine.
-+- Fixed bugs when one entry was invalidated: rules are now 
-+  correctly deleted.
-+- Fixed bugs when choosing the default rule: invalid BULE are 
-+  not looked up when searching for the default rule.
-+- Improved the MR and HA behaviour regarding error management.
-+
-+
-+-----------------------------------------------------------------------
-+nemo-0.2-mcoa-beta2-20060630
-+News and Bugfixes list since nemo-0.2-mcoa-beta1-20060531:
-+
-+- The MR was in some cases installing the same rules twice.
-+- The MR had a problem to install some rules after recovering a failure.
-+- The MR was stuck in an infinite loop at startup if MCoA was disabled
-+- The MR could not clean properly tunnels if registration failed with HA
-+- Policy issues when Returning home with a usual MR but using MCoA code
-+- When the MR only have 1 active interface, handoff policy is different 
-+  (rules not erased and dereg bu not send during handoff time)
-+- When the MR receives a BAck without BID option, whereas it sent a BU
-+  with a BID option, the MR only registers the prefered interface
-+
-+- If HA is not configured for MCoA, or MCoA not allowed for the HoA, then 
-+  BU is accepted but no BID option is sent in BAck
-+
-+- Merged the OptimisticHandoff patch 
-+- Merged the PPP patch
-+
-+-----------------------------------------------------------------------
-diff -r 82fcd4bea972 README.MCOA
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/README.MCOA	Fri Jan 11 17:02:25 2008 +0100
-@@ -0,0 +1,154 @@
-+--------------------------------------------
-+Multiple CoA implementation on UMIP
-+<http://software.nautilus6.org/MCoA/>
-+ver. 20080108
-+--------------------------------------------
-+Romain KUNTZ <kuntz(at)sfc.wide.ad.jp>
-+Jean LORCHAT <lorchat(at)sfc.wide.ad.jp>
-+Nautilus6 Project <http://www.nautilus6.org>
-+--------------------------------------------
-+
-+
-+1. What is Multiple CoA?
-+------------------------
-+
-+Multiple CoA (Multiple Care-of Addresses Registration, MCoA) allows 
-+a Mobile Node to register multiple Care-of Addresses at the same 
-+time to its Home Agent. Main benefits, amongst others, are policy 
-+routing and fault tolerance for the Mobile Router.
-+
-+The current implementation is based on 
-+draft-ietf-monami6-multiplecoa-01 and is shipped as a tarball
-+that contains kernel patches and the userland.
-+
-+This implementation is based on UMIP, a Mobility platform on Linux.
-+More information about UMIP can be found on 
-+<http://www.linux-ipv6.org/umip-0.3-ann.html.en>
-+
-+
-+2. Limitations 
-+--------------
-+
-+Due to its early stage of development, the MCoA implementation still 
-+have some important limitations. Please read them carefully to 
-+understand what you cannot do with this implementation:
-+
-+- IPsec is not yet supported. It will in the future, but we now 
-+  concentrate on the non-IPsec part.
-+  
-+- Returning home is not supported. Do not try to boot your MN at home 
-+  or to return home with one of its interface, this will not work. 
-+  This feature will be available in the future.
-+  
-+- Once the MN has established multiple tunnels, the policy routing
-+  only works FOR THE FORWARDED TRAFFIC. The traffic generated by the 
-+  MN itself will not be routed according to your policies. Only the 
-+  traffic from the MNN, routed via the Mobile Router, will be routed 
-+  according to the policies you installed on the MR. You can expect 
-+  some improvements in the next releases.
-+
-+- CN are not supported, ie the MN cannot register multiple CoA to 
-+  the CN.
-+
-+- The BID for each interface must be chosen between 1 and 251. This 
-+  limitation is due to the implementation design. We will try to 
-+  improve this point in the future.
-+  
-+- This implementation does not support yet the Bulk Registration,
-+  mainly because Bulk registration is still under discussion at 
-+  the IETF.
-+
-+
-+3. Known Bugs
-+-------------
-+
-+- Binding Refresh Request do not include the BID option
-+- Binding Error do not include the BID option
-+- The BU is sometimes sent via another interface than expected. 
-+- Certainly many others!
-+
-+4. Instructions
-+---------------
-+
-+a. Testbed Setup
-+----------------
-+
-+Testbed setup, kernel and userlan compilation, configuration 
-+files etc. are explained in the NEPL Howto available on:
-+http://www.nautilus6.org/doc/nepl-howto/
-+
-+Please check this document (especially section 6) to setup 
-+your MCoA testbed.
-+
-+b. Policy Routing
-+-----------------
-+
-+Once your MN has registered multiple CoA to your Home Agent, it can
-+use its multiple MN-HA tunnel for policy routing.
-+
-+The policy routing part is managed with ip6tables. Be sure to install 
-+this tool on both your HA and MN. 
-+
-+- How does it work?
-+-------------------
-+
-+The BID that you assigned to each interface will be used to mark the 
-+packets. Packets marked with BID X will be routed through the 
-+interface whose BID is X. If this interface is not available (because 
-+it is down), then the packet will be routed through the most prefered
-+interface (the one with the best BidPriority).
-+
-+NOTE:
-+At the moment, ONLY PACKETS FORWARDED BY THE MR (ie packets sent by MNN)
-+can benefit from the policy routing. Packets generated by the MR itself 
-+will not be routed according to your rules. We are currently working to 
-+improve the current situation to also allow the MR to benefit from the 
-+policy routing.
-+
-+
-+- How to mark a packet?
-+-----------------------
-+
-+Use the ip6tables tool and the MARK target to mark your packets with 
-+the BID. Ip6tables rules must be done in the PREROUTING chain, in the
-+mangle table.
-+
-+For example, on the MN, to mark as 100 all icmpv6 packets whose
-+destination is 2001:a:b::1000, you can do:
-+
-+ip6tables -A PREROUTING -t mangle 
-+          -p icmpv6 --destination 2001:a:b::1000 
-+	  -j MARK --set-mark 100
-+
-+Those packets will be sent through the interface whose BID is 100.
-+You will also need to create the "symetric" rule on the Home Agent:
-+
-+ip6tables -A PREROUTING -t mangle 
-+          -p icmpv6 --source 2001:a:b::1000 
-+	  -j MARK --set-mark 100
-+
-+As you see, one current limitation is that each rules created on the 
-+MN must be also created on the Home Agent. We plan to support in the 
-+future some policy exchange mechanism between the MN and the HA in 
-+order to configure automatically the HA.
-+
-+Read carefully the ip6tables manpage. You will be able to create 
-+rules based on many parameters, and thus create a very subtle policy 
-+routing on your MN.
-+
-+
-+5. Support
-+----------
-+
-+The MCoA implementation is not supported by the UMIP team, so please 
-+do not complain on their Mailing List. If you have any questions 
-+regarding this work, or any BUG report, feel free to subscribe to 
-+our support and announce mailing lists:
-+
-+http://www.nautilus6.org/ml.php
-+
-+--------------------------------------------
-+Romain KUNTZ <kuntz(at)sfc.wide.ad.jp>
-+Jean LORCHAT <lorchat(at)sfc.wide.ad.jp>
-+Nautilus6 Project <http://www.nautilus6.org>
-+--------------------------------------------
-diff -r 82fcd4bea972 include/netinet/ip6mh.h
---- a/include/netinet/ip6mh.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/include/netinet/ip6mh.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -146,6 +146,25 @@ struct ip6_mh_opt_mob_net_prefix {
- } __attribute__ ((packed));
- 
- /*
-+ * MCoA registration
-+ * Binding Unique Identifier sub-option
-+ */
-+struct ip6_mh_opt_bid {
-+	uint8_t ip6mobid_type;
-+	uint8_t ip6mobid_len;
-+	uint16_t ip6mobid_bid;
-+	uint8_t ip6mobid_priority;
-+	uint8_t ip6mobid_reserved;
-+} __attribute__((packed));
-+
-+/* Binding Unique Identifier sub-option flags */
-+#if BYTE_ORDER == BIG_ENDIAN
-+#define IP6_OPT_BID_BULK		0x80  /*  Bulk Registration */
-+#else	/* BYTE_ORDER == LITTLE_ENDIAN */
-+#define IP6_OPT_BID_BULK		0x80  /*  Bulk Registration */
-+#endif
-+
-+/*
-  *     Mobility Header Message Types
-  */
- #define IP6_MH_TYPE_BRR		0	/* Binding Refresh Request */
-@@ -167,6 +186,7 @@ struct ip6_mh_opt_mob_net_prefix {
- #define IP6_MHOPT_NONCEID	0x04	/* Nonce Index */
- #define IP6_MHOPT_BAUTH		0x05	/* Binding Auth Data */
- #define IP6_MHOPT_MOB_NET_PRFX	0x06	/* Mobile Network Prefix */
-+#define IP6_MHOPT_BID		0x07	/* Binding Unique Identifier */
- 
- /*
-  *    Status values accompanied with Mobility Binding Acknowledgement
-@@ -191,6 +211,9 @@ struct ip6_mh_opt_mob_net_prefix {
- #define IP6_MH_BAS_INVAL_PRFX		141	/* Invalid Prefix */
- #define IP6_MH_BAS_NOT_AUTH_FOR_PRFX	142	/* Not Authorized for Prefix */
- #define IP6_MH_BAS_FWDING_FAILED	143	/* Forwarding Setup failed */
-+#define IP6_MH_BAS_CONFLICT_BINDING	144	/* (TBD) MCoA Conflict between bindings */
-+#define IP6_MH_BAS_MCOA_BULK_FAILED	145	/* (TBD) MCoA Bulk registration failed */
-+
- /*
-  *    Status values for the Binding Error mobility messages
-  */
-diff -r 82fcd4bea972 man/mip6d.conf.tmpl
---- a/man/mip6d.conf.tmpl	Fri Jan 11 16:55:08 2008 +0100
-+++ b/man/mip6d.conf.tmpl	Fri Jan 11 17:02:25 2008 +0100
-@@ -57,6 +57,9 @@ These options are used both in the Home 
- .BR "Interface " "name" " {"
- .BR "	MnIfPreference " "number" ";"
- .BR "	IfType " "CN | HA | MN" ";"
-+.BR "	Bid " "number" ";"
-+.BR "	BidPriority " "number" ";"
-+.BR "	Reliable " "boolean" ";"
- .B }
- .fi
- 
-@@ -74,9 +77,10 @@ sets the interface preference value for 
- sets the interface preference value for an interface in a multi-homed
- Mobile Node.  The most preferred intefaces have preference 1, the
- second most preferred have 2, etc.  A preference of zero means the
--interface will not be used.
-+interface will not be used. Do not use this option if you use the Multiple
-+Care-of Address registration on your Mobile Node with this interface.
- 
--Default: 5
-+Default: 0
- 
- .B IfType
- overrides the default node behavior for this interface. If a MN doesn't
-@@ -86,6 +90,43 @@ Default: same as
- Default: same as
- .B NodeConfig
- 
-+.B Bid
-+Sets the BID for this interface. The BID must be unique within all 
-+interface definitions. This BID will be used as an Interface Identifier
-+that the user can use for policy routing. If this option is defined, 
-+also set the 
-+.B BidPriority 
-+option, and do not set the 
-+.B MnIfPreference
-+option.
-+.B Bid 
-+must be set between 1 and 251 (this is one of the current limitation 
-+with this MCoA implementation).
-+
-+Default: 0 (no BID)
-+
-+.B BidPriority
-+Sets the priority of the binding (the higher the better). When no 
-+policies are define for some flows, the binding with the higher 
-+preference is used. If this option is defined, do not set the 
-+.B MnIfPreference
-+option for this interface. 
-+.B BidPriority 
-+must be set between 1 and 255.
-+
-+Default: 0
-+
-+.B Reliable
-+allows you to specify if the interface can be considered as reliable
-+when using MCoA. If set to false, the traffic will be redirected to 
-+another interface during the BU-BAck exchange. You can thus use the 
-+BU as a heartbeat (by specifying a small
-+.B MnMaxHaBindingLife
-+), which can be pretty useful when one of your MR-HA path is not 
-+reliable: traffic is redirected to the interface with the best 
-+priority as long as no BAck is received.
-+
-+Default: true
- 
- .TP
- .BR "UseMnHaIPsec " "boolean" ";"
-@@ -191,6 +232,13 @@ Default: disabled;
- Default: disabled;
- 
- .TP
-+.BR "HaAcceptMCoAReg enabled | disabled"
-+
-+Indicates if the HA accepts Multiple Care-of Addresses registration.
-+
-+Default: disabled;
-+
-+.TP
- .BR "HaServedPrefix " "prefix/length" ";"
- 
- Prefix is an IPv6 prefix and length is the prefix length. Defines the whole
-@@ -199,7 +247,7 @@ Mobile Network Prefixes, instead of one 
- Mobile Network Prefixes, instead of one of the home link prefixes.
- 
- .TP
--.BR "BindingAclPolicy " "address MNP list " "allow | deny"
-+.BR "BindingAclPolicy " "address MNP list " "MCoAReg | NoMCoAReg " "allow | deny"
- 
- Defines if a MN is allowed to register with the HA or not. The home address
- of the MN is given in the address field.  The mobile network prefixes
-@@ -207,6 +255,12 @@ be an empty string or a comma separated 
- be an empty string or a comma separated list of network prefixes
- enclosed in braces, for example:
- .B "(3ffe:2620:6:3::/64, 3ffe:2620:6:4::/64)"
-+The HA can forbid or allow the MN to register Multiple Care-of Addresses by
-+setting the 
-+.B NoMCoAReg 
-+or 
-+.B MCoAReg
-+flag.
- 
- .TP
- .BR "DefaultBindingAclPolicy allow | deny"
-@@ -368,6 +422,31 @@ Default: disabled
- Default: disabled
- 
- .TP
-+.BR "RegMultipleCoA enabled | disabled"
-+
-+Defines if the Mobile Node should try to register Multiple Care-of 
-+Addresses to its Home Agent. If enabled, use also the
-+.B IfMultipleCoA
-+option. If disabled, the node will only register one CoA at a time.
-+
-+Default: disabled;
-+
-+.TP
-+.BR "IfMultipleCoA " "name1, name2, ..." ";"
-+
-+Defines the list of interfaces that will be used for Multiple Care-of 
-+Addresses registration. This list must be composed with the names 
-+(enclosed in double quotes) of the interfaces (eg. "eth1"), separated 
-+with a coma. Each interface listed must have an 
-+.B Interface
-+definition properly filled with the Multiple Care-of Address options
-+(
-+.B Bid
-+and 
-+.B BidPriority
-+).
-+
-+.TP
- The route optimization policies are of the form:
- 
- .TP
-@@ -389,7 +468,7 @@ matching this entry.
- .SH EXAMPLES
- 
- .TP
--.BR "A NEMO Home Agent example:"
-+.BR "A NEMO Home Agent example with MCoA support:"
- 
- .nf
- NodeConfig HA;
-@@ -397,18 +476,19 @@ Interface "eth0";
- Interface "eth0";
- 
- HaAcceptMobRtr enabled;
-+HaAcceptMCoAReg enabled;
- 
- HaServedPrefix 3ffe:2620:6::/48;
- 
- DefaultBindingAclPolicy deny;
--BindingAclPolicy 3ffe:2620:6:1::1234 (3ffe:2620:6:2::/64, 3ffe:2620:6:3::/64) allow;
-+BindingAclPolicy 3ffe:2620:6:1::1234 (3ffe:2620:6:2::/64, 3ffe:2620:6:3::/64) MCoAReg allow;
- BindingAclPolicy 3ffe:2620:6:1::1235 allow;
- 
- UseMnHaIPsec disabled;
- .fi
- 
- .TP
--.BR "A NEMO Mobile Router example:"
-+.BR "A NEMO Mobile Router example with MCoA support:"
- 
- .nf
- NodeConfig MN;
-@@ -416,7 +496,15 @@ DoRouteOptimizationCN disabled;
- DoRouteOptimizationCN disabled;
- DoRouteOptimizationMN disabled;
- 
--Interface "eth0";
-+Interface "eth0" {
-+        Bid 111;
-+        BidPriority 10;
-+};
-+
-+Interface "eth1" {
-+        Bid 222;
-+        BidPriority 5;
-+};
- 
- MnRouterProbes 1;
- 
-@@ -426,6 +514,8 @@ MnHomeLink "eth0" {
-         IsMobRtr enabled;
-         HomeAgentAddress 3ffe:2620:6:1::1;
-         HomeAddress 3ffe:2620:6:1::1234/64 (3ffe:2620:6:2::/64, 3ffe:2620:6:3::/64);
-+        RegMultipleCoA enabled;
-+        IfMultipleCoA "eth0", "eth1";
- }
- 
- UseMnHaIPsec disabled;
-diff -r 82fcd4bea972 src/bcache.c
---- a/src/bcache.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/bcache.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -48,6 +48,7 @@ static int bcache_count = 0;
- static int bcache_count = 0;
- 
- pthread_rwlock_t bc_lock; /* Protects binding cache */
-+int bce_next_entry(void *bce_v, void *next_bce_v);
- 
- /** 
-  * get_bcache_count - returns number of home and cache entries
-@@ -90,6 +91,12 @@ void dump_bce(void *bce, void *os)
- 	fprintf(out, " lifetime %ld\n ", e->lifetime.tv_sec);
- 	fprintf(out, " seqno %d\n", e->seqno);
- 
-+ 	if (e->bid)
-+ 		fprintf(out, " BID = %d, Priority = %d\n", 
-+ 			e->bid, e->priority);
-+ 	else
-+ 		fprintf(out, " No BID assigned\n");
-+ 
- 	if (e->flags & IP6_MH_BA_MR) {
- 		struct list_head *list;
- 
-@@ -201,6 +208,7 @@ void bcache_free(struct bcentry *bce)
-  * @hinfo: home address info, optional if our_addr is present
-  * @our_addr: local address (home address)
-  * @peer_addr: address of CN
-+ * @bid: BID of the bce
-  *
-  * Returns reference to non-null entry on success and null on failure.
-  * If caller adjusts lifetime of entry, caller must call
-@@ -208,7 +216,8 @@ void bcache_free(struct bcentry *bce)
-  * call bcache_release_entry() after entry is not used anymore.
-  **/
- struct bcentry *bcache_get(const struct in6_addr *our_addr,
--			   const struct in6_addr *peer_addr)
-+ 			   const struct in6_addr *peer_addr,
-+ 			   uint16_t bid)
- {
- 	struct bcentry *bce;
- 
-@@ -216,7 +225,7 @@ struct bcentry *bcache_get(const struct 
- 
- 	pthread_rwlock_rdlock(&bc_lock);
- 
--	bce = hash_get(&bc_hash, our_addr, peer_addr);
-+	bce = hash_get(&bc_hash, our_addr, peer_addr, bid);
- 
- 	if (bce) 
- 		pthread_rwlock_wrlock(&bce->lock);
-@@ -240,16 +249,19 @@ void bcache_release_entry(struct bcentry
-  * bce_type - get type of binding cache entry
-  * @our_addr: our IPv6 address
-  * @peer_addr: peer's IPv6 address
-+ * @bid: BID of the bce
-  *
-  * Looks up entry from binding cache and returns its type.  If not
-  * found, returns -%ENOENT.
-  **/
--int bce_type(const struct in6_addr *our_addr, const struct in6_addr *peer_addr)
-+int bce_type(const struct in6_addr *our_addr, 
-+ 	     const struct in6_addr *peer_addr,
-+ 	     uint16_t bid)
- {
-         struct bcentry *bce;
-         int type;
- 
--        bce = bcache_get(our_addr, peer_addr);
-+ 	bce = bcache_get(our_addr, peer_addr, bid);
- 
-         if (bce == NULL)
-                 return -ENOENT;
-@@ -264,7 +276,8 @@ static int __bcache_insert(struct bcentr
- {
- 	int ret;
- 
--	ret = hash_add(&bc_hash, bce, &bce->our_addr, &bce->peer_addr);
-+	ret = hash_add(&bc_hash, bce, &bce->our_addr, 
-+ 		       &bce->peer_addr, &bce->bid);
- 	if (ret)
- 		return ret;
- 
-@@ -282,7 +295,14 @@ static int __bcache_start(struct bcentry
- 	      bce->type == BCE_HOMEREG ? bce->lifetime : tmp,
- 	      expires);
- 	add_task_abs(&expires, &bce->tqe, _expire); 
--	xfrm_add_bce(&bce->our_addr, &bce->peer_addr, &bce->coa, 0);
-+ 	/* MCoA 
-+ 	 * Due to the BID, the BC may have several entries with the 
-+ 	 * same peer_addr. Thus we add states and policies only if 
-+ 	 * there are no entries yet for the our_addr/peer_addr pair 
-+ 	 * (see bce->xfrm_create).
-+ 	 */
-+ 	xfrm_add_bce(&bce->our_addr, &bce->peer_addr, &bce->coa, 0, 
-+ 		     bce->xfrm_create);
- 	return 0;
- }
- 
-@@ -350,22 +370,26 @@ int bcache_update_expire(struct bcentry 
- 	}
- 	tsadd(expires, bce->add_time, expires);
- 	add_task_abs(&expires, &bce->tqe, _expire);	
--	xfrm_add_bce(&bce->our_addr, &bce->peer_addr, &bce->coa, 1);
-+ 	xfrm_add_bce(&bce->our_addr, &bce->peer_addr, &bce->coa, 1, 0);
- 
- 	return 0;
- }
- 
- /**
-  * bcache_delete - deletes a bul entry
-+ * If bid == 0, all entries that match our_addr/peer_addr are deleted
-  **/
- void bcache_delete(const struct in6_addr *our_addr,
--		   const struct in6_addr *peer_addr)
-+		   const struct in6_addr *peer_addr,
-+		   uint16_t bid)
- {
- 	struct bcentry *bce;
- 	pthread_rwlock_wrlock(&bc_lock);
--	bce = hash_get(&bc_hash, our_addr, peer_addr);
--	if (bce)
--		bce_delete(bce, 0);
-+ 	while ((bce = hash_get(&bc_hash, our_addr, peer_addr, bid))) {
-+		if (bce)
-+ 			bce_delete(bce, 0);
-+ 	}
-+ 
- 	pthread_rwlock_unlock(&bc_lock);
- }
- 
-@@ -398,8 +422,27 @@ static void bce_delete(struct bcentry *b
- 	pthread_rwlock_wrlock(&bce->lock);
- 	if (bce->type != BCE_DAD) {
- 		del_task(&bce->tqe);
--		if (bce->type != BCE_NONCE_BLOCK)
--			xfrm_del_bce(&bce->our_addr, &bce->peer_addr);
-+ 		if (bce->type != BCE_NONCE_BLOCK) {
-+			/* MCoA 
-+			 * Due to the BID, the BC can have several entries 
-+			 * with the same our_addr/peer_addr pair. We delete 
-+			 * the xfrm data if we do not have any BCE for 
-+			 * this peer_addr anymore, or we update it (we need 
-+			 * to update the kernel's CoA to a valid one).
-+			 */
-+			if(mcoa_bce_count(&bce->peer_addr) == 1)
-+				xfrm_del_bce(&bce->our_addr, &bce->peer_addr);
-+			else {
-+				struct bcentry *next = bce;
-+				/* Look for another valid BCE */
-+				bcache_iterate_in(&bce->peer_addr, 
-+						  bce_next_entry, &next);
-+				/* Replace the CoA */
-+				xfrm_add_bce(&next->our_addr, 
-+					     &next->peer_addr, 
-+					     &next->coa, 1, 0);
-+			}
-+		}
- 	}
- 	if (bce->cleanup)
- 		bce->cleanup(bce);
-@@ -414,7 +457,7 @@ static void bce_delete(struct bcentry *b
- 		}
- 	}
- 	bcache_count--;
--	hash_delete(&bc_hash, &bce->our_addr, &bce->peer_addr);
-+	hash_delete(&bc_hash, &bce->our_addr, &bce->peer_addr, bce->bid);
- 	pthread_rwlock_unlock(&bce->lock);
- 	bcache_free(bce);
- }
-@@ -458,3 +501,71 @@ int bcache_iterate(int (* func)(void *, 
- 	pthread_rwlock_unlock(&bc_lock);
- 	return err;
- }
-+
-+/**
-+ * bcache_iterate_in - apply function to every BC entry that match peer_addr
-+ * @peer_addr: the peer_addr of the hash
-+ * @func: function to apply
-+ * @arg: extra data for @func
-+ *
-+ * Iterates through binding cache, calling @func for each entry that 
-+ * match peer_addr. Extra data may be passed to @func in @arg.  @func 
-+ * takes a bcentry as its first argument and @arg as second argument.
-+ *
-+ * Be sure that bc_lock is locked before using this function, and 
-+ * unlocked after using it.
-+ **/
-+int bcache_iterate_in(const struct in6_addr *peer_addr, 
-+ 		      int (* func)(void *, void *), 
-+ 		      void *arg)
-+{
-+	int err;
-+	err = hash_iterate_in(&bc_hash, peer_addr, func, arg);
-+	return err;	
-+}
-+
-+int bce_highest_priority(void *bce_v, void *best_bce_v)
-+{
-+	struct bcentry *bce = bce_v;
-+	struct bcentry **best_bce = best_bce_v;
-+	
-+	assert(bce);
-+	assert(best_bce);
-+
-+	if (!(*best_bce) || (bce->priority > (*best_bce)->priority))
-+		(*best_bce) = bce;
-+
-+	return 0;
-+}
-+
-+int bce_next_entry(void *bce_v, void *next_bce_v)
-+{
-+	struct bcentry *bce = bce_v;
-+	struct bcentry **next_bce = next_bce_v;
-+	
-+	assert(bce);
-+	assert(next_bce);
-+	
-+	if (bce->bid != (*next_bce)->bid) {
-+		(*next_bce) = bce;
-+		return 1;
-+	}
-+	
-+	return 0;
-+}
-+
-+int mcoa_bce_inc_counter(void *bule_v, void *counter_v)
-+{
-+	int *counter = counter_v;
-+	(*counter)++;
-+	return 0;
-+}
-+
-+int mcoa_bce_count(const struct in6_addr *peer_addr)
-+{
-+	int count = 0;
-+	bcache_iterate_in(peer_addr, mcoa_bce_inc_counter, &count);
-+
-+	return count;
-+}
-+
-diff -r 82fcd4bea972 src/bcache.h
---- a/src/bcache.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/bcache.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -20,6 +20,12 @@ struct bcentry {
- 	uint16_t nonce_hoa;
- 	uint16_t type;     		/* Entry type */
- 	uint16_t nemo_type;    		/* NEMO registration type */
-+	uint16_t bid; 			/* MCoA: Binding Identifier */
-+	uint8_t priority;		/* MCoA: BID priority */
-+	int table;			/* MCoA: Table id to where are stored
-+					   the routes */
-+	int xfrm_create;		/* MCoA: If xfrm policies/states must
-+					   be created */
- 	int unreach;			/* ICMP dest unreach count */
- 	int tunnel;			/* Tunnel interface index */
- 	int link;			/* Home link interface index */
-@@ -48,12 +54,16 @@ struct bcentry {
- #define BCE_NEMO_IMPLICIT 2
- #define BCE_NEMO_DYNAMIC 3
- 
-+#define BCE_TABLE_MIN 1
-+#define BCE_TABLE_MAX 251
-+
- struct bcentry *bcache_alloc(int type);
- 
- void bcache_free(struct bcentry *bce);
- 
- struct bcentry *bcache_get(const struct in6_addr *our_addr,
--			   const struct in6_addr *peer_addr);
-+			   const struct in6_addr *peer_addr,
-+			   uint16_t bid);
- 
- int bcache_add(struct bcentry *bce);
- 
-@@ -63,28 +73,37 @@ int bcache_update_expire(struct bcentry 
- int bcache_update_expire(struct bcentry *bce);
- 
- void bcache_delete(const struct in6_addr *our_addr,
--		   const struct in6_addr *peer_addr);
-+		   const struct in6_addr *peer_addr,
-+		   uint16_t bid);
- 
- int bcache_init(void);
- void bcache_flush(void);
- void bcache_cleanup(void);
- 
- int bcache_iterate(int (* func)(void *, void *), void *arg);
-+int bcache_iterate_in(const struct in6_addr *peer_addr, 
-+		      int (* func)(void *, void *), 
-+		      void *arg);
- 
- void bcache_release_entry(struct bcentry *bce);
- 
- int bce_type(const struct in6_addr *our_addr,
--	     const struct in6_addr *peer_addr);
-+	     const struct in6_addr *peer_addr,
-+	     uint16_t bid);
- 
- static inline int bce_exists(const struct in6_addr *our_addr,
--			     const struct in6_addr *peer_addr)
-+			     const struct in6_addr *peer_addr,
-+			     uint16_t bid)
- {
--	return bce_type(our_addr, peer_addr) >= BCE_NONCE_BLOCK;
-+	return bce_type(our_addr, peer_addr, bid) >= BCE_NONCE_BLOCK;
- }
-+
-+int bce_highest_priority(void *bce_v, void *best_bce_v);
- 
- void dump_bce(void *bce, void *os);
- 
- int get_bcache_count(int type);
-+int mcoa_bce_count(const struct in6_addr *peer_addr);
- 
- extern pthread_rwlock_t bc_lock; /* Protects binding cache */
- 
-diff -r 82fcd4bea972 src/bul.c
---- a/src/bul.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/bul.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -38,6 +38,8 @@
- #include "xfrm.h"
- #include "debug.h"
- #include "retrout.h"
-+#include "tunnelctl.h"
-+#include "rtnl.h"
- #ifdef ENABLE_VT
- #include "vt.h"
- #endif
-@@ -55,7 +57,8 @@ static struct hash bul_hash;
- static struct hash bul_hash;
- 
- struct bulentry *create_bule(const struct in6_addr *hoa,
--			     const struct in6_addr *cn_addr)
-+			     const struct in6_addr *cn_addr, 
-+			     u_int16_t bid)
- {
- 	struct bulentry *bule;
- 	if ((bule = malloc(sizeof(*bule))) != NULL) {
-@@ -63,6 +66,11 @@ struct bulentry *create_bule(const struc
- 		bule->hoa = *hoa;
- 		bule->last_coa = *hoa;
- 		bule->peer_addr = *cn_addr;
-+		bule->bid = bid;
-+		bule->if_tunnel = 0;
-+		bule->rules = 0;
-+		bule->home_block = 0;
-+		bule->mcoa_dereg = 1;
- 		INIT_LIST_HEAD(&bule->tqe.list);
- 		bule->seq = random();
- 	}
-@@ -97,6 +105,11 @@ void dump_bule(void *bule, void *os)
- 		NIP6ADDR(&e->peer_addr));
- 	fprintf(out, " lifetime = %ld, ", e->lifetime.tv_sec);
- 	fprintf(out, " delay = %ld\n", tstomsec(e->delay));
-+	if (e->bid)
-+		fprintf(out, " BID = %d, Priority = %d\n", 
-+			e->bid, e->priority);
-+	else
-+		fprintf(out, " No BID assigned\n");	
- 	fprintf(out, " flags: ");
- 	if (e->flags & IP6_MH_BU_HOME)
- 		fprintf(out, "IP6_MH_BU_HOME ");
-@@ -118,21 +131,23 @@ void dump_bule(void *bule, void *os)
-  * @hinfo: home address info, optional if our_addr is present
-  * @our_addr: local address (home address)
-  * @peer_addr: address of CN
-+ * @bid: Binding Unique Identifier
-  *
-  * Returns non-null entry on success and null on failure. Caller must
-  * call del_task and add_task, if lifetime of the entry is changed.
-  **/
- struct bulentry *bul_get(struct home_addr_info *hinfo,
- 			 const struct in6_addr *our_addr,
--			 const struct in6_addr *peer_addr)
-+			 const struct in6_addr *peer_addr,
-+			 u_int16_t bid)
- {
- 	struct bulentry *bule;
- 
- 	assert(hinfo || our_addr);
- 
- 	if (hinfo)
--		bule = hash_get(&hinfo->bul, NULL, peer_addr);
--	else bule = hash_get(&bul_hash, our_addr, peer_addr);
-+		bule = hash_get(&hinfo->bul, NULL, peer_addr, bid);
-+	else bule = hash_get(&bul_hash, our_addr, peer_addr, bid);
- 	return bule;
- }
- 
-@@ -175,9 +190,11 @@ int bul_add(struct bulentry *bule)
- 
- 	assert(bule && tsisset(bule->lifetime) && hai);
- 	
--	if ((ret = hash_add(&bul_hash, bule, &bule->hoa, &bule->peer_addr)) < 0)
-+	if ((ret = hash_add(&bul_hash, bule, &bule->hoa, &bule->peer_addr, 
-+			    &bule->bid)) < 0)
- 		return ret;
--	if ((ret = hash_add(&hai->bul, bule, NULL, &bule->peer_addr)) < 0)
-+	if ((ret = hash_add(&hai->bul, bule, NULL, &bule->peer_addr,
-+			    &bule->bid)) < 0)
- 		goto bul_free;
- 
- 	clock_gettime(CLOCK_REALTIME, &bule->lastsent);
-@@ -197,9 +214,9 @@ int bul_add(struct bulentry *bule)
- 	add_task_abs(&timer_expire, &bule->tqe, bule->callback);
- 	return 0;
- home_bul_free:
--	hash_delete(&hai->bul, &bule->hoa, &bule->peer_addr);
-+	hash_delete(&hai->bul, &bule->hoa, &bule->peer_addr, bule->bid);
- bul_free:
--	hash_delete(&bul_hash, &bule->hoa, &bule->peer_addr);
-+	hash_delete(&bul_hash, &bule->hoa, &bule->peer_addr, bule->bid);
- 	return ret; 
- }
- 
-@@ -209,8 +226,8 @@ void bul_delete(struct bulentry *bule)
- 	struct home_addr_info *hai = bule->home;
- 
- 	del_task(&bule->tqe);
--	hash_delete(&bul_hash, &bule->hoa, &bule->peer_addr);
--	hash_delete(&hai->bul, NULL, &bule->peer_addr);
-+	hash_delete(&bul_hash, &bule->hoa, &bule->peer_addr, bule->bid);
-+	hash_delete(&hai->bul, NULL, &bule->peer_addr, bule->bid);
- 
- 	if (!IN6_ARE_ADDR_EQUAL(&bule->hoa, &bule->coa)) {
- 		bule->last_coa = bule->coa;
-@@ -222,6 +239,7 @@ void bul_delete(struct bulentry *bule)
- 		if (!(bule->flags & IP6_MH_BU_HOME))
- 			mn_rr_delete_bule(bule);
- 	}
-+
- 	if (bule->flags & IP6_MH_BU_HOME) {
- 		if (bule->type == UNREACH_ENTRY) {
- 			pthread_mutex_lock(&hai->ha_list.c_lock);
-@@ -232,16 +250,28 @@ void bul_delete(struct bulentry *bule)
- 		} else {
- 			if (hai->home_block & HOME_LINK_BLOCK)
- 				xfrm_unblock_link(hai);
-+			if (bule->home_block & HOME_LINK_BLOCK)
-+				xfrm_unblock_bule_link(bule);
- 			if (hai->home_block & HOME_ADDR_BLOCK)
- 				xfrm_unblock_hoa(hai);
- 			if (hai->home_block & NEMO_RA_BLOCK)
- 				xfrm_unblock_ra(hai);
- 			if (hai->home_block & NEMO_FWD_BLOCK)
- 				xfrm_unblock_fwd(hai);
-+			if (bule->home_block & NEMO_FWD_BLOCK)
-+				bule_unblock_fwd(bule);
- 		}
- 	}
- 	while (bule->ext_cleanup)
- 		bule->ext_cleanup(bule);
-+
-+	/* MCoA
-+	 * If MCoA is used, the tunnel related to this BULE
-+	 * has to be deleted.
-+	 */
-+	if (bule->home->reg_mcoa && bule->type != NON_MIP_CN_ENTRY)
-+		tunnel_del(bule->if_tunnel, NULL, NULL);
-+
- 	dbg("Deleting bule\n");
- 	dbg_func(bule, dump_bule);
- 	free_bule(bule);
-@@ -312,3 +342,129 @@ int bul_iterate(struct hash *h, int (* f
- 	struct hash *tmp = h ? h : &bul_hash;
- 	return hash_iterate(tmp, func, arg);
- }
-+
-+/**
-+ * bul_iterate_in - apply function to every BUL entry that match peer_addr
-+ * @peer_addr: the peer_addr of the hash
-+ * @func: function to apply
-+ * @arg: extra data for @func
-+ *
-+ * Iterates through binding update list, calling @func for each entry that 
-+ * match peer_addr. Extra data may be passed to @func in @arg.  @func 
-+ * takes a BUL entry as its first argument and @arg as second argument.
-+ **/
-+int bul_iterate_in(struct in6_addr *peer_addr, 
-+		   int (* func)(void *, void *), 
-+		   void *arg)
-+{
-+	return hash_iterate_in(&bul_hash, peer_addr, func, arg);
-+}
-+
-+int bul_highest_priority(void *bule_v, void *best_bule_v)
-+{
-+	struct bulentry *bule = bule_v;
-+	struct bulentry **best_bule = best_bule_v;
-+	
-+	assert(bule);
-+	assert(best_bule);
-+	
-+	if(bule->type == NON_MIP_CN_ENTRY ||
-+	   bule->type == UNREACH_ENTRY)
-+		return 0;
-+
-+	if (!(*best_bule)
-+	    || (bule->priority > (*best_bule)->priority
-+		&& bule->rules))
-+		(*best_bule) = bule;
-+	
-+	return 0;
-+}
-+
-+int mcoa_bule_inc_counter(void *bule_v, void *counter_v)
-+{
-+	struct bulentry *bule = bule_v;
-+	int *counter = counter_v;
-+	assert(counter);
-+	
-+	if(bule->type != NON_MIP_CN_ENTRY)
-+		(*counter)++;
-+	return 0;
-+}
-+
-+/**
-+ * mcoa_bule_count - count the number of entry (!NON_MIP_CN_ENTRY) 
-+ * with the same peer_addr.
-+ * @bule: the bule where to pick up the peer address
-+ **/
-+
-+int mcoa_bule_count(struct bulentry *bule)
-+{
-+	int count = 0;
-+	assert(bule);
-+	bul_iterate_in(&bule->peer_addr, mcoa_bule_inc_counter, &count);
-+	return count;
-+}
-+
-+
-+int mcoa_bule_setdereg(void *bule_v, void *dereg_v)
-+{
-+	int *dereg = dereg_v;
-+	struct bulentry *bule = bule_v;
-+	
-+	assert(dereg);
-+	bule->mcoa_dereg = *(dereg);
-+	return 0;
-+}
-+
-+/**
-+ * mcoa_bule_dereg - Set the BULE mcoa_dereg flag to value for 
-+ * all entries that match bule->peer_addr.
-+ * @bule: the bule where to pick up the peer address
-+ * @value: the value to set
-+ **/
-+int mcoa_bule_dereg(struct bulentry *bule, int value)
-+{
-+	bul_iterate_in(&bule->peer_addr, mcoa_bule_setdereg, &value);
-+	return 0;
-+}
-+
-+/**
-+ * bule_block_fwd - Block forwarding for all MNPs 
-+ * via the fwmark (BID) of the bule
-+ * @bule: the bule
-+ */
-+void bule_block_fwd(struct bulentry *bule)
-+{
-+	struct list_head *l;
-+	if (!bule->rules)
-+		return;
-+	bule->home_block |= NEMO_FWD_BLOCK; 
-+	list_for_each(l, &bule->home->mob_net_prefixes) {
-+		struct prefix_list_entry *p = NULL;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		rule_add(NULL, 0, IP6_RULE_PRIO_MIP6_BLOCK,
-+			/*fwmark*/ bule->bid, RTN_BLACKHOLE,
-+			&p->ple_prefix, p->ple_plen,
-+			&in6addr_any, 0, 0);
-+	}
-+}
-+
-+/**
-+ * bule_unblock_fwd - unblock forwarding for all MNPs 
-+ * via the fwmark (BID) of the bule
-+ * @bule: the bule
-+ */
-+void bule_unblock_fwd(struct bulentry *bule)
-+{
-+	struct list_head *l;
-+	bule->home_block &= ~NEMO_FWD_BLOCK;
-+	list_for_each(l, &bule->home->mob_net_prefixes) {
-+		struct prefix_list_entry *p = NULL;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_BLOCK, 
-+			/*fwmark*/ bule->bid, RTN_BLACKHOLE,  
-+			&p->ple_prefix, p->ple_plen,    
-+			&in6addr_any, 0, 0);
-+	}               
-+}
-+
-diff -r 82fcd4bea972 src/bul.h
---- a/src/bul.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/bul.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -9,6 +9,9 @@
- #include "tqueue.h"
- #include "hash.h"
- #include "list.h"
-+
-+#define BULE_TABLE_MIN 1
-+#define BULE_TABLE_MAX 251
- 
- struct home_addr_info;
- 
-@@ -31,10 +34,16 @@ struct bulentry {
- 	struct in6_addr hoa;
- 	struct in6_addr coa;		/* care-of address of the sent BU */
- 	int if_coa;
-+	int if_tunnel;			/* MCoA: Tunnel iface for the BCE */
-+	int table;			/* MCoA: Routing table where are 
-+					   stored the routes */
-+	int rules;			/* MCoA: if rules are installed for 
-+					   this BULE */	
- 	int type;                       /* BUL / NON_MIP_CN / UNREACH  */
- 	uint16_t seq;			/* sequence number of the latest BU */
- 	uint16_t flags;			/* BU send flags */
--	struct in6_addr last_coa;        /* Last good coa */      
-+	uint16_t bid;			/* MCoA: Binding Identifier */
-+	struct in6_addr last_coa;	/* Last good coa */      
- 	struct timespec lastsent;
- 	struct timespec lifetime;      	/* lifetime sent in this BU */
- 	struct timespec delay;		/* call back time in ms*/
-@@ -47,7 +56,11 @@ struct bulentry {
- 	uint8_t use_alt_coa;            /* Whether to use alt. CoA option */
- 	uint8_t dereg;                  /* for calculating BSA key */
- 	uint8_t do_send_bu;             /* send bu / not send bu */
--
-+	uint8_t priority;		/* MCoA: BID priority */
-+	uint8_t home_block;		/* MCoA: NEMO_FWD_BLOCK, ... */  
-+	uint8_t mcoa_dereg;		/* MCoA: if BCE needs to be 
-+					   deregistered with a BU */
-+ 
- 	/* Information for return routability */
- 	struct retrout_info rr;
- 	uint8_t Kbm[HMAC_SHA1_KEY_SIZE];
-@@ -84,7 +97,8 @@ enum {
- 
- struct bulentry *bul_get(struct home_addr_info *hinfo,
- 			 const struct in6_addr *our_addr,
--			 const struct in6_addr *peer_addr);
-+			 const struct in6_addr *peer_addr,
-+			 u_int16_t bid);
- 
- int bul_add(struct bulentry *bule);
- 
-@@ -94,7 +108,11 @@ void bul_update_expire(struct bulentry *
- void bul_update_expire(struct bulentry *bule);
- 
- int bul_iterate(struct hash *h, int (* func)(void *bule, void *arg), void *arg);
-+int bul_iterate_in(struct in6_addr *peer_addr, 
-+		   int (* func)(void *, void *), 
-+		   void *arg);
- 
-+int bul_highest_priority(void *bule_v, void *best_bule_v);
- int bul_init(void);
- int bul_home_init(struct home_addr_info *home);
- void bul_home_cleanup(struct hash *bul);
-@@ -102,7 +120,12 @@ void bul_cleanup(void);
- void bul_cleanup(void);
- void dump_bule(void *bule, void *os);
- struct bulentry *create_bule(const struct in6_addr *hoa,
--			     const struct in6_addr *cn_addr);
-+			     const struct in6_addr *cn_addr,
-+			     u_int16_t bid);
- void free_bule(struct bulentry *bule);
-+int mcoa_bule_count(struct bulentry *bule);
-+int mcoa_bule_dereg(struct bulentry *bule_v, int value);
-+void bule_block_fwd(struct bulentry *bule);
-+void bule_unblock_fwd(struct bulentry *bule);
- 
- #endif
-diff -r 82fcd4bea972 src/cn.c
---- a/src/cn.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/cn.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -67,7 +67,11 @@ static void cn_recv_dst_unreach(const st
- 	if (icmp6_parse_data(ip6h, optlen, &laddr, &raddr) < 0)
- 		return;
- 
--	bce = bcache_get(laddr, raddr);
-+	/* MCoA TODO2
-+	 * Add MCoA support for the CN
-+	 * MCOA_NO_BID must be replaced with the BUI's BID
-+	 */
-+	bce = bcache_get(laddr, raddr, MCOA_NO_BID);
- 
- 	if (bce == NULL) 
- 		return;
-@@ -76,7 +80,7 @@ static void cn_recv_dst_unreach(const st
- 	if (bce->unreach > ICMP_ERROR_PERSISTENT_THRESHOLD &&
- 	    bce->type != BCE_HOMEREG) {
- 		bcache_release_entry(bce);
--		bcache_delete(laddr, raddr);
-+		bcache_delete(laddr, raddr, MCOA_NO_BID);
- 		dbg("BCE for %x:%x:%x:%x:%x:%x:%x:%x deleted "
- 		    "due to receipt of ICMPv6 destination unreach\n", 
- 		    NIP6ADDR(raddr));
-@@ -156,6 +160,7 @@ void cn_recv_bu(const struct ip6_mh *mh,
- 	struct in6_addr_bundle out;
- 	struct ip6_mh_binding_update *bu;
- 	struct ip6_mh_opt_nonce_index *non_ind;
-+	struct ip6_mh_opt_bid *bid_opt = NULL;
- 	struct bcentry *bce = NULL;
- 	struct timespec lft;
- 	int status, new = 0;
-@@ -175,7 +180,18 @@ void cn_recv_bu(const struct ip6_mh *mh,
- 
- 	bu_flags = bu->ip6mhbu_flags;
- 	non_ind = mh_opt(&bu->ip6mhbu_hdr, &mh_opts, IP6_MHOPT_NONCEID);
--	bce = bcache_get(out.src, out.dst);
-+	/* MCoA TODO2
-+	 * MCoA support for CN is not implemented yet
-+	 * At the moment we ignore the BUs with BUI option
-+	 */
-+	if ((bid_opt = mh_opt(&bu->ip6mhbu_hdr, &mh_opts, IP6_MHOPT_BID))) {
-+		dbg("Received BU with BUI sub-option, but CN doesn't "
-+		    "support MCoA registration. BU skipped.\n");
-+		status = IP6_MH_BAS_REG_NOT_ALLOWED;
-+		goto send_nack;
-+	}
-+
-+	bce = bcache_get(out.src, out.dst, MCOA_NO_BID);
- 	if (bce) {
- 		if ((bce->flags^bu_flags) & (IP6_MH_BU_HOME|IP6_MH_BU_MR)) {
- 			/* H-bit or R-bit mismatch, flags changed */
-@@ -219,7 +235,7 @@ void cn_recv_bu(const struct ip6_mh *mh,
- 				goto send_nack;
- 			}
- 			/* else get rid of it */
--			bcache_delete(out.src, out.dst);
-+			bcache_delete(out.src, out.dst, MCOA_NO_BID);
- 		}
- 	} else {
- 		if (bu_flags & IP6_MH_BU_HOME) {
-@@ -281,18 +297,18 @@ void cn_recv_bu(const struct ip6_mh *mh,
- 		}
- 		/* dereg, success */
- 		bcache_release_entry(bce);
--		bcache_delete(out.src, out.dst);
-+		bcache_delete(out.src, out.dst, MCOA_NO_BID);
- 		status = IP6_MH_BAS_ACCEPTED;
- 	}
- 	if (bu_flags & IP6_MH_BU_ACK)
--		mh_send_ba(&out, status, 0, seqno, &lft, key, iif);
-+		mh_send_ba(&out, status, 0, seqno, &lft, 0, 0, key, iif);
- 	return;
- send_nack:
- 	if (bce) {
- 		bcache_release_entry(bce);
--		bcache_delete(out.src, out.dst);
-+		bcache_delete(out.src, out.dst, MCOA_NO_BID);
- 	}
--	mh_send_ba_err(&out, status, 0, seqno, pkey, iif);
-+	mh_send_ba_err(&out, status, 0, seqno, 0, 0, pkey, iif);
- }
- 
- static struct mh_handler cn_bu_handler =
-diff -r 82fcd4bea972 src/conf.c
---- a/src/conf.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/conf.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -74,6 +74,7 @@ static void conf_version(void)
- {
- 	fprintf(stderr,
- 		"%s (%s) %s\n"
-+		"With Multiple Care-of Addresses registration support\n"
- 		"%s\n"
- 		"This is free software; see the source for copying conditions.  There is NO\n"
- 		"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
-@@ -218,6 +219,7 @@ static void conf_default(struct mip6_con
- 
- 	/* HA options */
- 	c->SendMobPfxAdvs = 1;
-+	c->HaAcceptMCoAReg = 0;
- 	c->SendUnsolMobPfxAdvs = 1;
- 	c->MaxMobPfxAdvInterval = 86400; /* seconds */
- 	c->MinMobPfxAdvInterval = 600; /* seconds */
-@@ -317,8 +319,89 @@ void conf_show(struct mip6_config *c)
- 	dbg("MinMobPfxAdvInterval = %u\n", c->MinMobPfxAdvInterval);
- 	dbg("HaMaxBindingLife = %u\n", c->HaMaxBindingLife);
- 	dbg("HaAcceptMobRtr = %s\n", CONF_BOOL_STR(c->HaAcceptMobRtr));
-+	dbg("HaAcceptMCoAReg = %s\n", CONF_BOOL_STR(c->HaAcceptMCoAReg));
- 
- 	/* CN options */
- 	dbg("DoRouteOptimizationCN = %s\n",
- 	    CONF_BOOL_STR(c->DoRouteOptimizationCN));
- }
-+
-+/* 
-+ * get_reliable_from_ifindex - return the reliability value 
-+ * from the interface index
-+ * @iif: the interface index
-+ */ 
-+int get_reliable_from_ifindex(int iif)
-+{
-+	struct list_head *list;
-+
-+	list_for_each(list, &conf.net_ifaces) {
-+		struct net_iface *nif;
-+		nif = list_entry(list, struct net_iface, list);
-+		if (nif->ifindex == iif) {
-+			if (is_if_mn(nif))
-+				return nif->mn_if_reliable;
-+			return -1;
-+		}
-+	}
-+	return -1;
-+}
-+
-+/* 
-+ * get_bid_from_ifindex - return the bid from the interface index
-+ * @iif: the interface index
-+ */ 
-+uint16_t get_bid_from_ifindex(int iif)
-+{
-+	struct list_head *list;
-+
-+	list_for_each(list, &conf.net_ifaces) {
-+		struct net_iface *nif;
-+		nif = list_entry(list, struct net_iface, list);
-+		if (nif->ifindex == iif) {
-+			if (is_if_mn(nif))
-+				return nif->mn_if_bid;
-+			return 0;
-+		}
-+	}
-+	return 0;
-+}
-+
-+/* 
-+ * get_prio_from_bid - return the priority from the bid
-+ * @bid: the bid of the interface
-+ */ 
-+uint8_t get_prio_from_bid(uint16_t bid)
-+{
-+	struct list_head *list;
-+
-+	list_for_each(list, &conf.net_ifaces) {
-+		struct net_iface *nif;
-+		nif = list_entry(list, struct net_iface, list);
-+		if (nif->mn_if_bid == bid) {
-+			if (is_if_mn(nif))
-+				return nif->mn_if_bidprio;
-+			return 0;
-+		}
-+	}
-+	return 0;
-+}
-+
-+/* 
-+ * get_highest_prio - return the highest BID priority from the 
-+ * interface list
-+ */ 
-+uint8_t get_highest_prio()
-+{
-+	struct list_head *list;
-+	int priority = 0;
-+
-+	list_for_each(list, &conf.net_ifaces) {
-+		struct net_iface *nif;
-+		nif = list_entry(list, struct net_iface, list);
-+		if (nif->mn_if_bidprio >= priority)
-+			priority = nif->mn_if_bidprio;
-+	}
-+	return priority;
-+}
-+
-diff -r 82fcd4bea972 src/conf.h
---- a/src/conf.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/conf.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -48,6 +48,7 @@ struct mip6_config {
- 
- 	/* HA options */
- 	char HaAcceptMobRtr;
-+	char HaAcceptMCoAReg;
- 	char SendMobPfxAdvs;
- 	char SendUnsolMobPfxAdvs;
- 	unsigned int MaxMobPfxAdvInterval;
-@@ -66,6 +67,9 @@ struct net_iface {
- 	int is_rtr;
- 	int mip6_if_entity;
- 	int mn_if_preference;
-+	uint16_t mn_if_bid;
-+	uint8_t mn_if_bidprio;
-+	int mn_if_reliable;
- };
- 
- extern struct mip6_config conf;
-@@ -119,6 +123,11 @@ int conf_parse(struct mip6_config *c, in
- 
- void conf_show(struct mip6_config *c);
- 
-+int get_reliable_from_ifindex(int iif);
-+uint16_t get_bid_from_ifindex(int iif);
-+uint8_t get_prio_from_bid(uint16_t bid);
-+uint8_t get_highest_prio();
-+
- int yyparse(void);
- 
- int yylex(void);
-diff -r 82fcd4bea972 src/dhaad_mn.c
---- a/src/dhaad_mn.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/dhaad_mn.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -120,8 +120,9 @@ static void dhaad_resend(struct tq_elem 
- 			pthread_rwlock_unlock(&mn_lock);
- 			return;
- 		}
--		t->dhaad_id = dhaad_send_request(hai->primary_coa.iif,
--						 &hai->primary_coa.addr,
-+		assert(hai->current_coa);
-+		t->dhaad_id = dhaad_send_request(hai->current_coa->iif,
-+						 &hai->current_coa->addr,
- 						 &hai->home_prefix,
- 						 hai->home_plen,
- 						 hai->mob_rtr?
-@@ -146,8 +147,9 @@ static void _dhaad_start(struct home_add
- 		if (hai->mob_rtr && !(hai->home_block & NEMO_RA_BLOCK))
- 			xfrm_block_ra(hai);
- 		t->dhaad_resends = 0;
--		t->dhaad_id = dhaad_send_request(hai->primary_coa.iif,
--						 &hai->primary_coa.addr,
-+		assert(hai->current_coa);
-+		t->dhaad_id = dhaad_send_request(hai->current_coa->iif,
-+						 &hai->current_coa->addr,
- 						 &hai->home_prefix,
- 						 hai->home_plen,
- 						 hai->mob_rtr?
-diff -r 82fcd4bea972 src/gram.y
---- a/src/gram.y	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/gram.y	Fri Jan 11 17:02:25 2008 +0100
-@@ -47,15 +47,20 @@
- #include "util.h"
- #include "ipsec.h"
- #include "rtnl.h"
-+#include "bul.h"
- 
- struct net_iface ni = {
- 	.mip6_if_entity = MIP6_ENTITY_NO,
- 	.mn_if_preference = POL_MN_IF_DEF_PREFERENCE,
-+	.mn_if_bid = POL_MN_IF_DEF_BID,
-+	.mn_if_bidprio = POL_MN_IF_DEF_BID_PRIORITY,
-+	.mn_if_reliable = POL_MN_IF_DEF_RELIABLE
- };
- 	
- struct home_addr_info hai = {
- 	.ro_policies = LIST_HEAD_INIT(hai.ro_policies),
--	.mob_net_prefixes = LIST_HEAD_INIT(hai.mob_net_prefixes)
-+	.mob_net_prefixes = LIST_HEAD_INIT(hai.mob_net_prefixes),
-+	.mcoa = LIST_HEAD_INIT(hai.mcoa)
- };
- 
- LIST_HEAD(prefixes);
-@@ -185,6 +190,14 @@ static void uerror(const char *fmt, ...)
- %token		ISMOBRTR
- %token		HASERVEDPREFIX
- %token		MOBRTRUSEEXPLICITMODE
-+%token		HAACCEPTMCOAREG
-+%token		MCOAREG
-+%token		NOMCOAREG
-+%token		BID
-+%token		BIDPRIORITY
-+%token		RELIABLE
-+%token		REGMULTIPLECOA
-+%token		IFMULTIPLECOA
- 
- %token		INV_TOKEN
- 
-@@ -197,6 +210,7 @@ static void uerror(const char *fmt, ...)
- %type <addr>	mnropolicyaddr
- %type <bool>	dorouteopt
- %type <num>	bindaclpolval
-+%type <num>	mcoapolval
- %type <num>	prefixlen
- %type <num>	mip6entity
- %type <bool>	xfrmaction
-@@ -306,6 +320,10 @@ topdef		: MIP6ENTITY mip6entity ';'
- 		{
- 			conf.HaAcceptMobRtr = $2;
- 		}
-+		| HAACCEPTMCOAREG BOOL ';' 
-+		{ 
-+			conf.HaAcceptMCoAReg = $2;
-+		}
- 		| HASERVEDPREFIX prefixlistentry ';'
- 		{
- 			list_splice(&prefixes,
-@@ -375,6 +393,9 @@ ifacedef	: QSTRING ifacesub
- 			memset(&ni, 0, sizeof(struct net_iface));
- 			ni.mip6_if_entity = MIP6_ENTITY_NO;
- 			ni.mn_if_preference = POL_MN_IF_DEF_PREFERENCE;
-+			ni.mn_if_bid = POL_MN_IF_DEF_BID;
-+			ni.mn_if_bidprio = POL_MN_IF_DEF_BID_PRIORITY;
-+			ni.mn_if_reliable = POL_MN_IF_DEF_RELIABLE;
- 		}
- 		;
- 
-@@ -392,7 +413,44 @@ ifaceopt	: IFTYPE mip6entity ';'
- 		} 
- 		| MNIFPREFERENCE NUMBER ';'
- 		{
--			ni.mn_if_preference = $2;
-+			if (ni.mn_if_bid) {
-+				uerror("You cannot set MnIfPreference if BID "
-+				       "is set. Use BidPriority instead.");
-+				return -1;
-+			}
-+ 			ni.mn_if_preference = $2;
-+		}
-+		| BID NUMBER ';'
-+		{
-+			if (ni.mn_if_preference) {
-+				uerror("If BID is set, you cannot set "
-+				       "MnIfPreference. Use BidPriority instead.");
-+				return -1;
-+			}
-+			if ($2 < BULE_TABLE_MIN || $2 > BULE_TABLE_MAX) {
-+				uerror("BID error (%d <= Bid <= %d)",
-+					BULE_TABLE_MIN, BULE_TABLE_MAX);
-+				return -1;
-+			}
-+			ni.mn_if_bid = $2;
-+		}
-+		| BIDPRIORITY NUMBER ';'
-+		{
-+			if (ni.mn_if_preference) {
-+				uerror("You cannot set BidPriority if "
-+				       "MnIfPreference is set.");
-+				return -1;
-+			}		
-+			if ($2 < 1 || $2 > 255) {
-+				uerror("BidPriotity error "
-+				       "(%d <= BidPriority <= %d)",1, 255);
-+				return -1;
-+			}
-+			ni.mn_if_bidprio = $2;
-+		}
-+		| RELIABLE BOOL ';'
-+		{
-+			ni.mn_if_reliable = $2;
- 		}
- 		;
- 
-@@ -432,15 +490,28 @@ linksub		: QSTRING '{' linkdefs '}'
- 			INIT_LIST_HEAD(&nhai->ro_policies);
- 			INIT_LIST_HEAD(&nhai->ha_list.home_agents);
- 			INIT_LIST_HEAD(&nhai->mob_net_prefixes);
-+			INIT_LIST_HEAD(&nhai->mcoa);
- 			nhai->ha_list.dhaad_id = -1;
- 			list_splice(&hai.ro_policies, &nhai->ro_policies);
- 			list_splice(&hai.mob_net_prefixes,
- 				    &nhai->mob_net_prefixes);
-+			list_splice(&hai.mcoa, &nhai->mcoa);
-+			if (!hai.reg_mcoa) {
-+				/* If MCoA registration is not used, we
-+				 * initialize nhai->current_coa
-+				 */
-+				nhai->current_coa = malloc(sizeof(struct mn_addr)); 
-+				if (nhai->current_coa == NULL) {
-+					uerror("out of memory");
-+					return -1;
-+				}
-+			}
- 			list_add_tail(&nhai->list, &conf.home_addrs);
- 
- 			memset(&hai, 0, sizeof(struct home_addr_info));
- 			INIT_LIST_HEAD(&hai.ro_policies);
- 			INIT_LIST_HEAD(&hai.mob_net_prefixes);
-+			INIT_LIST_HEAD(&hai.mcoa);
- 		}
- 		;
- 
-@@ -468,6 +539,11 @@ linkdef		: HOMEAGENTADDRESS ADDR ';'
- 			ipv6_addr_prefix(&hai.home_prefix, &$2, $4);
- 			hai.home_plen = $4;
- 		}
-+		| REGMULTIPLECOA BOOL ';'
-+		{
-+			hai.reg_mcoa = $2;
-+		}
-+		| IFMULTIPLECOA iflist ';'
- 		;
- 
- homeaddress	: homeaddrdef prefixlistsub
-@@ -695,7 +771,12 @@ bindaclpolval	: BOOL
- 		| NUMBER { $$ = $1; }
- 		;
- 
--bindaclpolicy	: ADDR prefixlistsub bindaclpolval
-+mcoapolval	: MCOAREG { $$ = 1; }
-+		| NOMCOAREG { $$ = 0; }
-+		| '' { $$ = 0; }
-+		;
-+
-+bindaclpolicy	: ADDR prefixlistsub mcoapolval bindaclpolval
- 		{
- 			bae = malloc(sizeof(struct policy_bind_acl_entry));
- 			if (bae == NULL) {
-@@ -707,7 +788,8 @@ bindaclpolicy	: ADDR prefixlistsub binda
- 			bae->plen = 128;
- 			INIT_LIST_HEAD(&bae->mob_net_prefixes);
- 			bae->mnp_count = mv_prefixes(&bae->mob_net_prefixes);
--			bae->bind_policy = $3;
-+			bae->mcoa_reg = $3;
-+			bae->bind_policy = $4;
- 			list_add_tail(&bae->list, &conf.bind_acl);
- 		}
- 		;
-@@ -745,4 +827,58 @@ prefixlistentry	: ADDR '/' prefixlen
- 			list_add_tail(&p->list, &prefixes);
- 		}
- 		;
-+		
-+iflist		: iflistentry
-+		| iflist ',' iflistentry
-+		;
-+
-+iflistentry	: QSTRING
-+		{
-+			struct mn_addr *mncoa;
-+			struct list_head *l;
-+			int declared = 0, bid = 0;
-+			
-+			/* Check that this interface has been  
-+			 * previously declared as "Interface" */
-+			list_for_each(l, &conf.net_ifaces) {
-+				struct net_iface *ni;
-+				ni = list_entry(l, struct net_iface,
-+						list);
-+
-+				if(if_nametoindex($1) == ni->ifindex) {
-+					declared = 1;
-+					bid = ni->mn_if_bid;
-+					break;
-+				}
-+			}
-+
-+			if(!declared) {
-+				uerror("Interface %s has not been "
-+					"declared as Interface\n", $1);
-+				return -1;
-+			}
-+
-+			if(!bid) {
-+				uerror("Interface %s has no BID "
-+					"although you declared it in "
-+					"IfMultipleCoA\n", $1);
-+				return -1;
-+			}
-+			
-+			mncoa = malloc(sizeof(struct mn_addr));
-+			if (mncoa == NULL) {
-+				fprintf(stderr, "%s: out of memory\n", 
-+					__FUNCTION__);
-+				return -1;
-+			}
-+			memset(mncoa, 0, sizeof(struct mn_addr));
-+			if ((mncoa->iif = if_nametoindex($1)) == 0) {
-+				fprintf(stderr, "%s: %s is not a valid "
-+					"interface name\n", __FUNCTION__, $1);
-+				return -1;
-+			}
-+			free($1);
-+			list_add_tail(&mncoa->list, &hai.mcoa);
-+		}
-+		;
- %%
-diff -r 82fcd4bea972 src/ha.c
---- a/src/ha.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/ha.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -59,6 +59,14 @@
- #include "xfrm.h"
- #include "ndisc.h"
- #include "prefix.h"
-+
-+#define HA_DEBUG_LEVEL 1
-+
-+#if HA_DEBUG_LEVEL >= 1
-+#define MDBG dbg
-+#else 
-+#define MDBG(...) 
-+#endif /* MDBG */
- 
- static pthread_mutex_t bu_worker_mutex;
- static volatile unsigned long bu_worker_count = 0;
-@@ -504,7 +512,7 @@ static int ha_vt_init(void)
- 
- static void nemo_ha_del_mnp_routes(struct list_head *old_mnps,
- 				   struct list_head *new_mnps,
--				   int ifindex, int all)
-+				   int table, int ifindex, int all)
- {
- 	struct list_head *list;
- 	list_for_each(list, old_mnps) {
-@@ -514,14 +522,22 @@ static void nemo_ha_del_mnp_routes(struc
- 		    prefix_list_find(new_mnps, &p->ple_prefix, p->ple_plen))
- 			continue;
- 
--		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_FWD,
-+		route_del(ifindex, table, IP6_RT_PRIO_MIP6_FWD,
- 			  NULL, 0, &p->ple_prefix, p->ple_plen, NULL);
-+
-+		/* MCoA
-+		 * Delete the MNP fwmark rule
-+		 */
-+		if(table != RT6_TABLE_MIP6)
-+			rule_del(NULL, table, IP6_RULE_PRIO_MIP6_FWD_FWM, 
-+				 table, RTN_UNICAST, &in6addr_any, 0, 
-+			 	 &p->ple_prefix, p->ple_plen, 0);
- 	}
- }
- 
- static int nemo_ha_add_mnp_routes(struct list_head *old_mnps,
- 				  struct list_head *new_mnps,
--				  int ifindex, int all)
-+				  int table, int ifindex, int all)
- {
- 	struct list_head *list;
- 	list_for_each(list, new_mnps) {
-@@ -530,11 +546,89 @@ static int nemo_ha_add_mnp_routes(struct
- 		if (!all &&
- 		    prefix_list_find(old_mnps, &p->ple_prefix, p->ple_plen))
- 			continue;
--		if (route_add(ifindex, RT6_TABLE_MIP6, RTPROT_MIP,
-+		if (route_add(ifindex, table, RTPROT_MIP,
- 			      0, IP6_RT_PRIO_MIP6_FWD,
- 			      NULL, 0, &p->ple_prefix, p->ple_plen, NULL) < 0)
- 			return -1;
-+		/* MCoA
-+		 * Add the MNP fwmark rule
-+		 */
-+		if(table != RT6_TABLE_MIP6
-+		   && rule_add(NULL, table, IP6_RULE_PRIO_MIP6_FWD_FWM, 
-+			       table, RTN_UNICAST, &in6addr_any, 0, 
-+			       &p->ple_prefix, p->ple_plen, 0) < 0)
-+			return -1;
- 	}
-+	return 0;
-+}
-+
-+static int mcoa_ha_init_rt_table(struct bcentry *bce)
-+{
-+	/* MCoA TODO2
-+	 * At the moment, the routing table number is the BID number. 
-+	 * BID thus must be between BCE_TABLE_MIN and BCE_TABLE_MAX
-+	 */
-+	assert(bce);
-+
-+	/* If BID is not assigned, default table is taken */
-+	if (!bce->bid)
-+		return (bce->table = RT6_TABLE_MIP6);
-+	
-+	if (bce->bid >= BCE_TABLE_MIN && bce->bid <= BCE_TABLE_MAX)
-+		return (bce->table = bce->bid);
-+
-+	return -1;
-+}
-+
-+static int mcoa_ha_del_dflt_rules(struct bcentry *bce)
-+{
-+	struct list_head *list;
-+	struct prefix_list_entry *pfx;
-+	struct bcentry *best_bce = bce;
-+	const struct in6_addr *peer_addr = &bce->peer_addr;
-+	int8_t priority = 0;
-+	
-+	MDBG("Current BCE has the best priority (%d), "
-+	     "erasing default rules\n", best_bce->priority);
-+	
-+	/* Erase the default HoA rule */
-+	rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, 
-+		RTN_UNICAST, &in6addr_any, 0, peer_addr, 128, 0);
-+	
-+	/* Erase the default MNP rules */
-+	list_for_each(list, &bce->mob_net_prefixes) {
-+		pfx = list_entry(list, struct prefix_list_entry, list);
-+		rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, 
-+			RTN_UNICAST, &in6addr_any, 0, 
-+			&pfx->ple_prefix, pfx->ple_plen, 0);
-+	}
-+		
-+	/* Create new rule with next best bce available */
-+	priority = bce->priority;
-+	bce->priority = 0;
-+	bcache_iterate_in(&bce->peer_addr, bce_highest_priority, 
-+			&best_bce);
-+	bce->priority = priority;
-+	
-+	if(best_bce != bce) {
-+		MDBG("Rules replaced with BCE prio %d\n", 
-+			best_bce->priority);
-+		rule_add(NULL, best_bce->table, 
-+			IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, RTN_UNICAST, 
-+			&in6addr_any, 0, peer_addr, 128, 0);
-+				
-+		/* Default prefix rules */		
-+		list_for_each(list, &bce->mob_net_prefixes) {
-+			pfx = list_entry(list, 
-+				struct prefix_list_entry, list);
-+		   	rule_add(NULL, best_bce->table, 
-+				IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, 
-+				RTN_UNICAST, &in6addr_any, 0, 
-+				&pfx->ple_prefix, pfx->ple_plen, 0);
-+		}
-+	} else
-+		MDBG("No other BCE available, no dflt rules added\n");
-+
- 	return 0;
- }
- 
-@@ -544,10 +638,49 @@ struct home_tnl_ops_parm {
- 	struct list_head mob_net_prefixes;
- };
- 
-+static int mcoa_ha_add_dflt_rules(struct home_tnl_ops_parm *p)
-+{
-+	struct list_head *list;
-+	struct bcentry *bce = p->bce;
-+	const struct in6_addr *peer_addr = &bce->peer_addr;
-+	
-+	MDBG("BCE has the best priority (%d), adding default HoA "
-+		"and prefix rules\n", bce->priority);
-+	
-+	/* Erase the default HoA rule */
-+	rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, 
-+		RTN_UNICAST, &in6addr_any, 0, peer_addr, 128, 0);
-+	
-+	/* Add the default HoA rule */
-+	if (rule_add(NULL, bce->table,
-+			IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, RTN_UNICAST,
-+			&in6addr_any, 0, peer_addr, 128, 0) < 0)
-+		return -1;
-+	
-+	/* Delete and add the default prefix rules */
-+	list_for_each(list, &p->mob_net_prefixes) {
-+		struct prefix_list_entry *pfx;
-+		pfx = list_entry(list, struct prefix_list_entry, list);
-+		
-+		rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_FWD_MCOA, 
-+			0, RTN_UNICAST, &in6addr_any, 0, 
-+			&pfx->ple_prefix, pfx->ple_plen, 0);
-+		
-+		if (rule_add(NULL, bce->table, 
-+				IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, 
-+				RTN_UNICAST, &in6addr_any, 0, 
-+				&pfx->ple_prefix, pfx->ple_plen, 0) < 0)
-+			return -1;
-+	}
-+	
-+	return 0;
-+}
-+
- static int home_tnl_del(int old_if, int new_if, struct home_tnl_ops_parm *p)
- {
- 	const struct in6_addr *our_addr, *peer_addr, *coa, *old_coa;
- 	struct list_head *mnp;
-+	struct bcentry *best_bce = NULL;
- 
- 	assert(old_if);
- 
-@@ -565,12 +698,33 @@ static int home_tnl_del(int old_if, int 
- 		ha_ipsec_tnl_pol_del(our_addr, peer_addr, p->bce->tunnel, mnp);
- 	}
- 	/* delete HoA route */
-+	/* MCoA: The route is deleted in the table given by p->bce->table */
-+	/* RKRK: for the moment the route is installed in the MAIN table. 
-+	 * See home_tnl_add */
-+	//MDBG("Deleting old default route in table %d\n", p->bce->table);
-+	MDBG("Deleting old default route in table %d\n", RT6_TABLE_MAIN);
-+	//route_del(old_if, p->bce->table,
- 	route_del(old_if, RT6_TABLE_MAIN,
- 		  IP6_RT_PRIO_MIP6_FWD, NULL, 0, peer_addr, 128, NULL);
--
-+ 
- 	/* delete MNP routes */
- 	nemo_ha_del_mnp_routes(&p->bce->mob_net_prefixes,
--			       &p->mob_net_prefixes, old_if, 1);
-+			       &p->mob_net_prefixes, p->bce->table, 
-+			       old_if, 1);
-+	/* MCoA 
-+	 * Delete the HoA and fwmark rules, and if needed replace 
-+	 * the default HoA and MNP rules with the best available one
-+	 */
-+	if(p->bce->table != RT6_TABLE_MIP6) {
-+		rule_del(NULL, p->bce->table, IP6_RULE_PRIO_MIP6_FWD_FWM,
-+			 p->bce->table, RTN_UNICAST, &in6addr_any, 0, 
-+			 peer_addr, 128, 0);
-+		best_bce = p->bce;
-+		bcache_iterate_in(&p->bce->peer_addr, 
-+				  bce_highest_priority, &best_bce);
-+		if(best_bce == p->bce)
-+			mcoa_ha_del_dflt_rules(p->bce);
-+	}
- 	/* update tunnel interface */
- 	p->bce->tunnel = new_if;
- 
-@@ -581,6 +735,7 @@ static int home_tnl_add(int old_if, int 
- {
- 	const struct in6_addr *our_addr, *peer_addr, *coa, *old_coa;
- 	struct list_head *mnp;
-+	struct bcentry *best_bce = NULL;
- 
- 	assert(new_if);
- 
-@@ -596,7 +751,8 @@ static int home_tnl_add(int old_if, int 
- 
- 	/* add MNP routes */
- 	if (nemo_ha_add_mnp_routes(&p->bce->mob_net_prefixes,
--				   &p->mob_net_prefixes, new_if, 1) < 0) {
-+				   &p->mob_net_prefixes, p->bce->table, 
-+				   new_if, 1) < 0) {
- 		if (p->bce->nemo_type == BCE_NEMO_EXPLICIT)
- 			p->ba_status = IP6_MH_BAS_INVAL_PRFX;
- 		else
-@@ -604,11 +760,38 @@ static int home_tnl_add(int old_if, int 
- 		goto err;
- 	}
- 	/* add HoA route */
-+	/* MCoA: The route is added in the table given by p->bce->table */
-+	/* RKRK: does not work. Route has to be added in the MAIN table.
-+	 * Need to check why! */
-+	//MDBG("Adding route in table %d via iface %d\n", p->bce->table, new_if);
-+	MDBG("Adding route in table %d via iface %d\n", RT6_TABLE_MAIN, new_if);
-+	//if (route_add(new_if, p->bce->table,
- 	if (route_add(new_if, RT6_TABLE_MAIN,
- 		      RTPROT_MIP, 0, IP6_RT_PRIO_MIP6_FWD,
- 		      NULL, 0, peer_addr, 128, NULL) < 0) {
- 		p->ba_status = IP6_MH_BAS_INSUFFICIENT;
- 		goto err;
-+	}
-+	/* MCoA
-+	 * Add the HoA and fwmark rules, and if needed replace 
-+	 * the default HoA and MNP rules with the best available one
-+	 */
-+	if (p->bce->table != RT6_TABLE_MIP6) {
-+		if (rule_add(NULL, p->bce->table,
-+			     IP6_RULE_PRIO_MIP6_FWD_FWM, 
-+			     p->bce->table, RTN_UNICAST,
-+		     	     &in6addr_any, 0, peer_addr, 128, 0) < 0) {
-+			p->ba_status = IP6_MH_BAS_INSUFFICIENT;
-+			goto err;
-+		}
-+		best_bce = p->bce; 
-+		bcache_iterate_in(&p->bce->peer_addr, 
-+				bce_highest_priority, &best_bce);
-+		if(best_bce == p->bce 
-+		   && mcoa_ha_add_dflt_rules(p) < 0) {
-+			p->ba_status = IP6_MH_BAS_INSUFFICIENT;
-+			goto err;
-+		}
- 	}
- 	/* add SP entry */	
- 	if (conf.UseMnHaIPsec) {
-@@ -664,9 +847,11 @@ static int home_tnl_chg(int old_if, int 
- 			/* Do the same for routes */
- 			nemo_ha_del_mnp_routes(&p->bce->mob_net_prefixes,
- 					       &p->mob_net_prefixes,
-+					       p->bce->table,
- 					       old_if, 0);
- 			if (nemo_ha_add_mnp_routes(&p->bce->mob_net_prefixes,
- 						   &p->mob_net_prefixes,
-+						   p->bce->table,
- 						   new_if, 0) < 0) {
- 				if (p->bce->nemo_type == BCE_NEMO_EXPLICIT)
- 					p->ba_status = IP6_MH_BAS_INVAL_PRFX;
-@@ -707,12 +892,22 @@ static int home_tnl_ops(int request, int
- 
- static void home_cleanup(struct bcentry *bce)
- {
--	mpd_cancel_mpa(&bce->our_addr, &bce->peer_addr);
-+	int nb_entry = mcoa_bce_count(&bce->peer_addr);
-+
-+	/* MCoA 
-+	 * MPA is canceled if this is the last BCE entry
-+	 */
-+	if (nb_entry == 1)
-+		mpd_cancel_mpa(&bce->our_addr, &bce->peer_addr);
- 
- 	if (bce->link > 0) {
--		route_del(bce->link, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_OUT,
-+		route_del(bce->link, bce->table, IP6_RT_PRIO_MIP6_OUT,
- 			  &bce->our_addr, 128, &bce->peer_addr, 128, NULL);
--		proxy_nd_stop(bce->link, &bce->peer_addr, bce->flags);
-+		/* MCoA
-+		 * Proxy ND is stopped if this is the last BCE entry
-+		 */
-+		if (nb_entry == 1)
-+			proxy_nd_stop(bce->link, &bce->peer_addr, bce->flags);
- 	}
- 	if (bce->tunnel > 0) {
- 		struct home_tnl_ops_parm p = {
-@@ -724,6 +919,9 @@ static void home_cleanup(struct bcentry 
- 	if (conf.UseMnHaIPsec) {
- 		ha_mn_ipsec_pol_mod(&bce->our_addr, &bce->peer_addr);
- 	}
-+
-+	/* MCoA: Freeing the BCE's MNPs list */
-+	prefix_list_free(&bce->mob_net_prefixes);
- }
- 
- 
-@@ -800,19 +998,28 @@ static void *ha_recv_bu_worker(void *var
- {
- 	struct ha_recv_bu_args *arg = varg;
- 	struct in6_addr_bundle out;
--	struct bcentry *bce;
-+	struct bcentry *bce, *bce_exists;
- 	struct timespec lft, tmp;
--	int iif, status, new, home_ifindex;
--	uint16_t bu_flags, seqno;
--	uint8_t ba_flags;
-+	int iif, status, status_bid, new, home_ifindex;
-+	int update_dflt_table;
-+	uint16_t bu_flags, seqno, bid;
-+	uint8_t ba_flags, bid_priority, bid_flags;
- 	struct home_tnl_ops_parm p;
-+	struct ip6_mh_opt_bid *bid_opt;	
- 
- 	pthread_dbg("thread started");
- restart:	
- 	home_ifindex = 0;
- 	new = 0;
-+	bid = 0; 
-+	bid_priority = 0;
-+	bid_flags = 0;
-+	update_dflt_table = 0;
- 	ba_flags = 0;
--	lft = arg->lft;
-+	status = IP6_MH_BAS_UNSPECIFIED;
-+	status_bid = 0;
-+	bce = NULL;
-+ 	lft = arg->lft;
- 	iif = arg->iif;
- 	bu_flags = arg->bu->ip6mhbu_flags;
- 	seqno = ntohs(arg->bu->ip6mhbu_seqno);
-@@ -827,8 +1034,79 @@ restart:
- 	else
- 		out.bind_coa = NULL;
- 	out.local_coa = NULL;
-+	bid_opt = NULL;
- 
--	bce = bcache_get(out.src, out.dst);
-+	/* MCoA
-+	 * We check if a BCE already exists for this HoA 
-+	 * We take the first one available 
-+	 */
-+	bce_exists = bcache_get(out.src, out.dst, MCOA_NO_BID);	
-+	if(bce_exists)
-+		bcache_release_entry(bce_exists);
-+
-+	/* MCoA
-+	 * we need the BID before looking at the BCE 
-+	 */
-+	bid_opt = mh_opt(&arg->bu->ip6mhbu_hdr, 
-+			&arg->mh_opts, 
-+			IP6_MHOPT_BID);
-+
-+	if (bid_opt && !default_mcoa_reg(out.dst)) {
-+		/* MCoA: BAck without BID option will be sent */
-+		MDBG("BUI option, but MCoA registration not allowed.\n");
-+	} else if (bid_opt) {
-+		MDBG("BUI option, and HA is configured for MCoA.\n");
-+		bid = ntohs(bid_opt->ip6mobid_bid);
-+		bid_priority = bid_opt->ip6mobid_priority;
-+		bid_flags = ntohs(bid_opt->ip6mobid_reserved);
-+		
-+		if (!bid) {
-+			MDBG("BID invalid, BU discarded.\n");
-+			goto out;
-+		}
-+		
-+		MDBG("BID = %d, Priority = %d\n", bid, bid_priority);
-+		/* MCoA TODO1
-+		 * if B flag is set but no altcoa option: 
-+		 * BAck status 145.
-+		 * To update according to latest draft.
-+		 */
-+		if (bid_flags & IP6_OPT_BID_BULK) {
-+			/* MCoA TODO1
-+		 	* At the moment we do not check the AltCoA option, 
-+		 	* and just reject the BU if B flag is set
-+		 	*/
-+			MDBG("BULK Reg., but not supported yet.\n");
-+				status = IP6_MH_BAS_MCOA_BULK_FAILED;
-+				goto send_nack;
-+		}
-+		if (bce_exists && !bce_exists->bid) {
-+			/* MCoA 
-+			 * The BCE has a BID = 0, this means no MCoA 
-+			 * are registered. We delete the entry and set 
-+			 * BA status to 144. 
-+			 * New registratration is done later
-+			 */
-+			MDBG("BID option but BCE has no BID\n");
-+			MDBG("Delete BCE and register new one.\n");
-+			bcache_delete(out.src, out.dst, MCOA_NO_BID);				
-+			status_bid = IP6_MH_BAS_CONFLICT_BINDING;
-+		}							
-+	} else /* No BUI option in BU */ {
-+		if(tsisset(lft) && bce_exists && bce_exists->bid) {
-+			/* MCoA
-+			 * A BCE exists with a BID != 0 but no BUI 
-+			 * sub-option are set in the BU: we delete 
-+			 * all existing entries for this HoA. New 
-+			 * registration is done later.
-+			 */
-+			MDBG("No BID option but BCE has BID.\n");
-+			MDBG("Delete all BCE and register new one.\n");
-+			bcache_delete(out.src, out.dst, MCOA_NO_BID);
-+		}
-+	}
-+	
-+	bce = bcache_get(out.src, out.dst, bid);
- 	if (bce) {
- 		if (bce->type != BCE_NONCE_BLOCK) {
- 			/* H-bit or R-bit mismatch, flags changed */
-@@ -873,7 +1151,7 @@ restart:
- 				goto send_nack;
- 			}
- 			/* else get rid of it */
--			bcache_delete(out.src, out.dst);
-+			bcache_delete(out.src, out.dst, bid);			
- 		}
- 	} else if (!tsisset(lft)) {
- 		status = IP6_MH_BAS_NOT_HA;
-@@ -895,6 +1173,10 @@ restart:
- 					   out.src, arg->bu, arg->len);
- 	if (status >= IP6_MH_BAS_UNSPECIFIED)
- 		goto send_nack;
-+
-+	if(status_bid)
-+		status = status_bid;
-+
- 	/* lifetime may be further decreased by local policy */
- 	if (conf.pmgr.max_binding_life(out.dst, out.bind_coa, out.src,
- 				       arg->bu, arg->len, &lft, &tmp)) {
-@@ -916,24 +1198,38 @@ restart:
- 		bce->type = BCE_DAD;
- 		bce->cleanup = NULL;
- 		bce->link = home_ifindex;
--
-+		bce->bid = bid;
-+		bce->priority = bid_priority;
-+		if(bce_exists)
-+			bce->xfrm_create = 0;
-+		else
-+			bce->xfrm_create = 1;
-+ 
-+		/* MCoA: Initialize the routing table used by the BCE */
-+		if(mcoa_ha_init_rt_table(bce) < 0) {
-+ 			free(bce);
-+ 			bce = NULL;
-+ 			status = IP6_MH_BAS_INSUFFICIENT;
-+ 			goto send_nack;
-+ 		}
- 		if (bcache_add_homereg(bce) < 0) {
- 			free(bce);
- 			bce = NULL;
- 			status = IP6_MH_BAS_INSUFFICIENT;
- 			goto send_nack;
- 		}
--		if (!(arg->flags & HA_BU_F_SKIP_DAD)) {
-+		/* MCoA: Do DAD only if no entries yet for this HoA */		
-+		if (!(arg->flags & HA_BU_F_SKIP_DAD) && !bce_exists) {
- 			/* Do DAD for home address */
- 			if (ndisc_do_dad(home_ifindex, out.dst,
- 					 bu_flags & IP6_MH_BU_LLOCAL) < 0) {
--				bcache_delete(out.src, out.dst);
-+				bcache_delete(out.src, out.dst, bid);
- 				bce = NULL;
- 				status =  IP6_MH_BAS_DAD_FAILED;
- 				goto send_nack;
- 			}
- 		}
--		bce = bcache_get(out.src, out.dst);
-+		bce = bcache_get(out.src, out.dst, bid);
- 		if (!bce) {
- 			BUG("BCE deleted before DAD completed!");
- 			status =  IP6_MH_BAS_UNSPECIFIED;
-@@ -965,6 +1261,7 @@ restart:
- 	bce->seqno = seqno;
- 	bce->flags = bu_flags;
- 	bce->lifetime = lft;
-+
- 	if (new) {
- 		if (tunnel_add(out.src, out.bind_coa, 0, 
- 			       home_tnl_ops, &p) < 0) {
-@@ -979,7 +1276,8 @@ restart:
- 
- 		bce->cleanup = home_cleanup;
- 
--		if (route_add(bce->link, RT6_TABLE_MIP6,
-+		/* MCoA: The route is added in the table given by the BCE */
-+		if (route_add(bce->link, bce->table,
- 			      RTPROT_MIP, 0, IP6_RT_PRIO_MIP6_OUT,
- 			      &bce->our_addr, 128, &bce->peer_addr, 128, 
- 			      NULL) < 0) {
-@@ -987,16 +1285,23 @@ restart:
- 			goto send_nack;
- 		}
- 
--		if (proxy_nd_start(bce->link, out.dst, out.src,
--				   bu_flags) < 0) {
--			status = IP6_MH_BAS_INSUFFICIENT;
--			goto send_nack;
-+		/* MCoA: Do Proxy ND only if no entries yet for this HoA */
-+		if (!bce_exists) {
-+			if (proxy_nd_start(bce->link, out.dst, 
-+					   out.src, bu_flags) < 0) {
-+				status = IP6_MH_BAS_INSUFFICIENT;
-+				goto send_nack;
-+			}
- 		}
- 		bce->type = BCE_HOMEREG;
- 		bcache_complete_homereg(bce);
- 	} else {
- 		bce->old_coa = bce->coa;
- 		bce->coa = *out.bind_coa;
-+		if (tsisset(lft)) {
-+			bce->bid = bid;
-+			bce->priority = bid_priority;
-+		}
- 		if (tunnel_mod(bce->tunnel, out.src, out.bind_coa, 0,
- 			       home_tnl_ops, &p) < 0) { 
- 			if (p.ba_status >= IP6_MH_BAS_UNSPECIFIED)
-@@ -1006,15 +1311,24 @@ restart:
- 			goto send_nack;
- 		}
- 		/* Now update the MNP list in the BCE */
--		prefix_list_free(&bce->mob_net_prefixes);
--		list_splice(&p.mob_net_prefixes, &bce->mob_net_prefixes);
--
-+		/* MCoA: the update is done only if this is not a 
-+		 * deregistration BU, otherwise MNPs are erased from the BCE
-+		 * (the dereg BU does not have any MNP option), thus there 
-+		 * is a problem to update the fwmark MNP rules
-+		 */
-+		if (tsisset(lft)) {
-+			prefix_list_free(&bce->mob_net_prefixes);
-+			list_splice(&p.mob_net_prefixes, &bce->mob_net_prefixes);
-+		}
- 		bcache_update_expire(bce);
- 	}
- 	/* bce is always valid here */
- 	bcache_release_entry(bce);
- 	if (!tsisset(lft))
--		bcache_delete(out.src, out.dst);
-+		/* MCoA: We delete one specific entry (bid is set) 
-+		 * or all entries for this HoA (if bid is set to 0)
-+		 */
-+		bcache_delete(out.src, out.dst, bid);
- 
- 	if ((bu_flags & IP6_MH_BU_KEYM) && 
- 	    conf.pmgr.use_keymgm(out.dst, out.src))
-@@ -1035,12 +1349,16 @@ restart:
- 		 * have a binding before sending this Binding Update,
- 		 * discard the connections to the home address. */
- 	}
-- 	if (status < IP6_MH_BAS_UNSPECIFIED && bu_flags & IP6_MH_BU_MR)
-+	if ((status < IP6_MH_BAS_UNSPECIFIED 
-+	     || status == IP6_MH_BAS_CONFLICT_BINDING)
-+	     && bu_flags & IP6_MH_BU_MR)
-  		ba_flags |= IP6_MH_BA_MR;
- 
- 	if (!(arg->flags & HA_BU_F_SKIP_BA))
--		mh_send_ba(&out, status, ba_flags, seqno, &lft, NULL, iif);
--	if (new && tsisset(lft))
-+		mh_send_ba(&out, status, ba_flags, seqno, &lft,
-+			   bid, bid_priority, NULL, iif);
-+	/* MCoA: Start MPA only if no entries yet for this HoA */	
-+	if (!bce_exists && new && tsisset(lft))
- 		mpd_start_mpa(&bce->our_addr, &bce->peer_addr);
- out:
- 	free(arg);
-@@ -1060,10 +1378,12 @@ send_nack:
- send_nack:
- 	if (bce) {
- 		bcache_release_entry(bce);
--		bcache_delete(out.src, out.dst);
-+		bcache_delete(out.src, out.dst, bid);
- 	}
- 	if (!(arg->flags & HA_BU_F_SKIP_BA))
--		mh_send_ba_err(&out, status, 0, seqno, NULL, iif);
-+		/* MCoA: Specify the BID and BID priority to the BAck */
-+		mh_send_ba_err(&out, status, 0, seqno, bid, 
-+			       bid_priority, NULL, iif);
- 	goto out;
- }
- 
-@@ -1089,12 +1409,13 @@ int ha_recv_bu_main(const struct ip6_mh 
- 
- 	arg = malloc(sizeof(struct ha_recv_bu_args) + len);
- 	if (!arg) {
--		if (bce_exists(out.src, out.dst))
--			bcache_delete(out.src, out.dst);
-+		if (bce_exists(out.src, out.dst, MCOA_NO_BID))
-+			bcache_delete(out.src, out.dst, MCOA_NO_BID);
- 
- 		if (!(arg->flags & HA_BU_F_SKIP_BA))
- 			mh_send_ba_err(&out, IP6_MH_BAS_INSUFFICIENT, 0,
--				       ntohs(bu->ip6mhbu_seqno), NULL, iif);
-+				       ntohs(bu->ip6mhbu_seqno), 0, 0,
-+				       NULL, iif);
- 		return -ENOMEM;
- 	}
- 	arg->src = *out.src;
-@@ -1166,8 +1487,9 @@ int ha_init(void)
- 		return -1;
- 	if (mpd_ha_init() < 0)
- 		return -1;
-+	/* MCoA: Rule to the default table (RT6_TABLE_MIP6) */
- 	if (rule_add(NULL, RT6_TABLE_MIP6,
--		     IP6_RULE_PRIO_MIP6_FWD, RTN_UNICAST,
-+		     IP6_RULE_PRIO_MIP6_FWD, 0, RTN_UNICAST,
- 		     &in6addr_any, 0, &in6addr_any, 0, 0) < 0)
- 		return -1;
- 	icmp6_handler_reg(ND_ROUTER_ADVERT, &ha_ra_handler);
-@@ -1185,7 +1507,7 @@ void ha_cleanup(void)
- 	pthread_mutex_unlock(&bu_worker_mutex);
- 	bcache_flush();
- 	rule_del(NULL, RT6_TABLE_MIP6,
--		 IP6_RULE_PRIO_MIP6_FWD, RTN_UNICAST,
-+		 IP6_RULE_PRIO_MIP6_FWD, 0, RTN_UNICAST,
- 		 &in6addr_any, 0, &in6addr_any, 0, 0);
- 	mpd_ha_cleanup();
- 	dhaad_ha_cleanup();
-diff -r 82fcd4bea972 src/hash.c
---- a/src/hash.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/hash.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -47,6 +47,7 @@ struct hash_entry {
- struct hash_entry {
- 	struct in6_addr *our_addr; /* pointer to our_addr in data */
- 	struct in6_addr *peer_addr; /* pointer to peer_addr in data */
-+	uint16_t *bid; /* pointer to bid in data, can be NULL */
- 	struct hash_entry *next;
- 	void *data;
- };
-@@ -78,7 +79,7 @@ static uint32_t calc_hash1(int s, const 
- }
- 
- static int match2(struct hash_entry *h, const struct in6_addr *our_addr, 
--		  const struct in6_addr *peer_addr)
-+	          const struct in6_addr *peer_addr, uint16_t bid)
- {
- 	assert(h);
- 	assert(our_addr && h->our_addr);
-@@ -89,9 +90,15 @@ static int match2(struct hash_entry *h, 
- 	printf("h->peer %s\n", inet_ntop(AF_INET6, h->peer_addr, s, sizeof(s)));
- 	printf("our_addr %s\n", inet_ntop(AF_INET6, our_addr, s, sizeof(s)));
- 	printf("h->our_addr %s\n", inet_ntop(AF_INET6, h->our_addr, s, sizeof(s)));
-+	printf("bid %d\n", bid);
-+	if(h->bid != NULL)
-+		printf("h->bid %d\n", *(h->bid));
-+	else
-+		printf("h->bid is NULL\n");
- #endif
- 	if (IN6_ARE_ADDR_EQUAL(h->peer_addr, peer_addr) &&
--	    IN6_ARE_ADDR_EQUAL(h->our_addr, our_addr)) {
-+	    IN6_ARE_ADDR_EQUAL(h->our_addr, our_addr) && 
-+	    (bid == 0 || (h->bid != NULL && bid == *(h->bid)))) {
- 		return 1;
- 	}
- 	return 0;
-@@ -99,7 +106,7 @@ static int match2(struct hash_entry *h, 
- }
- 
- static int match1(struct hash_entry *h, const struct in6_addr *dummy,
--		  const struct in6_addr *peer_addr)
-+		  const struct in6_addr *peer_addr, uint16_t bid)
- {
- 	assert(h);
- 	assert(h->peer_addr && peer_addr);
-@@ -107,8 +114,14 @@ static int match1(struct hash_entry *h, 
- 	char s[INET6_ADDRSTRLEN];
- 	printf("match1: peer %s\n", inet_ntop(AF_INET6, peer_addr, s, sizeof(s)));
- 	printf("h->peer %s\n", inet_ntop(AF_INET6, h->peer_addr, s, sizeof(s)));
-+	printf("bid %d\n", bid);
-+	if(h->bid != NULL)
-+		printf("h->bid %d\n", *(h->bid));
-+	else
-+		printf("h->bid is NULL\n");
- #endif
--	if (!IN6_ARE_ADDR_EQUAL(h->peer_addr, peer_addr))
-+	if (!IN6_ARE_ADDR_EQUAL(h->peer_addr, peer_addr) ||
-+	    (bid !=0 && h->bid != NULL && bid != *(h->bid)))
- 		return 0;
- 	return 1;
- }
-@@ -155,7 +168,8 @@ void hash_cleanup(struct hash *h)
- 
- void *hash_get(const struct hash *h,
- 	       const struct in6_addr *our_addr, 
--	       const struct in6_addr *peer_addr)
-+	       const struct in6_addr *peer_addr,
-+	       uint16_t bid)
- {
- 	struct hash_entry *hptr = NULL;
- 	
-@@ -165,7 +179,7 @@ void *hash_get(const struct hash *h,
- 	hptr = h->hash_buckets[h->calc_hash(h->buckets, our_addr , peer_addr)];
- 
- 	while(hptr) {
--		if (h->match(hptr, our_addr, peer_addr))
-+		if (h->match(hptr, our_addr, peer_addr, bid))
- 			return hptr->data;
- 		hptr = hptr->next;
- 	}
-@@ -173,7 +187,8 @@ void *hash_get(const struct hash *h,
- }
- 
- int hash_add(const struct hash *h, void *data,
--	     struct in6_addr *our_addr, struct in6_addr *peer_addr)
-+	     struct in6_addr *our_addr, struct in6_addr *peer_addr,
-+	     uint16_t *bid)
- {
- 	struct hash_entry *hptr = NULL, *new;
- 	uint32_t hash_ind;
-@@ -185,17 +200,19 @@ int hash_add(const struct hash *h, void 
- 	assert(peer_addr);
- 
- 	if ((new = (struct hash_entry *)malloc(sizeof(struct hash_entry))) == NULL) {
--		dbg("out of memeory\n");
-+		dbg("out of memory\n");
- 		return -ENOMEM;
- 	}
- 	new->our_addr = our_addr;
- 	new->peer_addr = peer_addr;
- 	new->data = data;
-+	new->bid = bid;
- 	hash_ind  = h->calc_hash(h->buckets, our_addr, peer_addr);
- 	hptr = h->hash_buckets[hash_ind];
- 	if (hptr) {
- 		while (hptr->next){
--			if (h->match(hptr, our_addr, peer_addr)) {
-+			if (h->match(hptr, our_addr, peer_addr, 
-+				     (bid) ? (*bid) : 0)) {
- 				free(new);
- 				return -EEXIST;
- 			}
-@@ -231,9 +248,35 @@ int hash_iterate(const struct hash *h, i
- 	return 0;
- }
- 
-+int hash_iterate_in(const struct hash *h, 
-+		    const struct in6_addr *peer_addr, 
-+		    int (*func)(void *, void *), 
-+		    void *arg)
-+{
-+	int err = 0;
-+	int i;
-+	struct hash_entry *hptr, *nptr;
-+
-+	assert(func);
-+	
-+	for (i=0; i < h->buckets; i++) {
-+		if((hptr = h->hash_buckets[i]) != NULL) {
-+			while(hptr) {
-+				nptr = hptr->next;
-+				if (IN6_ARE_ADDR_EQUAL(hptr->peer_addr, peer_addr)
-+				    && (err = func(hptr->data, arg)))
-+					return err;
-+				hptr = nptr;
-+			}
-+		}
-+	}
-+	return 0;
-+}
-+
- void hash_delete(const struct hash *h,
- 		 const struct in6_addr *our_addr,
--		 const struct in6_addr *peer_addr)
-+		 const struct in6_addr *peer_addr,
-+		 uint16_t bid)
- {
- 	struct hash_entry *hptr, *pptr, *head;
- 	int hash_ind;
-@@ -247,7 +290,7 @@ void hash_delete(const struct hash *h,
- 	
- 	pptr = hptr = head;
- 	while (hptr) {
--		if (h->match(hptr, our_addr, peer_addr)){
-+		if (h->match(hptr, our_addr, peer_addr, bid)){
- 			if (hptr != head) 
- 				pptr->next = hptr->next;
- 			else {
-diff -r 82fcd4bea972 src/hash.h
---- a/src/hash.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/hash.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -20,7 +20,9 @@ struct hash {
- 	int buckets;
- 	int type; 
- 	uint32_t (*calc_hash)(int, const struct in6_addr *, const struct in6_addr *);
--	int (*match)(struct hash_entry *, const struct in6_addr *, const struct in6_addr *);
-+	int (*match)(struct hash_entry *, const struct in6_addr *, 
-+		     const struct in6_addr *, uint16_t);
-+
- 	struct hash_entry **hash_buckets;
- };
- 
-@@ -37,19 +39,24 @@ int hash_init(struct hash *h, int type, 
-  */
- void hash_cleanup(struct hash *h);
- /*
-- *  Get data stored in a hash entry based on one or two addresses, depending on type of hash
-+ * Get data stored in a hash entry based on one or two addresses and the bid,
-+ * depending on type of hash. bid=0 means we do not use bid as a search key.
-  */
- void *hash_get(const struct hash *h,
- 	       const struct in6_addr *our_addr, 
--	       const struct in6_addr *peer_addr) ;
-+	       const struct in6_addr *peer_addr,
-+	       uint16_t bid);
- 
- /* Iterate through the hash and call func for every entry */
- 
- int hash_iterate(const struct hash *h, int (*func)(void *data, void *arg), void *arg);
-+int hash_iterate_in(const struct hash *h, const struct in6_addr *peer_addr, 
-+		    int (*func)(void *, void *), void *arg);
- 
- /* Add a hash entry to hash */		 
- int hash_add(const struct hash *h, void  *data,
--	     struct in6_addr *our_addr, struct in6_addr *peer_addr);
-+	     struct in6_addr *our_addr, struct in6_addr *peer_addr,
-+	     uint16_t *bid);
- 
- /*
-  *Delete entry from hash
-@@ -57,6 +64,7 @@ int hash_add(const struct hash *h, void 
- 
- void hash_delete(const struct hash *h,
- 		 const struct in6_addr *our_addr, 
--		 const struct in6_addr *peer_addr);
-+		 const struct in6_addr *peer_addr,
-+		 uint16_t bid);
- 
- #endif /* _HASH_H */
-diff -r 82fcd4bea972 src/mh.c
---- a/src/mh.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/mh.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -77,6 +77,7 @@ int mh_opts_dup_ok[] = {
- 	0, /* Nonce Index */
- 	0, /* Binding Auth Data */
- 	1, /* Mobile Network Prefix */
-+	1  /* Binding Unique Identifier */
- };
- 
- #define __MH_SENTINEL (IP6_MH_TYPE_MAX + 1)
-@@ -443,6 +444,41 @@ int mh_create_opt_mob_net_prefix(struct 
- 	return 0;
- }
- 
-+/* MCoA
-+ * mh_create_opt_bid - Create a Binding Unique Identifier Option
-+ * MCoA TODO1: need to be adapted for BULK registration
-+ */
-+int mh_create_opt_bid(struct iovec *iov, uint16_t bid, 
-+		      uint8_t priority, uint8_t bid_flags)
-+{
-+	int optlen = sizeof(struct ip6_mh_opt_bid);
-+	struct ip6_mh_opt_bid *opt_bid;
-+	uint8_t *data;
-+
-+	iov->iov_base = malloc(optlen);
-+	iov->iov_len = optlen;
-+
-+	if (iov->iov_base == NULL)
-+		return -ENOMEM;
-+
-+	memset(iov->iov_base, 0, iov->iov_len);
-+	data = (uint8_t *)iov->iov_base;
-+	
-+	opt_bid = (struct ip6_mh_opt_bid *)data;
-+
-+	opt_bid->ip6mobid_type = IP6_MHOPT_BID;
-+	opt_bid->ip6mobid_len = 4;
-+	opt_bid->ip6mobid_bid = htons(bid);
-+	opt_bid->ip6mobid_priority = priority;
-+	opt_bid->ip6mobid_reserved |= bid_flags;
-+
-+	data += sizeof(struct ip6_mh_opt_bid);
-+	MDBG("BUI sub-option created with BID = %d and priority %d\n", 
-+	     bid, priority);
-+
-+	return 0;
-+}
-+
- static size_t mh_length(struct iovec *vec, int count)
- {
- 	size_t len = 0;
-@@ -487,6 +523,9 @@ static int mh_try_pad(const struct iovec
- 		case IP6_MHOPT_MOB_NET_PRFX:
- 			pad = optpad(8, 4, len); /* 8n+4 */
- 			break;
-+		case IP6_MHOPT_BID:
-+			pad = optpad(2, 0, len); /* 2n */
-+			break;
- 		}
- 		if (pad > 0) {
- 			create_opt_pad(&out[n++], pad);
-@@ -497,9 +536,10 @@ static int mh_try_pad(const struct iovec
- 		out[n].iov_base = in[m].iov_base;
- 		n++;
- 	}
--	if (count == 1) {
-+	if (count == 1 || len%8 != 0) {
- 		pad = optpad(8, 0, len);
- 		create_opt_pad(&out[n++], pad);
-+		MDBG("Added %d bytes for padding\n", pad);
- 	}
- 
- 	return n;
-@@ -984,11 +1024,14 @@ void mh_send_brr(struct in6_addr *mn_add
- 
- void mh_send_ba(const struct in6_addr_bundle *addrs, uint8_t status,
- 		uint8_t flags, uint16_t sequence, 
--		const struct timespec *lifetime, const uint8_t *key, int iif)
-+		const struct timespec *lifetime, 
-+		const uint16_t bid,
-+		const uint8_t priority,
-+		const uint8_t *key, int iif)
- {
- 	int iovlen = 1;
- 	struct ip6_mh_binding_ack *ba;
--	struct iovec mh_vec[2];
-+	struct iovec mh_vec[3];
- 
- 	MDBG("status %d\n", status);
- 
-@@ -1012,6 +1055,9 @@ void mh_send_ba(const struct in6_addr_bu
- 	}
- 	if (key)
- 		mh_create_opt_auth_data(&mh_vec[iovlen++]);
-+	/* MCoA: Create Binding Unique Identifier Option if needed */
-+	if (bid) 
-+		mh_create_opt_bid(&mh_vec[iovlen++], bid, priority, 0);
- 	mh_send(addrs, mh_vec, iovlen, key, iif);
- 	free_iov_data(mh_vec, iovlen);
- }
-@@ -1058,8 +1104,11 @@ int mh_bu_parse(struct ip6_mh_binding_up
- 			return -1;
- 		if (!IN6_ARE_ADDR_EQUAL(out_addrs->bind_coa, peer_addr)) {
- 			/* check that there is no circular reference */
--			if (bce_exists(our_addr, out_addrs->bind_coa))
-+			if (bce_exists(our_addr, out_addrs->bind_coa, 
-+				       MCOA_NO_BID)) {
-+				MDBG("Circular reference found in BC\n");
- 				return -1;
-+			}
- 			tssetsec(*lifetime, ntohs(bu->ip6mhbu_lifetime) << 2);
- 		}
- 	}
-diff -r 82fcd4bea972 src/mh.h
---- a/src/mh.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/mh.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -10,7 +10,7 @@
- 
- /* If new types or options appear, these should be updated. */
- #define IP6_MH_TYPE_MAX IP6_MH_TYPE_BERROR
--#define IP6_MHOPT_MAX IP6_MHOPT_MOB_NET_PRFX
-+#define IP6_MHOPT_MAX IP6_MHOPT_BID
- 
- struct in6_addr_bundle {
- 	struct in6_addr *src;
-@@ -43,14 +43,20 @@ void mh_send_ba(const struct in6_addr_bu
- void mh_send_ba(const struct in6_addr_bundle *addrs, uint8_t status, 
- 		uint8_t flags, uint16_t sequence, 
- 		const struct timespec *lifetime,
-+		const uint16_t bid,
-+		const uint8_t priority,
- 		const uint8_t *key, int iif);
- 
- static inline void mh_send_ba_err(const struct in6_addr_bundle *addrs,
- 				  uint8_t status, uint8_t flags,
--				  uint16_t seqno, const uint8_t *key, int iif)
-+				  uint16_t seqno, 
-+				  const uint16_t bid,
-+				  const uint8_t priority,
-+				  const uint8_t *key, int iif)
- {
- 	struct timespec zero = { 0, 0 };
--	mh_send_ba(addrs, status, flags, seqno, &zero, key, iif);
-+	mh_send_ba(addrs, status, flags, seqno, &zero, 
-+		   bid, priority, key, iif);
- }
- 
- void mh_send_be(struct in6_addr *dst,
-@@ -78,6 +84,9 @@ struct list_head;
- 
- int mh_create_opt_mob_net_prefix(struct iovec *iov, int mnp_count,
- 				 struct list_head *mnps);
-+
-+int mh_create_opt_bid(struct iovec *iov, uint16_t bid, uint8_t priority, 
-+		      uint8_t bid_flags);
- 
- static inline void *mh_opt(const struct ip6_mh *mh,
- 			   const struct mh_options *mh_opts, uint8_t type)
-diff -r 82fcd4bea972 src/mipv6.h
---- a/src/mipv6.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/mipv6.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -23,6 +23,7 @@
- /* Constants below have no explicit names in the spec. */
- 
- #define MAX_BINDING_LIFETIME     (0xffff << 2) /* seconds */  
-+#define MCOA_NO_BID		 0   /* BID is null */
- 
- /* Maximum time for a binding to be unused for CN to still send a BRR
-  * before the binding expires */
-diff -r 82fcd4bea972 src/mn.c
---- a/src/mn.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/mn.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -35,6 +35,8 @@
- #include <errno.h>
- #include <time.h>
- #include <unistd.h> 
-+#include <sys/types.h>
-+#include <signal.h>
- 
- #include <netinet/icmp6.h>
- #include <netinet/ip6mh.h>
-@@ -94,10 +96,44 @@ const struct timespec min_valid_bu_lifet
- const struct timespec min_valid_bu_lifetime_ts =
- { MIN_VALID_BU_LIFETIME, 0 };
- 
-+struct flag_hoa_args {
-+	struct home_addr_info *target;
-+	struct bulentry *bule;
-+	int flag;
-+};
-+
- static int pending_bas = 0;
- 
- static void mn_send_home_bu(struct home_addr_info *hai);
- static int mn_ext_tunnel_ops(int request, int old_if, int new_if, void *data);
-+static int flag_hoa(struct ifaddrmsg *ifa, struct rtattr *rta_tb[], void *arg);
-+static int mcoa_iface_rules_add(int iif, struct home_addr_info *hai);
-+static struct bulentry* mcoa_iface_rules_del(int iif, 
-+			struct home_addr_info *hai,
-+			int replace);
-+static void mcoa_mn_rules_del(struct home_addr_info *hinfo);
-+static int nemo_mr_rules_add(struct home_addr_info *hinfo);
-+static void nemo_mr_rules_del(struct home_addr_info *hinfo);
-+
-+static int mcoa_mn_init_rt_table(struct bulentry *bule)
-+{
-+	/* MCoA TODO2
-+	 * At the moment, the routing table number 
-+	 * is the BID number. BID must be between 
-+	 * BCE_TABLE_MIN and BCE_TABLE_MAX
-+	 */
-+	assert(bule);
-+
-+	/* If BID is not assigned, default table is taken */
-+	if (!bule->bid)
-+		return (bule->table = RT6_TABLE_MIP6);
-+	
-+	if (bule->bid >= BULE_TABLE_MIN && bule->bid <= BULE_TABLE_MAX)
-+		return (bule->table = bule->bid);
-+
-+	MDBG("Routing Table index is out of range");
-+	return -1;
-+}
- 
- static int mn_block_rule_del(struct home_addr_info *hai)
- {
-@@ -108,9 +144,9 @@ static int mn_block_rule_del(struct home
- 		return ret;
- 	}
- 
--	if ((ret = rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_BLOCK, RTN_BLACKHOLE,
--		     &hai->hoa.addr, 128, &in6addr_any, 0,
--		     FIB_RULE_FIND_SADDR)) < 0)
-+	if ((ret = rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_BLOCK, 0, 
-+		     RTN_BLACKHOLE, &hai->hoa.addr, 128, &in6addr_any, 
-+		     0, FIB_RULE_FIND_SADDR)) < 0)
- 		MDBG("failed to delete blackhole rule.\n");
- 	else
- 		hai->home_block &= ~HOME_ADDR_RULE_BLOCK;
-@@ -126,9 +162,9 @@ static int mn_block_rule_add(struct home
- 		MDBG("blackhole is already set.\n");
- 		return ret;
- 	}
--	if ((ret = rule_add(NULL, 0, IP6_RULE_PRIO_MIP6_BLOCK, RTN_BLACKHOLE,
--		     &hai->hoa.addr, 128, &in6addr_any, 0,
--		     FIB_RULE_FIND_SADDR)) < 0)
-+ 	if ((ret = rule_add(NULL, 0, IP6_RULE_PRIO_MIP6_BLOCK, 
-+ 			    0, RTN_BLACKHOLE, &hai->hoa.addr, 128, 
-+ 			    &in6addr_any, 0, FIB_RULE_FIND_SADDR)) < 0)
- 		MDBG("failed to add blackhole rule.\n");
- 	else
- 		hai->home_block |= HOME_ADDR_RULE_BLOCK;
-@@ -156,7 +192,10 @@ static void bule_invalidate(struct bulen
- 	struct home_addr_info *hai = e->home;
- 	struct in6_addr hoa, peer_addr;
- 	int type = e->type;
-+	int rules = e->rules;
-+	int if_coa = e->if_coa;
- 	uint16_t flags = e->flags;
-+	uint16_t bid = e->bid;
- 
- 	if (type != BUL_ENTRY) 
- 		return;
-@@ -173,7 +212,7 @@ static void bule_invalidate(struct bulen
- 	if (hai->at_home)
- 		return;
- 
--	e = create_bule(&hoa, &peer_addr);
-+	e = create_bule(&hoa, &peer_addr, hai->reg_mcoa?bid:0);
- 
- 	if (e == NULL)
- 		return;
-@@ -185,6 +224,19 @@ static void bule_invalidate(struct bulen
- 	e->lifetime = NON_MIP_CN_LTIME_TS;
- 	e->delay = NON_MIP_CN_LTIME_TS;
- 	e->callback = bul_expire;
-+	e->priority = get_prio_from_bid(e->bid);
-+	e->mcoa_dereg = 0;
-+	/* MCoA: No tunnels are linked to this BULE anymore */
-+	e->if_tunnel = 0;
-+	/* MCoA: We prevent MIPL to install rules for this entry */
-+	e->rules = 1;
-+	mcoa_mn_init_rt_table(e);
-+
-+	/* MCoA: Erase rules corresponding to this BULE */
-+	/* TODO2: this should be done when bul is deleted */
-+	if(hai->reg_mcoa && rules)
-+		mcoa_iface_rules_del(if_coa, hai, 1);
-+
- 	if (bul_add(e) < 0)
- 		bul_delete(e);
- }
-@@ -279,7 +331,10 @@ static void mn_recv_param_prob(const str
- 	pthread_rwlock_wrlock(&mn_lock);
- 	if (mn_rr_error_check(laddr, raddr, &addr))
- 		laddr = &addr;
--	e = bul_get(NULL, laddr, raddr);
-+	/* MCoA TODO1
-+	 * All bule with same laddr, raddr should be invalidated
-+	 */
-+	e = bul_get(NULL, laddr, raddr, get_bid_from_ifindex(iif));
- 	if (e != NULL) { 
- 		if (e->flags & IP6_MH_BU_HOME) {
- 			if (!conf.UseMnHaIPsec &&
-@@ -328,6 +383,19 @@ static int mn_send_bu_msg(struct bulentr
- 	}
- 	if (bule->flags & IP6_MH_BU_HOME) {
- 		struct home_addr_info *hai = bule->home;
-+		/* MCoA TODO1: to update according to latest draft
-+		 * Binding Unique Identifier Option 
-+		 * For deregistration, BUI option is sent only 
-+		 * when some specific entry needs to be deleted.
-+		 * If all entries are deleted, no need to send BUI
-+		 */
-+		if ((bu->ip6mhbu_lifetime || !bule->mcoa_dereg)
-+		    && hai->reg_mcoa && bule->bid 
-+		    && mh_create_opt_bid(&iov[iov_ind++], bule->bid, 
-+					 bule->priority, 0) < 0) {
-+			free_iov_data(iov, iov_ind);
-+			return -ENOMEM;				
-+		}
- 		if (bule->flags & IP6_MH_BU_MR && bu->ip6mhbu_lifetime &&
- 		    bule->home->mnp_count > 0 && conf.MobRtrUseExplicitMode &&
- 		    mh_create_opt_mob_net_prefix(&iov[iov_ind++],
-@@ -353,7 +421,29 @@ static int mn_send_bu_msg(struct bulentr
- 	addrs.remote_coa = NULL;
- 	addrs.bind_coa = &bule->coa;
- 
-+	/* MCoA
-+	 * before sending BU, if !bule->rules then
-+	 * add rule from HoA to HA in table bule->table
-+	 * This to be able to send a BU if no rules are in 
-+	 * the RPDB (eg. because of the Reliability option)
-+	 */
-+	if(bule->home->reg_mcoa && !bule->rules)
-+		/* MCoA: Rule for HoA to HA from the MN */
-+		rule_add(NULL, bule->table, 
-+			IP6_RULE_PRIO_MIP6_HOA_OUT_MCOA, 0, RTN_UNICAST, 
-+			&bule->home->hoa.addr, 128, &bule->peer_addr, 128, 
-+			FIB_RULE_FIND_SADDR);
-+
- 	ret = mh_send(&addrs, iov, iov_ind, bind_key, bule->if_coa);
-+	
-+	/* MCoA 
-+	 * Delete the previously installed rule 
-+	 */
-+	if(bule->home->reg_mcoa && !bule->rules)
-+		rule_del(NULL, bule->table, 
-+			IP6_RULE_PRIO_MIP6_HOA_OUT_MCOA, 0, RTN_UNICAST, 
-+			&bule->home->hoa.addr, 128, &bule->peer_addr, 128, 
-+			FIB_RULE_FIND_SADDR); 
- 
- 	if (ret <= 0)
- 		MDBG("mh_send failed  ret: %d\n", ret);
-@@ -363,15 +453,35 @@ static int mn_send_bu_msg(struct bulentr
- 	return ret;
- }
- 
-+struct mn_addr *mcoa_get_current_coa(struct home_addr_info *hai, int iif)
-+{
-+	struct list_head *l;
-+
-+	if(!hai->reg_mcoa)
-+		return hai->current_coa;
-+
-+	list_for_each(l, &hai->mcoa) {
-+		struct mn_addr *coa_entry;
-+		coa_entry = list_entry(l, struct mn_addr, list);
-+		if (coa_entry->iif == iif) 
-+			return coa_entry;
-+	}
-+
-+	return NULL;
-+}
-+
- static int mn_get_home_lifetime(struct home_addr_info *hai,
--				struct timespec *lifetime, int dereg)
-+				struct timespec *lifetime, 
-+				int iif, int dereg)
- {
- 	if (!hai->at_home && !dereg) {
--		struct mn_addr *coa = &hai->primary_coa;
-+		/* MCoA: Pick up the CoA from the correct iface */
-+		struct mn_addr *coa = mcoa_get_current_coa(hai, iif);
- 		struct timespec now;
- 		unsigned long coa_lft;
- 		unsigned long hoa_lft;
- 
-+		assert(coa);
- 		clock_gettime(CLOCK_REALTIME, &now);		
- 
- 		coa_lft = mpd_curr_lft(&now, &coa->timestamp,
-@@ -403,16 +513,20 @@ static int mn_get_ro_lifetime(struct hom
- 	if (!hai->at_home && !dereg) {
- 		struct bulentry *e;
- 
--		e = bul_get(hai, NULL, &hai->ha_addr);
-+		e = bul_get(hai, NULL, &hai->ha_addr, 
-+			    hai->reg_mcoa?
-+			    get_bid_from_ifindex(hai->current_coa->iif)
-+			    :MCOA_NO_BID);
- 
- 		if (e == NULL || !(e->flags & IP6_MH_BU_HOME)) {
- 			MDBG("No valid home registration");
- 		} else {
- 			struct timespec now;
--			struct mn_addr *coa = &hai->primary_coa;
-+			struct mn_addr *coa = hai->current_coa;
- 			unsigned long coa_lft;
- 			unsigned long home_lft;
- 
-+			assert(coa);
- 			clock_gettime(CLOCK_REALTIME, &now);		
- 
- 			coa_lft = mpd_curr_lft(&now, &coa->timestamp,
-@@ -432,6 +546,21 @@ static int mn_get_ro_lifetime(struct hom
- 	return 1;
- }
- 
-+/* MCoA
-+ * Deregister a specific bule
-+ */
-+static int mn_dereg_bule(struct bulentry *bule)
-+{
-+	if (bule->type != NON_MIP_CN_ENTRY) {
-+		bule->seq++;
-+		bule->mcoa_dereg = 0;
-+		tsclear(bule->lifetime);
-+		mn_send_bu_msg(bule);
-+	}
-+	bul_delete(bule);
-+	return 0;
-+}
-+
- static int mn_dereg(void *vbule, void *arg)
- {
- 	struct bulentry *bule = vbule;
-@@ -445,7 +574,20 @@ static int mn_dereg(void *vbule, void *a
- 		}
- 		bule->seq++;
- 		tsclear(bule->lifetime);
--		mn_send_bu_msg(bule);
-+		/* MCoA
-+	 	 * When a MN wants to deregister Multiple CoA,
-+	 	 * one BU is enough to deregister all the CoA
-+		 */
-+		if(bule->home->reg_mcoa && bule->mcoa_dereg) {	
-+			mn_send_bu_msg(bule);
-+			/* MCoA
-+			 * Flag the other entries that match the
-+			 * peer address (to avoid sending multiple
-+			 * BUs)
-+			 */
-+			mcoa_bule_dereg(bule, 0);
-+		} else if (!bule->home->reg_mcoa)
-+			mn_send_bu_msg(bule);
- 	}
- 	bul_delete(bule);
- 	return 0;
-@@ -486,8 +628,9 @@ static int bu_lft_check(struct bulentry 
- 	int dereg;
- 
- 	if (bule->flags & IP6_MH_BU_HOME)
--		dereg = mn_get_home_lifetime(bule->home, &bule->lifetime, 0);
--	else
-+		dereg = mn_get_home_lifetime(bule->home, &bule->lifetime, 
-+					     bule->if_coa, 0);
-+ 	else
- 		dereg = mn_get_ro_lifetime(bule->home, &bule->lifetime,
- 					   bule->dereg);
- 
-@@ -544,6 +687,7 @@ static void bu_refresh(struct tq_elem *t
- 	if (!task_interrupted()) {
- 		struct bulentry *bule = tq_data(tqe, struct bulentry, tqe);
- 		int expired;
-+		int iif = bule->if_coa;
- 		MDBG("Bul refresh type: %d\n", bule->type);
- 
- 		clock_gettime(CLOCK_REALTIME, &bule->lastsent);
-@@ -554,6 +698,10 @@ static void bu_refresh(struct tq_elem *t
- 
- 		bule->seq++;
- 		bule->callback = bu_resend;
-+		/* MCoA : Check for interface reliability */
-+		if(bule->home->reg_mcoa 
-+		   && get_reliable_from_ifindex(iif) == 0)
-+			mcoa_iface_rules_del(iif, bule->home, 1);
- 		pre_bu_bul_update(bule);
- 		mn_send_bu_msg(bule);
- 
-@@ -626,14 +774,53 @@ static int mv_hoa(struct ifaddrmsg *ifa,
- 	return 0;
- }
- 
--int nemo_mr_tnl_routes_add(struct home_addr_info *hai, int ifindex)
-+/*
-+ * Copy home address between two interfaces
-+ */
-+static int cp_hoa(struct ifaddrmsg *ifa, struct rtattr *rta_tb[], void *arg)
-+{
-+	struct mv_hoa_args *mha = arg;
-+	struct home_addr_info *hai = mha->target;
-+	struct mn_addr *hoa = &hai->hoa;
-+	int err;
-+	struct timespec now;
-+	uint32_t preferred = PREFIX_LIFETIME_INFINITE;
-+	uint32_t valid = PREFIX_LIFETIME_INFINITE;
-+	int plen = (mha->if_next == hai->if_tunnel ? 128 : hai->plen);
-+
-+	clock_gettime(CLOCK_REALTIME, &now);
-+
-+	if (hai->lladdr_comp && rta_tb[IFA_CACHEINFO] != NULL) {
-+		struct ifa_cacheinfo *ci = RTA_DATA(rta_tb[IFA_CACHEINFO]);
-+		mn_update_hoa_lifetime(hoa, &now, 
-+				       ci->ifa_valid, ci->ifa_prefered);
-+		valid = ci->ifa_valid;
-+		preferred = ci->ifa_prefered;
-+	}
-+	if (mha->if_next == ifa->ifa_index)
-+		return 0;
-+
-+	MDBG("Copy HoA %x:%x:%x:%x:%x:%x:%x:%x/%d from iface %d to %d\n",
-+	     NIP6ADDR(&hoa->addr), plen, ifa->ifa_index, mha->if_next);
-+
-+	err = addr_add(&hoa->addr, plen,
-+		       ifa->ifa_flags|IFA_F_HOMEADDRESS,
-+		       ifa->ifa_scope, mha->if_next, preferred, valid);
-+	if (err < 0)
-+		return err;
-+
-+	return 0;
-+}
-+
-+int nemo_mr_tnl_routes_add(struct home_addr_info *hai,
-+			   int ifindex, int rtable)
- {
- 	struct list_head *l;
- 	struct prefix_list_entry *pe;
- 	list_for_each(l, &hai->mob_net_prefixes) {
- 		struct prefix_list_entry *p;
- 		p = list_entry(l, struct prefix_list_entry, list);
--		if (route_add(ifindex, RT6_TABLE_MIP6, RTPROT_MIP,
-+ 		if (route_add(ifindex, rtable, RTPROT_MIP,
- 			      0, IP6_RT_PRIO_MIP6_FWD,
- 			      &p->ple_prefix, p->ple_plen,
- 			      &in6addr_any, 0, NULL) < 0) {
-@@ -646,7 +833,7 @@ undo:
- 	list_for_each(l, &hai->mob_net_prefixes) {
- 		struct prefix_list_entry *p;
- 		p = list_entry(l, struct prefix_list_entry, list);
--		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_FWD,
-+ 		route_del(ifindex, rtable, IP6_RT_PRIO_MIP6_FWD, 
- 			  &p->ple_prefix, p->ple_plen, &in6addr_any, 0, NULL);
- 		if (p == pe)
- 			break;
-@@ -654,44 +841,47 @@ undo:
- 	return -1;
- }
- 
--static int mn_tnl_state_add(struct home_addr_info *hai, int ifindex, int all)
-+static int mn_tnl_state_add(struct home_addr_info *hai, 
-+			    int ifindex, int all, int rtable)
- {
- 	int err = 0;
- 	if (hai->home_reg_status != HOME_REG_NONE) {
- 		if ((err = mn_ro_pol_add(hai, ifindex, all)) < 0)
- 			return err;
--		if ((err = route_add(ifindex, RT6_TABLE_MIP6, RTPROT_MIP, 0,
-+		if ((err = route_add(ifindex, rtable, RTPROT_MIP, 0,
- 				     IP6_RT_PRIO_MIP6_OUT, &in6addr_any, 0,
- 				     &in6addr_any, 0, NULL)) < 0) {
- 			mn_ro_pol_del(hai, ifindex, all);
- 		}
- 	}
- 	if (hai->mob_rtr &&
--	    (err = nemo_mr_tnl_routes_add(hai, ifindex)) < 0) {
--		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_OUT,
-+	    (err = nemo_mr_tnl_routes_add(hai, ifindex, rtable)) < 0) {
-+		route_del(ifindex, rtable, IP6_RT_PRIO_MIP6_OUT, 
- 			  &hai->hoa.addr, 128, &in6addr_any, 0, NULL);
- 		mn_ro_pol_del(hai, ifindex, all);
- 	}
- 	return err;
- }
- 
--static void nemo_mr_tnl_routes_del(struct home_addr_info *hai, int ifindex)
-+static void nemo_mr_tnl_routes_del(struct home_addr_info *hai, 
-+				   int ifindex, int rtable)
- {
- 	struct list_head *l;
- 	list_for_each(l, &hai->mob_net_prefixes) {
- 		struct prefix_list_entry *p;
- 		p = list_entry(l, struct prefix_list_entry, list);
--		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_FWD,
-+		route_del(ifindex, rtable, IP6_RT_PRIO_MIP6_FWD, 
- 			  &p->ple_prefix, p->ple_plen, &in6addr_any, 0, NULL);
- 	}
- }
- 
--static void mn_tnl_state_del(struct home_addr_info *hai, int ifindex, int all)
-+static void mn_tnl_state_del(struct home_addr_info *hai, int ifindex, 
-+			     int all, int rtable)
- {
- 	if (hai->home_reg_status != HOME_REG_NONE) {
- 		if (hai->mob_rtr)
--			nemo_mr_tnl_routes_del(hai, ifindex);
--		route_del(ifindex, RT6_TABLE_MIP6, IP6_RT_PRIO_MIP6_OUT, 
-+			nemo_mr_tnl_routes_del(hai, ifindex, rtable);
-+		route_del(ifindex, rtable, IP6_RT_PRIO_MIP6_OUT, 
- 			  &hai->hoa.addr, 128, &in6addr_any, 0, NULL);
- 		mn_ro_pol_del(hai, ifindex, all);
- 	}
-@@ -715,8 +905,18 @@ static void mn_pol_ext_cleanup(struct bu
- static void mn_pol_ext_cleanup(struct bulentry *bule)
- {
- 	MDBG("\n");
--	mpd_cancel_mps(&bule->hoa, &bule->peer_addr);
--	mn_tnl_state_del(bule->home, bule->home->if_tunnel, 0);
-+	/* MCoA
-+	 * MPS is canceled only if the BULE is the last entry 
-+	 * for the HoA, or when at home
-+	 */
-+	if (mcoa_bule_count(bule) == 0 || bule->home->at_home)
-+		mpd_cancel_mps(&bule->hoa, &bule->peer_addr);
-+	if (bule->home->reg_mcoa)
-+		mn_tnl_state_del(bule->home, bule->if_tunnel, 0, 
-+				 bule->table);
-+	else
-+		mn_tnl_state_del(bule->home, bule->home->if_tunnel, 
-+				 0, bule->table);
- 
- 	if (conf.UseMnHaIPsec) {
- 		mn_ipsec_tnl_update(&bule->peer_addr, &bule->hoa, bule);
-@@ -730,12 +930,13 @@ static int process_first_home_bu(struct 
- 				 struct timespec *lifetime)
- {
- 	int err = 0;
-+	assert(hai->current_coa);
- 	bule->type = BUL_ENTRY;
- 	bule->flags = (IP6_MH_BU_HOME | IP6_MH_BU_ACK |
- 		       hai->lladdr_comp | hai->mob_rtr);
- 	bule->coa_changed = -1;
--	bule->coa = hai->primary_coa.addr;
--	bule->if_coa = hai->primary_coa.iif;
-+	bule->coa = hai->current_coa->addr;
-+	bule->if_coa = hai->current_coa->iif;
- 	bule->lifetime = *lifetime;
- 	bule->delay = conf.InitialBindackTimeoutFirstReg_ts;
- 	bule->callback = bu_resend;
-@@ -744,10 +945,47 @@ static int process_first_home_bu(struct 
- 	bule->ext_cleanup = mn_pol_ext_cleanup;
- 	bule->home = hai;
- 	bule->consecutive_resends = 0;
-+	bule->priority = get_prio_from_bid(bule->bid);
- 
- 	hai->home_reg_status = HOME_REG_UNCERTAIN;
- 
--	if ((err = mn_tnl_state_add(hai, hai->if_tunnel, 0)) < 0)
-+	/* MCoA: MCoA requires one tunnel per CoA. Need to create a new one */
-+	if (bule->if_tunnel == 0 
-+	    && hai->reg_mcoa 
-+	    && get_bid_from_ifindex(hai->current_coa->iif)) {
-+		MDBG("Creating new tunnel for iface %d (BID %d)\n", 
-+			hai->current_coa->iif, 
-+			get_bid_from_ifindex(hai->current_coa->iif)); 
-+		bule->if_tunnel = tunnel_add(&hai->hoa.addr, 
-+					&hai->ha_addr,
-+					hai->current_coa->iif, 
-+					NULL, NULL);
-+		if (bule->if_tunnel <= 0) {
-+			MDBG("Failed to create MN-HA tunnel\n"); 
-+			return -1;
-+		} else {
-+			MDBG("MN-HA tunnel created (iface tnl = %d)\n", 
-+				bule->if_tunnel);
-+			struct flag_hoa_args arg;
-+			arg.target = hai;
-+			arg.flag = 1;
-+			arg.bule = bule;
-+			if (addr_do(&hai->hoa.addr, 128,
-+				    bule->if_tunnel, &arg, 
-+				    flag_hoa) < 0) {
-+				MDBG("addr_do failed for tunnel %d\n", 
-+					bule->if_tunnel);
-+				return -1;
-+			}
-+		}
-+	} else if (bule->if_tunnel == 0)
-+		/* MCoA
-+		 * If MCoA is not used, then initialise the tunnel 
-+		 * number to the one in hai
-+		 */
-+		bule->if_tunnel = hai->if_tunnel;
-+		
-+	if ((err = mn_tnl_state_add(hai, bule->if_tunnel, 0, bule->table)) < 0)
- 		MDBG("Failed to initialize new bule for HA\n");
- 	else
- 		MDBG("New bule for HA\n");
-@@ -781,14 +1019,18 @@ static void mn_send_home_bu(struct home_
- 	movement_t type_movement = MIP6_TYPE_MOVEMENT_UNKNOWN;
- 
- 	TRACE;
-+	assert(hai->current_coa);
- 
- 	if (IN6_IS_ADDR_UNSPECIFIED(&hai->ha_addr)) {
- 		MDBG("HA not set for home link\n");
- 		return;
- 	}
--	mn_get_home_lifetime(hai, &lifetime, 0);
-+	mn_get_home_lifetime(hai, &lifetime, hai->current_coa->iif, 0);
- 
--	if ((bule = bul_get(hai, NULL, &hai->ha_addr)) == NULL) {
-+	if ((bule = bul_get(hai, NULL, &hai->ha_addr, 
-+			hai->reg_mcoa?
-+			get_bid_from_ifindex(hai->current_coa->iif)
-+			:MCOA_NO_BID)) == NULL) {
- 		assert(!hai->at_home);
- 		/* Create new bul entry for HA */
- 		if (!tsisset(lifetime)) {
-@@ -807,14 +1049,22 @@ static void mn_send_home_bu(struct home_
- 				mn_change_ha(hai);
- 			return;
- 		}
--		bule = create_bule(&hai->hoa.addr, &hai->ha_addr);
-+		bule = create_bule(&hai->hoa.addr, &hai->ha_addr,
-+				hai->reg_mcoa?
-+				get_bid_from_ifindex(hai->current_coa->iif)
-+				:MCOA_NO_BID);
- 		if (bule == NULL)
- 			return;
--		if (process_first_home_bu(bule, hai, &lifetime) < 0 ||
-+		if (mcoa_mn_init_rt_table(bule) < 0 ||
-+		    process_first_home_bu(bule, hai, &lifetime) < 0 ||
- 		    bul_add(bule) < 0) {
- 			bul_delete(bule);
- 			return;
- 		}
-+		/* MCoA: Check for interface reliability */
-+		if(get_reliable_from_ifindex(bule->if_coa) > 0)
-+			/* MCoA: Add the rules */
-+			mcoa_iface_rules_add(hai->current_coa->iif, hai);
- 		type_movement = MIP6_TYPE_MOVEMENT_HL2FL;
- 		MDBG("New bule for HA\n");
- 	} else if (bule->type == BUL_ENTRY) {
-@@ -829,8 +1079,8 @@ static void mn_send_home_bu(struct home_
- 			}
- 			type_movement = MIP6_TYPE_MOVEMENT_HL2FL;
- 		} else {
--			bule->coa = hai->primary_coa.addr;
--			bule->if_coa = hai->primary_coa.iif;
-+			bule->coa = hai->current_coa->addr;
-+			bule->if_coa = hai->current_coa->iif;
- 
- 			/* Rate limiting home registration binding updates
- 			   is necessary for multihomed MNs */
-@@ -850,6 +1100,10 @@ static void mn_send_home_bu(struct home_
- 			bule->callback = bu_resend;
- 		}
- 		bule->seq++;
-+		/* MCoA: Check for interface reliability */
-+		if(bule->home->reg_mcoa 
-+		   && get_reliable_from_ifindex(bule->if_coa) == 0)
-+			mcoa_iface_rules_del(bule->if_coa, bule->home, 1); 
- 		pre_bu_bul_update(bule);
- 		MDBG("Bule for HA exists. Updating it.\n");
- 	} else {
-@@ -885,10 +1139,13 @@ static void mn_send_home_bu(struct home_
- 					    &bule->hoa, bule);
- 		}
-         }
-+	/* MCoA: Update the current routing table */
-+	hai->table = bule->table;
- 	/* Before bul_iterate, tunnel modification should be done. */
--	tunnel_mod(hai->if_tunnel, &hai->primary_coa.addr, &hai->ha_addr,
--		   hai->primary_coa.iif, mn_ext_tunnel_ops, hai);
--		
-+	bule->if_tunnel = tunnel_mod(bule->if_tunnel, &hai->current_coa->addr, 
-+				     &hai->ha_addr, hai->current_coa->iif, 
-+				     mn_ext_tunnel_ops, hai);
-+	hai->if_tunnel = bule->if_tunnel;		
- 	bule->last_coa = bule->coa;
- 	bule->coa_changed = 0;
- 
-@@ -1017,14 +1274,87 @@ static int mn_chk_bauth(struct ip6_mh_bi
- 	return -1;
- }
- 
-+static int mn_disable_mcoa(struct bulentry *bule)
-+{
-+/*
-+	struct bulentry *bule_del;
-+	struct home_addr_info *hai;
-+	struct flag_hoa_args arg;
-+	struct list_head *l, *tmp;
-+	struct net_iface *best_iface = NULL;
-+*/
-+
-+	/* MCoA TODO1: At the moment we simply exit */
-+	MDBG("HA does not accept MCoA registration. Check "\
-+	     "your HA or change your MR configuration\n");
-+	kill(0, SIGINT);
-+	return 0;
-+
-+/*
-+	assert(bule);
-+	hai = bule->home;
-+	mcoa_mn_rules_del(hai);
-+        while((bule_del = bul_get(hai, NULL, 
-+				&bule->peer_addr, MCOA_NO_BID)))
-+		bul_delete(bule_del);
-+	
-+	hai->if_tunnel = tunnel_add(&hai->hoa.addr, &hai->ha_addr,
-+				    hai->if_home, NULL, NULL);
-+	if (hai->if_tunnel <= 0) {
-+		MDBG("failed to create MN-HA tunnel\n"); 
-+		goto clean_err;
-+	}
-+
-+	arg.target = hai;
-+	arg.flag = 1;
-+	if (addr_do(&hai->hoa.addr, 128, hai->if_tunnel, 
-+		    &arg, flag_hoa) < 0)
-+		goto clean_err;
-+
-+	nemo_mr_rules_del(hai);
-+	hai->reg_mcoa = 0;
-+	nemo_mr_rules_add(hai);
-+	if (rule_add(NULL, RT6_TABLE_MIP6, IP6_RULE_PRIO_MIP6_HOA_OUT, 0, 
-+			RTN_UNICAST, &hai->hoa.addr, 
-+			128, &in6addr_any, 0, FIB_RULE_FIND_SADDR) < 0)
-+		goto clean_err;
-+
-+	list_for_each(l, &conf.net_ifaces) {
-+		struct net_iface *iface = NULL;
-+		iface = list_entry(l, struct net_iface, list);
-+		if (!best_iface 
-+		    || iface->mn_if_bidprio > best_iface->mn_if_bidprio)
-+			best_iface = iface;
-+	}
-+	list_for_each_safe(l, tmp, &conf.net_ifaces) {
-+		struct net_iface *iface = NULL;
-+		iface = list_entry(l, struct net_iface, list);
-+		if (iface != best_iface) {
-+			MDBG("Deleting iface %d\n", iface->ifindex);
-+			list_del(l);
-+		}
-+	}
-+	return 1;
-+	
-+clean_err:
-+	rule_del(NULL, RT6_TABLE_MIP6, 
-+		IP6_RULE_PRIO_MIP6_HOA_OUT, 0, RTN_UNICAST, 
-+		&hai->hoa.addr, 128, &in6addr_any, 0, FIB_RULE_FIND_SADDR);
-+	tunnel_del(hai->if_tunnel, NULL, NULL);
-+
-+	return 0;
-+*/
-+}
-+
- static void mn_recv_ba(const struct ip6_mh *mh, ssize_t len,
- 		       const struct in6_addr_bundle *in, int iif)
- {
- 	struct ip6_mh_binding_ack *ba;
-+	struct ip6_mh_opt_bid *bui;
- 	struct mh_options mh_opts;
- 	struct bulentry *bule;
- 	struct timespec now, ba_lifetime, br_adv;
--	uint16_t seqno;
-+	uint16_t seqno, bid;
- 
- 	TRACE;
- 
-@@ -1036,25 +1366,32 @@ static void mn_recv_ba(const struct ip6_
- 	ba = (struct ip6_mh_binding_ack *)mh;
- 
- 	pthread_rwlock_wrlock(&mn_lock);
--	bule = bul_get(NULL, in->dst, in->src);
-+
-+	/* MCoA: Lookup in BA options for the BUI sub-option and the BID */
-+	bui = mh_opt(&ba->ip6mhba_hdr, &mh_opts, IP6_MHOPT_BID);
-+	bid = bui ? ntohs(bui->ip6mobid_bid) : MCOA_NO_BID;
-+	
-+	bule = bul_get(NULL, in->dst, in->src, bid);
- 	if (!bule || bule->type != BUL_ENTRY) {
- 		MDBG("Got BA without corresponding BUL entry "
- 		     "from %x:%x:%x:%x:%x:%x:%x:%x "
- 		     "to home address %x:%x:%x:%x:%x:%x:%x:%x "
--		     "with coa %x:%x:%x:%x:%x:%x:%x:%x\n",
-+		     "with coa %x:%x:%x:%x:%x:%x:%x:%x"
-+		     "and bid %d\n",
- 		     NIP6ADDR(in->src),  
- 		     NIP6ADDR(in->dst),
- 		     NIP6ADDR(in->local_coa != NULL ? 
--			      in->local_coa : &in6addr_any));
-+			      in->local_coa : &in6addr_any),
-+		     bid);
- 		pthread_rwlock_unlock(&mn_lock);
- 		return;
- 	}
- 	dbg("Got BA from %x:%x:%x:%x:%x:%x:%x:%x "
- 	    "to home address %x:%x:%x:%x:%x:%x:%x:%x "
--	    "with coa %x:%x:%x:%x:%x:%x:%x:%x and status %d\n",
-+	    "with coa %x:%x:%x:%x:%x:%x:%x:%x, bid %d and status %d\n",
- 	    NIP6ADDR(in->src), NIP6ADDR(in->dst),
- 	    NIP6ADDR(in->local_coa != NULL ? in->local_coa : &in6addr_any),
--	    ba->ip6mhba_status);
-+	    bid, ba->ip6mhba_status);
- 	dbg("Dumping corresponding BULE\n");
- 	dbg_func(bule, dump_bule);
- 	/* First check authenticator */
-@@ -1076,6 +1413,17 @@ static void mn_recv_ba(const struct ip6_
- 			return;
- 		}
- 	}
-+	/* MCoA: Check if BID matches */
-+	if (bule->bid && !bui) {
-+		/* The BACK did not have any BID suboption whereas 
-+		 * we sent a BU with a BID option. MCoA is disabled 
-+		 * on the node.
-+		 */
-+		MDBG("Got BA with no BID option, disabling MCoA registration.\n");
-+		mn_disable_mcoa(bule);
-+		pthread_rwlock_unlock(&mn_lock);
-+		return;
-+	}
- 	bule->do_send_bu = 0;
- 	bule->consecutive_resends = 0;
- 	clock_gettime(CLOCK_REALTIME, &now);
-@@ -1086,11 +1434,18 @@ static void mn_recv_ba(const struct ip6_
- 			bule->seq = seqno + 1;
- 			if (bule->flags & IP6_MH_BU_HOME)
- 				mn_get_home_lifetime(bule->home,
--						     &bule->lifetime, 0);
-+						     &bule->lifetime, 
-+						     bule->if_coa,
-+						     0);
- 			else
- 				mn_get_ro_lifetime(bule->home,
- 						   &bule->lifetime, 0);
- 			bule->callback = bu_resend;
-+			/* MCoA: Check for interface reliability */
-+			if(bule->home->reg_mcoa 
-+		   	   && get_reliable_from_ifindex(bule->if_coa) == 0)
-+				mcoa_iface_rules_del(bule->if_coa, 
-+						     bule->home, 1);
- 			pre_bu_bul_update(bule);
- 			mn_send_bu_msg(bule);
- 			bule->delay = conf.InitialBindackTimeoutReReg_ts;
-@@ -1137,6 +1492,10 @@ static void mn_recv_ba(const struct ip6_
- 	tssetsec(ba_lifetime, ntohs(ba->ip6mhba_lifetime) << 2);
- 	br_adv = ba_lifetime;
- 	tsadd(bule->lastsent, ba_lifetime, bule->hard_expire);
-+	/* MCoA: Check for interface reliability */
-+	if(bule->home->reg_mcoa 
-+	   && get_reliable_from_ifindex(bule->if_coa) == 0)
-+		mcoa_iface_rules_add(bule->if_coa, bule->home); 
- 	if (!(bule->flags & IP6_MH_BU_HOME) || !conf.OptimisticHandoff)
- 		post_ba_bul_update(bule);
- 	if (bule->flags & IP6_MH_BU_HOME) {
-@@ -1266,11 +1625,6 @@ struct home_addr_info *mn_get_home_addr_
- 	return NULL;
- }
- 
--struct flag_hoa_args {
--	struct home_addr_info *target;
--	int flag;
--};
--
- static int flag_hoa(struct ifaddrmsg *ifa, struct rtattr *rta_tb[], void *arg)
- {
- 	/*
-@@ -1279,13 +1633,18 @@ static int flag_hoa(struct ifaddrmsg *if
- 
- 	struct flag_hoa_args *fhoa = arg;
- 	struct home_addr_info *hai = fhoa->target;
-+	struct bulentry *bule = fhoa->bule;
- 	struct mn_addr *hoa = &hai->hoa;
- 	struct in6_addr *addr = RTA_DATA(rta_tb[IFA_ADDRESS]);
- 	struct timespec now;
- 	uint32_t preferred;
- 	uint32_t valid;
--	int err;
--	int plen = (ifa->ifa_index == hai->if_tunnel ? 128 : hai->plen);
-+	int err, plen;
-+
-+	if (hai->reg_mcoa && bule != NULL)
-+		plen = (ifa->ifa_index == bule->if_tunnel ? 128 : hai->plen);
-+	else
-+		plen = (ifa->ifa_index == hai->if_tunnel ? 128 : hai->plen);
- 
- 	clock_gettime(CLOCK_REALTIME, &now);
- 
-@@ -1321,6 +1680,220 @@ static int flag_hoa(struct ifaddrmsg *if
- 	return 0;
- }
- 
-+static int mcoa_iface_dflt_hoa_rule_del(struct bulentry *bule, 
-+	 				struct bulentry *best_bule,
-+					struct home_addr_info *hai,
-+					int replace)
-+{
-+	/* MCoA: Delete the default HoA rule */
-+	rule_del(NULL, bule->bid, IP6_RULE_PRIO_MIP6_HOA_OUT, 
-+		0, RTN_UNICAST, &hai->hoa.addr, 128,
-+		&in6addr_any, 0, FIB_RULE_FIND_SADDR);
-+	
-+	/* MCoA
-+	 * Do not replace the default rules 
-+	 * if there are no other best bule 
-+ 	 */
-+	if(best_bule && best_bule != bule && replace) {
-+		if (rule_add(NULL, best_bule->bid, 
-+			IP6_RULE_PRIO_MIP6_HOA_OUT, 0, RTN_UNICAST, 
-+			&hai->hoa.addr, 128, &in6addr_any, 0, 
-+			FIB_RULE_FIND_SADDR) < 0)
-+		return -1;
-+	}
-+	return 0;
-+}
-+
-+static void mcoa_iface_dflt_mnp_rules_del(struct bulentry *bule, 
-+					  struct bulentry *best_bule,
-+					  struct home_addr_info *hai,
-+					  struct prefix_list_entry *p,
-+					  int replace)
-+{
-+	/* MCoA: Delete the default MNP rule */
-+	rule_del(NULL, bule->bid, IP6_RULE_PRIO_MIP6_FWD_MCOA, 
-+		0, RTN_UNICAST, &p->ple_prefix, p->ple_plen, 
-+		&in6addr_any, 0, 0);
-+
-+	/* MCoA
-+	 * Do not replace the default rules 
-+	 * if there are no other best bule 
-+	 */
-+	if(best_bule && best_bule != bule && replace) {
-+		rule_add(NULL, best_bule->bid, 
-+			IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, RTN_UNICAST, 
-+			&p->ple_prefix, p->ple_plen, &in6addr_any, 0, 0);
-+	}
-+}
-+ 
-+static struct bulentry* mcoa_iface_rules_del(int iif, 
-+					     struct home_addr_info *hai,
-+					     int replace)
-+{
-+	uint16_t bid = hai->reg_mcoa?get_bid_from_ifindex(iif):MCOA_NO_BID;
-+	uint8_t prio_tmp = 0;
-+	struct bulentry *bule, *best_bule = NULL;
-+	struct list_head *l;
-+	int delete_dflt_mnp = 0;
-+
-+	bule = bul_get(hai,  NULL, &hai->ha_addr, bid);
-+	if (!hai->reg_mcoa || (bule && !bule->rules))
-+		return NULL;
-+
-+	/* MCoA: Delete rule for HoA traffic from the MN */
-+	rule_del(NULL, bid, IP6_RULE_PRIO_MIP6_HOA_OUT_MCOA, 
-+		/* fwmark */ bid, RTN_UNICAST,
-+	     	&hai->hoa.addr, 128, &in6addr_any, 0, 
-+		FIB_RULE_FIND_SADDR);
-+
-+	bul_iterate_in(&hai->ha_addr, bul_highest_priority, 
-+			&best_bule);
-+	if(bule && best_bule == bule) {
-+		delete_dflt_mnp = 1;
-+		/* MCoA: search for the next best BULE */
-+		prio_tmp = bule->priority;
-+		bule->priority = 0;
-+		bul_iterate_in(&hai->ha_addr, 
-+				bul_highest_priority, &best_bule);
-+		bule->priority = prio_tmp;
-+		/* MCoA: delete the default HoA rule */
-+		mcoa_iface_dflt_hoa_rule_del(bule, best_bule, hai, replace);
-+	} 
-+
-+	list_for_each(l, &hai->mob_net_prefixes) {
-+		struct prefix_list_entry *p = NULL;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		/* MCoA: Delete MNP rule */
-+		rule_del(NULL, bid, IP6_RULE_PRIO_MIP6_FWD_FWM, 
-+			/*fwmark*/ bid, RTN_UNICAST, &p->ple_prefix, 
-+			p->ple_plen, &in6addr_any, 0, 0);
-+		if(delete_dflt_mnp) {
-+			/* MCoA: Delete default MNP rule */
-+			mcoa_iface_dflt_mnp_rules_del(bule, best_bule, 
-+						hai, p, replace);
-+		}
-+ 	}
-+	
-+	if (bule) {
-+		bule->rules = 0;
-+		MDBG("MNP and HoA rules deleted for iface %d bid %d\n", 
-+			iif, bule->bid);
-+	}
-+	
-+	return bule;
-+}
-+ 
-+static void mcoa_mn_rules_del(struct home_addr_info *hinfo)
-+{
-+	struct list_head *l;
-+ 
-+	list_for_each(l, &hinfo->mcoa) {
-+		struct mn_addr *iface = NULL;
-+		iface = list_entry(l, struct mn_addr, list);
-+		mcoa_iface_rules_del(iface->iif, hinfo, 0);
-+	}
-+	rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_HOA_OUT, 
-+		0, RTN_UNICAST, &hinfo->hoa.addr, 128, 
-+		&in6addr_any, 0, FIB_RULE_FIND_SADDR);
-+	if (hinfo->at_home && hinfo->reg_mcoa) {
-+		list_for_each(l, &hinfo->mob_net_prefixes) {
-+			struct prefix_list_entry *p = NULL;
-+			p = list_entry(l, struct prefix_list_entry, 
-+					list);
-+			rule_del(NULL, RT6_TABLE_MIP6,
-+				IP6_RULE_PRIO_MIP6_FWD, 0, 
-+				RTN_UNICAST, &p->ple_prefix, 
-+				p->ple_plen, &in6addr_any, 0, 0);
-+		}
-+	}
-+}
-+	
-+static int mcoa_iface_rules_add(int iif, struct home_addr_info *hai)
-+{
-+	uint16_t bid = hai->reg_mcoa?get_bid_from_ifindex(iif):MCOA_NO_BID;
-+	struct bulentry *bule, *best_bule = NULL;
-+	struct prefix_list_entry *pe = NULL;
-+	struct list_head *l;
-+	uint8_t prio;
-+ 
-+	bule = bul_get(hai, NULL, &hai->ha_addr, bid);
-+	if (!bid || !hai->reg_mcoa || !bule || (bule && bule->rules))
-+		return 0;
-+
-+	prio = get_prio_from_bid(bid);
-+	
-+	/* MCoA: Rule for HoA traffic from the MN */
-+	if (rule_add(NULL, bid, IP6_RULE_PRIO_MIP6_HOA_OUT_MCOA, 
-+			/* fwmark */ bid, RTN_UNICAST,
-+	 		&hai->hoa.addr, 128, &in6addr_any, 0, 
-+			FIB_RULE_FIND_SADDR) < 0)
-+		goto undo;
-+	
-+	bul_iterate_in(&hai->ha_addr, bul_highest_priority, 
-+			&best_bule);
-+	
-+	if (!best_bule || prio >= best_bule->priority) { 
-+		rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_HOA_OUT, 
-+				0, RTN_UNICAST, &hai->hoa.addr, 128, 
-+				&in6addr_any, 0, FIB_RULE_FIND_SADDR);
-+		if (rule_add(NULL, bid, IP6_RULE_PRIO_MIP6_HOA_OUT, 
-+				0, RTN_UNICAST, &hai->hoa.addr, 128, 
-+				&in6addr_any, 0, FIB_RULE_FIND_SADDR) < 0)
-+			goto undo;
-+	}
-+
-+	/* MCoA: Rule for forwarded traffic from the NEMO */
-+	list_for_each(l, &hai->mob_net_prefixes) {
-+		struct prefix_list_entry *p = NULL;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		if (rule_add(NULL, bid, IP6_RULE_PRIO_MIP6_FWD_FWM, 
-+				/*fwmark*/ bid, RTN_UNICAST, 
-+				&p->ple_prefix, p->ple_plen, 
-+				&in6addr_any, 0, 0) < 0) {
-+			pe = p;
-+			goto undo;
-+		}
-+		/* MCoA
-+		 * Add default rules if the bule has the highest 
-+		 * priority
-+ 	 	 */
-+		if (!best_bule || prio >= best_bule->priority) { 
-+			rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_FWD_MCOA, 
-+				0, RTN_UNICAST, &p->ple_prefix, p->ple_plen, 
-+				&in6addr_any, 0, 0);
-+			if (rule_add(NULL, bid, IP6_RULE_PRIO_MIP6_FWD_MCOA, 
-+				0, RTN_UNICAST, &p->ple_prefix, p->ple_plen, 
-+				&in6addr_any, 0, 0) < 0)
-+				goto undo;
-+		}
-+	}
-+	
-+	bule->rules = 1;
-+	MDBG("MNP and HoA Rules added for interface %d.\n", iif);
-+ 	return 0;
-+
-+undo:
-+	rule_del(NULL, bid, IP6_RULE_PRIO_MIP6_HOA_OUT_MCOA, 
-+		/* fwmark */ bid, RTN_UNICAST,
-+		&hai->hoa.addr, 128, &in6addr_any, 0, 
-+		FIB_RULE_FIND_SADDR);
-+
-+	rule_del(NULL, bid, IP6_RULE_PRIO_MIP6_HOA_OUT, 
-+		0, RTN_UNICAST, &hai->hoa.addr, 128, 
-+		&in6addr_any, 0, FIB_RULE_FIND_SADDR);
-+		
-+	list_for_each(l, &hai->mob_net_prefixes) {
-+		struct prefix_list_entry *p = NULL;
-+		p = list_entry(l, struct prefix_list_entry, list);
-+		rule_del(NULL, bid, IP6_RULE_PRIO_MIP6_FWD_FWM, 
-+			/*fwmark*/ bid, RTN_UNICAST, &p->ple_prefix, 
-+			p->ple_plen, &in6addr_any, 0, 0);
-+		if (p == pe)
-+			break;
-+	}
-+	return -1;
-+}
-+
- static void nemo_mr_rules_del(struct home_addr_info *hinfo)
- {
- 	struct list_head *l;
-@@ -1328,11 +1901,17 @@ static void nemo_mr_rules_del(struct hom
- 	list_for_each(l, &hinfo->mob_net_prefixes) {
- 		struct prefix_list_entry *p = NULL;
- 		p = list_entry(l, struct prefix_list_entry, list);
--		rule_del(NULL, RT6_TABLE_MIP6,
--			 IP6_RULE_PRIO_MIP6_FWD, RTN_UNICAST,
--			 &p->ple_prefix, p->ple_plen, &in6addr_any, 0, 0);
-+		if (hinfo->reg_mcoa) {
-+			rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_FWD_MCOA, 0, 
-+				RTN_UNICAST, &p->ple_prefix, p->ple_plen, 
-+				&in6addr_any, 0, 0);
-+		} else
-+			rule_del(NULL, RT6_TABLE_MIP6,
-+				IP6_RULE_PRIO_MIP6_FWD, 0, RTN_UNICAST,
-+			 	&p->ple_prefix, p->ple_plen, &in6addr_any, 
-+				0, 0);
- 		rule_del(NULL, RT6_TABLE_MAIN,
--			 IP6_RULE_PRIO_MIP6_MNP_IN, RTN_UNICAST,
-+			 IP6_RULE_PRIO_MIP6_MNP_IN, 0, RTN_UNICAST,
- 			 &in6addr_any, 0, &p->ple_prefix, p->ple_plen, 0);
- 	}
- }
-@@ -1346,19 +1925,21 @@ static int nemo_mr_rules_add(struct home
- 		struct prefix_list_entry *p = NULL;
- 		p = list_entry(l, struct prefix_list_entry, list);
- 		if (rule_add(NULL, RT6_TABLE_MAIN,
--			     IP6_RULE_PRIO_MIP6_MNP_IN, RTN_UNICAST,
-+			     IP6_RULE_PRIO_MIP6_MNP_IN, 0, RTN_UNICAST,
- 			     &in6addr_any, 0,
- 			     &p->ple_prefix, p->ple_plen, 0) < 0) {
- 			pe = p;
- 			goto undo;
- 		}
--		if (rule_add(NULL, RT6_TABLE_MIP6,
--			     IP6_RULE_PRIO_MIP6_FWD, RTN_UNICAST,
--			     &p->ple_prefix, p->ple_plen,
--			     &in6addr_any, 0, 0) < 0) {
-+		if (!hinfo->reg_mcoa 
-+		    && rule_add(NULL, RT6_TABLE_MIP6,
-+			     	IP6_RULE_PRIO_MIP6_FWD, 0, RTN_UNICAST,
-+			     	&p->ple_prefix, p->ple_plen, 
-+			     	&in6addr_any, 0, 0) < 0) {
- 			rule_del(NULL, RT6_TABLE_MAIN,
--				 IP6_RULE_PRIO_MIP6_MNP_IN, RTN_UNICAST,
--				 &in6addr_any, 0, &p->ple_prefix, p->ple_plen, 0);
-+				 IP6_RULE_PRIO_MIP6_MNP_IN, 0, 
-+				 RTN_UNICAST, &in6addr_any, 0, 
-+				 &p->ple_prefix, p->ple_plen, 0);
- 			pe = p;
- 			goto undo;
- 		}
-@@ -1368,17 +1949,25 @@ undo:
- 	list_for_each(l, &hinfo->mob_net_prefixes) {
- 		struct prefix_list_entry *p = NULL;
- 		p = list_entry(l, struct prefix_list_entry, list);
--		rule_del(NULL, RT6_TABLE_MIP6,
--			 IP6_RULE_PRIO_MIP6_FWD,  RTN_UNICAST,
--			 &p->ple_prefix, p->ple_plen, &in6addr_any, 0, 0);
-+		if (!hinfo->reg_mcoa) {
-+			rule_del(NULL, RT6_TABLE_MIP6,
-+				IP6_RULE_PRIO_MIP6_FWD, 0, RTN_UNICAST,
-+				&p->ple_prefix, p->ple_plen, 
-+				&in6addr_any, 0, 0);
-+		}
- 		rule_del(NULL, RT6_TABLE_MAIN,
--			 IP6_RULE_PRIO_MIP6_MNP_IN, RTN_UNICAST,
-+			 IP6_RULE_PRIO_MIP6_MNP_IN, 0, RTN_UNICAST,
- 			 &in6addr_any, 0, &p->ple_prefix, p->ple_plen, 0);
- 		if (p == pe)
- 			break;
- 	}
- 	return -1;
- }
-+
-+struct mcoa_tnl_id {
-+	struct list_head list;
-+	int tnl_id;
-+};
- 
- static void clean_home_addr_info(struct home_addr_info *hai)
- {
-@@ -1390,17 +1979,24 @@ static void clean_home_addr_info(struct 
- 		nemo_mr_rules_del(hai);
- 	arg.target = hai;
- 	arg.flag = 0;
--	addr_do(&hai->hoa.addr, plen,
--		hai->hoa.iif, &arg, flag_hoa);
-+	/* MCoA: Flag HoA on the tunnel iface is not necessary here */
-+	if (!hai->reg_mcoa)
-+		addr_do(&hai->hoa.addr, plen,
-+			hai->hoa.iif, &arg, flag_hoa);
- 	bul_iterate(&hai->bul, mn_dereg, NULL);
--	bul_home_cleanup(&hai->bul);
--
-+	/* MCoA: Delete all mn rules */
-+	if (hai->reg_mcoa)
-+		mcoa_mn_rules_del(hai);
- 	mn_block_rule_del(hai);
- 
--	rule_del(NULL, RT6_TABLE_MIP6,
--		 IP6_RULE_PRIO_MIP6_HOA_OUT, RTN_UNICAST,
--		 &hai->hoa.addr, 128, &in6addr_any, 0, FIB_RULE_FIND_SADDR);
--	tunnel_del(hai->if_tunnel, NULL, NULL);
-+	if (!hai->reg_mcoa) {	
-+		rule_del(NULL, RT6_TABLE_MIP6,
-+			 IP6_RULE_PRIO_MIP6_HOA_OUT, 0, RTN_UNICAST,
-+			 &hai->hoa.addr, 128, &in6addr_any, 0, 
-+			 FIB_RULE_FIND_SADDR);
-+		tunnel_del(hai->if_tunnel, NULL, NULL);
-+	}
-+	bul_home_cleanup(&hai->bul);
- 	dhaad_stop(hai);
- 	free(hai);
- }	
-@@ -1448,6 +2044,11 @@ static struct home_addr_info *hai_copy(s
- 				     &hai->mob_net_prefixes) < 0)
- 			goto mutex_undo;
- 
-+		INIT_LIST_HEAD(&hai->mcoa);
-+		if (hai->reg_mcoa && 
-+		    prefix_list_copy(&conf_hai->mcoa, &hai->mcoa) < 0)
-+			goto mutex_undo;
-+
- 		INIT_LIST_HEAD(&hai->ro_policies);
- 		if (rpl_copy(&conf_hai->ro_policies, &hai->ro_policies) < 0)
- 			goto mnp_undo;
-@@ -1493,17 +2094,22 @@ static int conf_home_addr_info(struct ho
- 		MDBG("HA address %x:%x:%x:%x:%x:%x:%x:%x\n", 
- 		     NIP6ADDR(&hai->ha_addr)); 
- 	}
--	hai->if_tunnel = tunnel_add(&hai->hoa.addr, &hai->ha_addr,
--				    hai->if_home, NULL, NULL);
-+	/* MCoA: tunnel is created only if MCoA registration is not used */
-+	if(!hai->reg_mcoa) {
-+		hai->if_tunnel = tunnel_add(&hai->hoa.addr, 
-+					&hai->ha_addr,
-+					hai->if_home, NULL, NULL);
- 
--	if (hai->if_tunnel <= 0) {
--		MDBG("failed to create MN-HA tunnel\n"); 
--		goto clean_err;
--	}
--	if (rule_add(NULL, RT6_TABLE_MIP6,
--		     IP6_RULE_PRIO_MIP6_HOA_OUT, RTN_UNICAST,
--		     &hai->hoa.addr, 128, &in6addr_any, 0, FIB_RULE_FIND_SADDR) < 0) {
--		goto clean_err;
-+		if (hai->if_tunnel <= 0) {
-+			MDBG("failed to create MN-HA tunnel\n"); 
-+			goto clean_err;
-+		}
-+		if (rule_add(NULL, RT6_TABLE_MIP6, 
-+			     IP6_RULE_PRIO_MIP6_HOA_OUT, 0, RTN_UNICAST, 
-+			     &hai->hoa.addr, 128, &in6addr_any, 0, 
-+			     FIB_RULE_FIND_SADDR) < 0) {
-+			goto clean_err;
-+		}
- 	}
- 
- 	if (mn_block_rule_add(hai) < 0)
-@@ -1524,16 +2130,25 @@ static int conf_home_addr_info(struct ho
- 			       PREFIX_LIFETIME_INFINITE,
- 			       PREFIX_LIFETIME_INFINITE);
- 
--	arg.target = hai;
--	arg.flag = 1;
-+	/* MCoA */
-+	if(!hai->reg_mcoa) {
-+		arg.target = hai;
-+		arg.flag = 1;
- 
--	if (addr_do(&hai->hoa.addr, 128,
--		    hai->if_tunnel, &arg, flag_hoa) < 0) {
--		goto clean_err;
-+		if (addr_do(&hai->hoa.addr, 128,
-+			    hai->if_tunnel, &arg, flag_hoa) < 0) {
-+			goto clean_err;
-+		}
- 	}
- 	if (hai->mob_rtr && nemo_mr_rules_add(hai) < 0) {
- 		goto clean_err;
- 	}
-+	/* MCoA TODO1
-+	 * For Home-CoA support, hai->at_home must be initialized to 0
-+	 * if(hai->reg_mcoa) hai->at_home = 0; 
-+	 * BUT Home-CoA solution seems to be deprecated by the no-NDP 
-+	 * solution
-+	 */
- 	hai->at_home = hai->hoa.iif == hai->if_home;
- 	pthread_rwlock_wrlock(&mn_lock);
- 	list_add(&hai->list, &home_addr_list);
-@@ -1635,7 +2250,11 @@ int mn_update_home_prefix(struct home_ad
- 	if (!hai->at_home) {
- 		struct bulentry *e;
- 		
--		e = bul_get(hai,  NULL, &hai->ha_addr);
-+		/* MCoA TODO1
-+		 * Do the same for all entries that match &hai->ha_addr 
-+		 */
-+		e = bul_get(hai, NULL, &hai->ha_addr, MCOA_NO_BID);
-+
- 		if (e == NULL || !(e->flags & IP6_MH_BU_HOME))
- 			return -ENOENT;
- 		
-@@ -1668,8 +2287,9 @@ static int mn_get_ro_coa(const struct in
- 		return ret;
- 	hai = mn_get_home_addr(hoa);
- 	if (hai) {
--		*coa = hai->primary_coa.addr;
--		ret = hai->primary_coa.iif;
-+		assert(hai->current_coa);
-+		*coa = hai->current_coa->addr;
-+		ret = hai->current_coa->iif;
- 	} else {
- 		MDBG("Failed to find a home address info\n");
- 		ret = -1;
-@@ -1683,14 +2303,14 @@ static inline void linklocal_rt_rules_de
- static inline void linklocal_rt_rules_del(void)
- {
- 	rule_del(NULL, RT6_TABLE_MAIN,
--		 IP6_RULE_PRIO_MIP6_COA_OUT, RTN_UNICAST,
-+		 IP6_RULE_PRIO_MIP6_COA_OUT, 0, RTN_UNICAST,
- 		 &linklocal_prefix, 64, &in6addr_any, 0, 0);
- }
- 
- static inline int linklocal_rt_rules_add(void)
- {
- 	return rule_add(NULL, RT6_TABLE_MAIN,
--			IP6_RULE_PRIO_MIP6_COA_OUT, RTN_UNICAST,
-+			IP6_RULE_PRIO_MIP6_COA_OUT, 0, RTN_UNICAST,
- 			&linklocal_prefix, 64, &in6addr_any, 0, 0);
- }
- 
-@@ -1705,12 +2325,13 @@ static int mn_ext_tunnel_ops(int request
- 	mha.if_next = new_if;
- 	mha.target = hai;
- 
-+	/* MCoA: Update state for the correct table (hai->table) */	
- 	if (hai->hoa.iif == old_if &&
--	    (mn_tnl_state_add(hai, new_if, 1) ||
-+	    (mn_tnl_state_add(hai, new_if, 1, hai->table) ||	     
- 	     addr_do(&hai->hoa.addr, 128, old_if, &mha, mv_hoa) < 0))
- 		goto undo;
- 
--	mn_tnl_state_del(hai, old_if, 1);
-+	mn_tnl_state_del(hai, old_if, 1, hai->table);
- 	hai->if_tunnel = new_if;
- 	return 0;
- undo:
-@@ -1718,28 +2339,52 @@ undo:
- 
- 	if (hai->hoa.iif == new_if)
- 		addr_do(&hai->hoa.addr, 128, new_if, &mha, mv_hoa); 
--	mn_tnl_state_del(hai, new_if, 1);
-+	mn_tnl_state_del(hai, new_if, 1, hai->table);
- 	return -1;
- }
- 
- static int mn_move(struct home_addr_info *hai)
- {
- 	struct mv_hoa_args mha;
-+	struct list_head *l;
- 
- 	mha.target = hai;
- 
- 	TRACE;
-+	assert(hai->current_coa);
- 
- 	if (hai->at_home) {
- 		int plen = (hai->hoa.iif == hai->if_tunnel ? 128 : hai->plen);
- 		struct bulentry *e;
- 		MDBG("in home net\n");
-+		/* MCoA 
-+		 * If we are in the home network, add a rule to
-+		 * RT6_TABLE_MIP6 to allow routing of the packets from 
-+		 * the MNNs (routes in RT6_TABLE_MIP6 are 
-+		 * added/deleted in movement.c/md_update_router_stats,
-+		 * __md_free_router) and the MR.
-+		 */
-+		if (hai->reg_mcoa) {
-+			list_for_each(l, &hai->mob_net_prefixes) {
-+				struct prefix_list_entry *p = NULL;
-+				p = list_entry(l, struct prefix_list_entry, 
-+						list);
-+				rule_add(NULL, RT6_TABLE_MIP6,
-+			     		IP6_RULE_PRIO_MIP6_FWD, 0, 
-+					RTN_UNICAST, &p->ple_prefix, 
-+					p->ple_plen, &in6addr_any, 0, 0);
-+			}
-+		}
- 		if (hai->home_reg_status == HOME_REG_NONE &&
--		    (e = bul_get(hai,  NULL, &hai->ha_addr)) != NULL &&
-+		    (e = bul_get(hai, NULL, &hai->ha_addr, 
-+				 hai->reg_mcoa?
-+				 get_bid_from_ifindex(hai->current_coa->iif)
-+				 :MCOA_NO_BID)) 
-+		    		 != NULL &&
- 		    e->flags & IP6_MH_BU_HOME && e->type != BUL_ENTRY)
- 			bul_delete(e);
--		if (hai->hoa.iif != hai->primary_coa.iif) {
--			mha.if_next = hai->primary_coa.iif;
-+		if (hai->hoa.iif != hai->current_coa->iif) {
-+			mha.if_next = hai->current_coa->iif;
- 			addr_do(&hai->hoa.addr, plen,
- 				hai->hoa.iif, &mha, mv_hoa);
- 			if (hai->home_reg_status == HOME_REG_NONE) {
-@@ -1760,10 +2405,33 @@ static int mn_move(struct home_addr_info
- 			hai->pend_ba = 0;
- 			pending_bas--;
- 		}
-+		/* MCoA
-+		 * When in a foreign network, delete the 
-+		 * rules to RT6_TABLE_MIP6
-+		 */
-+		if (hai->reg_mcoa) {
-+			list_for_each(l, &hai->mob_net_prefixes) {
-+				struct prefix_list_entry *p = NULL;
-+				p = list_entry(l, struct prefix_list_entry, 
-+						list);
-+				rule_del(NULL, RT6_TABLE_MIP6,
-+					IP6_RULE_PRIO_MIP6_FWD, 0, 
-+					RTN_UNICAST, &p->ple_prefix, 
-+					p->ple_plen, &in6addr_any, 0, 0);
-+			}
-+		}
- 		if (hai->hoa.iif != hai->if_tunnel) {
- 			mha.if_next = hai->if_tunnel;
--			addr_do(&hai->hoa.addr, hai->plen,
--				hai->hoa.iif, &mha, mv_hoa);
-+			/* MCoA 
-+			 * HoA is moved if we do not use MCoA,
-+			 * HoA is copied if we use MCoA
-+			 */
-+			if (hai->reg_mcoa)
-+				addr_do(&hai->hoa.addr, hai->plen,
-+					hai->hoa.iif, &mha, cp_hoa);
-+			else
-+				addr_do(&hai->hoa.addr, hai->plen,
-+					hai->hoa.iif, &mha, mv_hoa);
- 		}
- 		do_handoff(hai);
- 	}
-@@ -1951,6 +2619,7 @@ static int mn_do_dad(struct home_addr_in
- 	struct in6_addr solicit;
- 	int type = FLUSH_ALL;
- 
-+	assert(hai->current_coa);	
- 	if ((sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) < 0)
- 		return ret;
- 
-@@ -1963,22 +2632,22 @@ static int mn_do_dad(struct home_addr_in
- 		   sizeof(struct icmp6_filter));
- 
- 	ipv6_addr_solict_mult(&hai->hoa.addr, &solicit);
--	if_mc_group(sock, hai->primary_coa.iif, &in6addr_all_nodes_mc, 
-+	if_mc_group(sock, hai->current_coa->iif, &in6addr_all_nodes_mc, 
- 		    IPV6_JOIN_GROUP);
--	if_mc_group(sock, hai->primary_coa.iif, &solicit, IPV6_JOIN_GROUP);
-+	if_mc_group(sock, hai->current_coa->iif, &solicit, IPV6_JOIN_GROUP);
- 
- 	if (hai->home_reg_status == HOME_REG_NONE) {
- 		if (hai->lladdr_comp) {
- 			struct in6_addr lladdr;
- 			ipv6_addr_llocal(&hai->hoa.addr, &lladdr);
- 			if (mn_addr_do_dad(sock, NULL, &lladdr, 64, 
--					   hai->primary_coa.iif, 0) < 0) {
-+					   hai->current_coa->iif, 0) < 0) {
- 				MDBG("Link-local DAD failed!\n");
- 				goto err;
- 			}
- 		}
- 		if (mn_addr_do_dad(sock, hai, &hai->hoa.addr, hai->plen, 
--				   hai->primary_coa.iif, 0) < 0) {
-+				   hai->current_coa->iif, 0) < 0) {
- 			MDBG("HoA DAD failed!\n");
- 			goto err;
- 		}
-@@ -1986,7 +2655,7 @@ static int mn_do_dad(struct home_addr_in
- 			mn_send_home_na(hai);
- 		ret = mn_move(hai);
- 	} else if (!mn_addr_do_dad(sock, hai, &hai->hoa.addr, 
--				   hai->plen, hai->primary_coa.iif, 1)) {
-+				   hai->plen, hai->current_coa->iif, 1)) {
- 		ret = mn_move(hai);
- 	}
- out:
-@@ -2009,15 +2678,19 @@ static inline void mn_update_coa_lifetim
- 
- static void mn_coa_updated(struct home_addr_info *hai)
- {
-+	assert(hai->current_coa);
- 	if (!hai->at_home) {
- 		struct bulentry *e;
- 		struct mn_addr *coa;
- 		
--		e = bul_get(hai, NULL, &hai->ha_addr);
-+		e = bul_get(hai, NULL, &hai->ha_addr, 
-+			    hai->reg_mcoa?
-+			    get_bid_from_ifindex(hai->current_coa->iif)
-+			    :MCOA_NO_BID);
- 		if (e == NULL || !(e->flags & IP6_MH_BU_HOME))
- 			return;
- 		
--		coa = &hai->primary_coa;
-+		coa = hai->current_coa;
- 		
- 		MDBG2("preferred_time %u valid_life %u\n",
- 		      coa->preferred_time.tv_sec,
-@@ -2075,6 +2748,10 @@ static struct md_inet6_iface *mn_get_ifa
- 	list_for_each(l, iface_list) {
- 		struct md_inet6_iface *iface;
- 		iface = list_entry(l, struct md_inet6_iface, list);
-+		/* MCoA TODO1
-+		 * If MCoA is used, MCoA preference must be used instead
-+		 * of interfaces preference
-+		 */
- 		if (mn_verify_iface(iface) &&
- 		    (best_iface == NULL ||
- 		     (best_iface)->preference > iface->preference ||
-@@ -2119,6 +2796,106 @@ static struct md_coa *mn_get_coa(const s
- 	return best_coa;
- }
- 
-+static int mcoa_mn_make_ho_verdict(const struct movement_event *me,
-+			      const struct home_addr_info *hai, 
-+			      struct md_router **next_rtr,
-+			      struct md_coa **next_coa)
-+{
-+	/* MCoA 
-+	 * The handoff algorithm is different from 
-+	 * mn_make_ho_verdict because we do not perform vertical 
-+	 * handover, but only horizontal handovers.
-+	 */
-+	struct md_router *rtr;
-+	struct md_coa *coa = NULL;
-+	int force = 0;
-+
-+	/* MCoA TODO1
-+	 * For Home-CoA support, remove this if(){}
-+	 * BUT Home-CoA seems to be deprecated
-+	 */
-+	if (me->iface != NULL && 
-+	    (rtr = md_get_first_router(&me->iface->default_rtr)) != NULL &&
-+	    mn_is_at_home(&rtr->prefixes, &hai->home_prefix, hai->home_plen)) {
-+		*next_rtr = rtr;
-+		*next_coa = NULL;
-+		return MN_HO_RETURN_HOME;
-+	}
-+	switch (me->event_type) {
-+	case ME_DHAAD:
-+		force = 1;
-+		break;
-+	case ME_IFACE_DOWN:
-+	case ME_LINK_DOWN:
-+	case ME_RTR_EXPIRED:
-+		break;
-+	case ME_RTR_NEW:
-+		assert(!list_empty(&me->iface->default_rtr));
-+	case ME_LINK_UP:
-+		assert(me->iface != NULL);
-+		break;
-+	case ME_RTR_BACK:
-+	case ME_RTR_UPDATED:
-+		assert(me->iface != NULL);
-+		assert(!list_empty(&me->iface->default_rtr));
-+
-+		*next_coa = md_get_coa(&me->iface->coas,
-+				       &hai->current_coa->addr);
-+		if (*next_coa == NULL)
-+			break;
-+		*next_rtr = md_get_first_router(&me->iface->default_rtr);
-+		return MN_HO_REESTABLISH;
-+	case ME_COA_NEW:
-+		assert(me->iface != NULL);
-+		assert(me->coa != NULL);
-+		assert(me->iface->ifindex == me->coa->ifindex);
-+		break;
-+	case ME_COA_EXPIRED:
-+		assert(me->iface != NULL);
-+		assert(me->coa != NULL);
-+		assert(me->iface->ifindex == me->coa->ifindex);
-+
-+		if (IN6_ARE_ADDR_EQUAL(&hai->current_coa->addr, 
-+					&me->coa->addr))
-+			break;
-+		return MN_HO_IGNORE;		
-+	case ME_COA_LFT_DEC:
-+	case ME_COA_LFT_INC:
-+		assert(me->iface != NULL);
-+		assert(me->coa != NULL);
-+		assert(me->iface->ifindex == me->coa->ifindex);
-+
-+		if (!IN6_ARE_ADDR_EQUAL(&hai->current_coa->addr,
-+					&me->coa->addr)) {
-+			return MN_HO_IGNORE;
-+		}
-+
-+		*next_coa = me->coa;
-+		return MN_HO_CHECK_LIFETIME;
-+	default:
-+		return MN_HO_IGNORE;
-+	}
-+	if (!mn_verify_iface(me->iface))
-+		return MN_HO_INVALIDATE;
-+
-+	coa = mn_get_coa(hai, me->iface->ifindex,
-+			 &hai->current_coa->addr, &me->iface->coas);
-+
-+	if (coa == NULL) 
-+		return MN_HO_INVALIDATE;
-+
-+	if (!force && 
-+	    IN6_ARE_ADDR_EQUAL(&coa->addr, &hai->current_coa->addr)) 
-+		return MN_HO_IGNORE;
-+
-+	if (list_empty(&me->iface->default_rtr)) 
-+		return MN_HO_IGNORE;
-+
-+	*next_rtr = md_get_first_router(&me->iface->default_rtr);
-+	*next_coa = coa;
-+	return MN_HO_PROCEED;
-+}
-+
- static int mn_make_ho_verdict(const struct movement_event *me,
- 			      const struct home_addr_info *hai, 
- 			      struct md_router **next_rtr,
-@@ -2127,9 +2904,11 @@ static int mn_make_ho_verdict(const stru
- 	struct md_inet6_iface *old_iface = NULL, *new_iface = NULL;
- 	struct md_router *rtr;
- 	struct md_coa *coa = NULL;
--	int pref_iif = hai->primary_coa.iif; /* prefer current CoA interface */
-+	int pref_iif;
- 	int force = 0;
- 
-+	assert(hai->current_coa);
-+	pref_iif = hai->current_coa->iif; /* prefer current CoA interface */
- 	if (me->iface != NULL && 
- 	    (rtr = md_get_first_router(&me->iface->default_rtr)) != NULL &&
- 	    mn_is_at_home(&rtr->prefixes, &hai->home_prefix, hai->home_plen)) {
-@@ -2170,7 +2949,7 @@ static int mn_make_ho_verdict(const stru
- 			return MN_HO_IGNORE;
- 
- 		*next_coa = md_get_coa(&old_iface->coas,
--				       &hai->primary_coa.addr);
-+				       &hai->current_coa->addr);
- 		if (*next_coa == NULL)
- 			break;
- 		*next_rtr = md_get_first_router(&old_iface->default_rtr);
-@@ -2187,7 +2966,7 @@ static int mn_make_ho_verdict(const stru
- 
- 		if (old_iface == NULL ||
- 		    (old_iface == me->iface &&
--		     IN6_ARE_ADDR_EQUAL(&hai->primary_coa.addr, 
-+		     IN6_ARE_ADDR_EQUAL(&hai->current_coa->addr, 
- 					&me->coa->addr)))
- 			break;
- 		return MN_HO_IGNORE;		
-@@ -2201,7 +2980,7 @@ static int mn_make_ho_verdict(const stru
- 			break;
- 
- 		if (old_iface != me->iface ||
--		    !IN6_ARE_ADDR_EQUAL(&hai->primary_coa.addr,
-+		    !IN6_ARE_ADDR_EQUAL(&hai->current_coa->addr,
- 					&me->coa->addr))
- 			return MN_HO_IGNORE;
- 
-@@ -2216,13 +2995,13 @@ static int mn_make_ho_verdict(const stru
- 		return MN_HO_INVALIDATE;
- 
- 	coa = mn_get_coa(hai, new_iface->ifindex,
--			 &hai->primary_coa.addr, &new_iface->coas);
-+			 &hai->current_coa->addr, &new_iface->coas);
- 
- 	if (coa == NULL)
- 		return MN_HO_INVALIDATE;
- 
- 	if (!force && new_iface == old_iface && 
--	    IN6_ARE_ADDR_EQUAL(&coa->addr, &hai->primary_coa.addr))
-+	    IN6_ARE_ADDR_EQUAL(&coa->addr, &hai->current_coa->addr))
- 		return MN_HO_IGNORE;
- 
- 	if (list_empty(&new_iface->default_rtr))
-@@ -2231,6 +3010,100 @@ static int mn_make_ho_verdict(const stru
- 	*next_rtr = md_get_first_router(&new_iface->default_rtr);
- 	*next_coa = coa;
- 	return MN_HO_PROCEED;
-+}
-+
-+static void mcoa_mn_chk_ho_verdict(struct home_addr_info *hai,
-+			      const struct movement_event *event)
-+{
-+	struct md_router *rtr = NULL;
-+	struct md_coa *coa = NULL;
-+	struct bulentry *bule;
-+	int move_home = 0;	
-+	int active_coa = 0;
-+
-+	if ((bule = bul_get(hai,  NULL, &hai->ha_addr, 
-+			hai->reg_mcoa?
-+			get_bid_from_ifindex(event->iface->ifindex)
-+			:MCOA_NO_BID)))
-+		active_coa = mcoa_bule_count(bule);
-+
-+	if (event->event_type == ME_COA_EXPIRED &&
-+	    IN6_ARE_ADDR_EQUAL(&event->coa->addr, &hai->hoa.addr))
-+		return;
-+
-+	hai->current_coa = mcoa_get_current_coa(hai, event->iface->ifindex);
-+	if (hai->current_coa == NULL)
-+		return;
-+
-+	hai->verdict = mcoa_mn_make_ho_verdict(event, hai, &rtr, &coa);
-+	MDBG2("Verdict %d for iface %d\n", 
-+		hai->verdict, hai->current_coa->iif);
-+
-+	if (hai->verdict == MN_HO_IGNORE)
-+		return;
-+
-+	if (hai->verdict == MN_HO_INVALIDATE) {
-+		/* MCoA 
-+		 * Unless this is the last available interface
-+		 * Rules related to this iface are deleted, 
-+		 * BULE is deleted, and deregistration BU is sent
-+		 */
-+		if (active_coa > 1 
-+		    && (bule = mcoa_iface_rules_del(hai->current_coa->iif, 
-+						    hai, 1)))
-+			/* MCoA TODO2
-+			 * Send a deregistration BU 
-+			 * Is it the correct place to do that? 
-+			 * because when BACK is received, BULE has 
-+			 * already been deleted
-+			 * (actually BAck cannot be received at the BULE's CoA
-+			 * because the iface is down...)
-+			 */
-+			mn_dereg_bule(bule);
-+		hai->current_coa = NULL;
-+		return;
-+	} 
-+	if (rtr != NULL)
-+		move_home = mn_home_rtr_chk(hai, rtr);
-+
-+	if  (hai->verdict == MN_HO_CHECK_LIFETIME) {
-+		mn_update_coa_lifetime(hai->current_coa, coa);
-+		mn_coa_updated(hai);
-+	} else if (hai->verdict == MN_HO_REESTABLISH) {
-+		mn_update_coa_lifetime(hai->current_coa, coa);
-+		mn_coa_updated(hai);
-+	} else { 
-+		switch (hai->verdict) {
-+		case MN_HO_PROCEED:
-+			hai->current_coa->addr = coa->addr;
-+			mn_update_coa_lifetime(hai->current_coa, coa);
-+			/* MCoA
-+			 * Rules related to this iface are added if needed
-+			 */
-+			mcoa_iface_rules_add(hai->current_coa->iif, hai);
-+			break;
-+		case MN_HO_RETURN_HOME:
-+			hai->current_coa->addr = hai->hoa.addr;
-+		        mcoa_iface_rules_del(hai->current_coa->iif, hai, 1);
-+			break;
-+		default:
-+			return;
-+		}
-+		if (hai->at_home && !hai->pend_ba) {
-+			/* check if router is HA */
-+			if (hai->home_reg_status != HOME_REG_NONE &&
-+			    rtr_addr_chk(rtr, &hai->ha_addr)) {
-+				mn_move(hai);
-+			} else if (hai->home_reg_status != HOME_REG_NONE ||
-+				   move_home) {
-+				int type = FLUSH_FAILED;
-+				mn_do_dad(hai, 0);
-+				if (hai->home_reg_status == HOME_REG_NONE)
-+					bul_iterate(&hai->bul,
-+						    _bul_flush, &type);
-+			}
-+		}
-+	}
- }
- 
- static void mn_chk_ho_verdict(struct home_addr_info *hai,
-@@ -2244,35 +3117,36 @@ static void mn_chk_ho_verdict(struct hom
- 	    IN6_ARE_ADDR_EQUAL(&event->coa->addr, &hai->hoa.addr))
- 		return;
- 
-+	assert(hai->current_coa);
- 	hai->verdict = mn_make_ho_verdict(event, hai, &rtr, &coa);
- 
- 	if (hai->verdict == MN_HO_IGNORE)
- 		return;
- 
- 	if (hai->verdict == MN_HO_INVALIDATE) {
--		hai->primary_coa.iif = 0;
-+		hai->current_coa->iif = 0;
- 		return;
- 	} 
- 	if (rtr != NULL)
- 		move_home = mn_home_rtr_chk(hai, rtr);
- 
- 	if (hai->verdict == MN_HO_CHECK_LIFETIME) {
--		mn_update_coa_lifetime(&hai->primary_coa, coa);
-+		mn_update_coa_lifetime(hai->current_coa, coa);
- 		mn_coa_updated(hai);
- 	} else if (hai->verdict == MN_HO_REESTABLISH) {
--		hai->primary_coa.iif = coa->ifindex;
--		mn_update_coa_lifetime(&hai->primary_coa, coa);
-+		hai->current_coa->iif = coa->ifindex;
-+		mn_update_coa_lifetime(hai->current_coa, coa);
- 		mn_coa_updated(hai);
- 	} else { 
- 		switch (hai->verdict) {
- 		case MN_HO_PROCEED:
--			hai->primary_coa.iif = coa->ifindex;
--			hai->primary_coa.addr = coa->addr;
--			mn_update_coa_lifetime(&hai->primary_coa, coa);
-+			hai->current_coa->iif = coa->ifindex;
-+			hai->current_coa->addr = coa->addr;
-+			mn_update_coa_lifetime(hai->current_coa, coa);
- 			break;
- 		case MN_HO_RETURN_HOME:
--			hai->primary_coa.iif = rtr->ifindex;
--			hai->primary_coa.addr = hai->hoa.addr;
-+			hai->current_coa->iif = rtr->ifindex;
-+			hai->current_coa->addr = hai->hoa.addr;
- 			break;
- 		default:
- 			return;
-@@ -2311,14 +3185,20 @@ int mn_movement_event(struct movement_ev
- 				return 0;
- 			}
- 			dhaad_stop(hai);
--			mn_chk_ho_verdict(hai, event);
-+			if (hai->reg_mcoa)
-+				mcoa_mn_chk_ho_verdict(hai, event);
-+			else	
-+				mn_chk_ho_verdict(hai, event);
- 		} else {
- 			if (event->event_type == ME_COA_EXPIRED)
- 				mn_rr_delete_co(&event->coa->addr);
- 			list_for_each(lh, &home_addr_list) {
- 				hai = list_entry(lh, 
- 						 struct home_addr_info, list);
--				mn_chk_ho_verdict(hai, event);
-+				if (hai->reg_mcoa)
-+					mcoa_mn_chk_ho_verdict(hai, event);
-+				else	
-+					mn_chk_ho_verdict(hai, event);
- 			}
- 		}
- 	}
-@@ -2397,7 +3277,9 @@ void mn_start_ro(struct in6_addr *cn, st
- 		     "from %x:%x:%x:%x:%x:%x:%x:%x\n", 
- 		     NIP6ADDR(cn), NIP6ADDR(hoa));
- 
--		bule = bul_get(NULL, hoa, cn);
-+		bule = bul_get(NULL, hoa, cn, 
-+			       hai->reg_mcoa?
-+			       get_bid_from_ifindex(iif):MCOA_NO_BID);
- 
- 		if (bule) {
- 			/* If BUL entry exists, RR is done or in progress */
-@@ -2405,7 +3287,9 @@ void mn_start_ro(struct in6_addr *cn, st
- 			return;
- 		}
- 
--		bule = create_bule(hoa, cn);
-+		bule = create_bule(hoa, cn,
-+				   hai->reg_mcoa?
-+				   get_bid_from_ifindex(iif):MCOA_NO_BID);
- 		if (!bule) {
- 			MDBG("Malloc failed at starting of RO\n");
- 			pthread_rwlock_unlock(&mn_lock);
-@@ -2419,6 +3303,18 @@ void mn_start_ro(struct in6_addr *cn, st
- 		bule->coa_changed = -1;
- 		bule->home = hai;
- 		bule->rr.state = RR_NOT_STARTED;
-+		bule->priority = get_prio_from_bid(bule->bid);
-+		/* MCoA TODO2
-+		 * At the moment we prevent MIPL from installing rules for 
-+		 * this entry
-+		 */
-+		bule->rules = 1;
-+		/* MCoA TODO2
-+		 * Support for CN
-+		 * The table index must be filled with 
-+		 * mcoa_mn_init_rt_table(bule)
-+		 */
-+		bule->table = RT6_TABLE_MIP6;
- 
- 		mn_reset_ro_bule(bule);
- 
-@@ -2451,7 +3347,10 @@ static void mn_recv_brr(const struct ip6
- 	hoa = in->dst;
- 	pthread_rwlock_wrlock(&mn_lock);
- 	/* Do we have BUL entry for cn?  If not, drop. */
--	if ((e = bul_get(NULL, hoa, cn)) == NULL) {
-+	/* MCoA TODO2
-+	 * get BID from BRR BUI option
-+	 */
-+	if ((e = bul_get(NULL, hoa, cn, get_bid_from_ifindex(iif))) == NULL) {
- 		pthread_rwlock_unlock(&mn_lock);
- 		return;
- 	}
-@@ -2499,7 +3398,11 @@ static void mn_recv_be(const struct ip6_
- 		hoa = in->dst;
- 
- 	/* Do we have BUL entry for cn?  If not, drop. */
--	if ((e = bul_get(NULL, hoa, cn)) == NULL || e->type != BUL_ENTRY)
-+	/* MCoA TODO2
-+	 * get BID from BUI option in BERROR
-+	 */
-+	if ((e = bul_get(NULL, hoa, cn, get_bid_from_ifindex(iif))) == NULL 
-+	    || e->type != BUL_ENTRY)
- 		goto out;
- 
- 	clock_gettime(CLOCK_REALTIME, &now);
-diff -r 82fcd4bea972 src/mn.h
---- a/src/mn.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/mn.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -52,6 +52,7 @@ struct ha_candidate_list {
- #define	NEMO_FWD_BLOCK	0x10
- 
- struct mn_addr {
-+	struct list_head list;
- 	struct in6_addr addr;
- 	int iif;
- 	struct timespec timestamp;
-@@ -75,7 +76,8 @@ struct home_addr_info {
- 	uint8_t home_plen;
- 	struct in6_addr home_prefix;
- 	struct hash bul; /* Binding Update List */
--	struct mn_addr primary_coa;
-+	struct mn_addr *current_coa; /* MCoA: pointer to a member of mcoa */
-+	struct list_head mcoa; /* MCoA: list of all active CoAs */
- 	struct list_head ro_policies;
- 	struct ha_candidate_list ha_list;	
- 	struct in6_addr ha_addr;
-@@ -84,9 +86,11 @@ struct home_addr_info {
- 	int if_tunnel;
- 	int if_home;
- 	int if_block;
-+	int table; /* MCoA: routing table number where routes are stored */
- 	short hwalen;
- 	uint8_t altcoa;
- 	uint16_t mob_rtr;
-+	uint8_t reg_mcoa;
- 	char name[IF_NAMESIZE];
- 	int mnp_count;
- 	struct list_head mob_net_prefixes;
-diff -r 82fcd4bea972 src/movement.c
---- a/src/movement.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/movement.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -165,7 +165,7 @@ static void md_prefix_rule_del(struct pr
- 	struct in6_addr prefix;
- 	ipv6_addr_prefix(&prefix, &p->ple_prefix, p->ple_plen);
- 	rule_del(NULL, RT6_TABLE_MAIN, IP6_RULE_PRIO_MIP6_COA_OUT,
--		 RTN_UNICAST, &prefix, p->ple_plen,
-+		 0, RTN_UNICAST, &prefix, p->ple_plen,
- 		 &in6addr_any, 0, 0);
- }
- 
-@@ -312,10 +312,10 @@ static void md_expire_router(struct md_i
- 
- static void md_block_rule_del(struct md_inet6_iface *iface)
- {
--	rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_BLOCK_HOA, RTN_BLACKHOLE,
-+ 	rule_del(NULL, 0, IP6_RULE_PRIO_MIP6_BLOCK_HOA, 0, RTN_BLACKHOLE,
- 		 &in6addr_any, 0, &in6addr_any, 0, 0);
--	rule_del(NULL, RT6_TABLE_MAIN, IP6_RULE_PRIO_MIP6_COA_OUT, RTN_UNICAST,
--		 &in6addr_any, 128, &in6addr_any, 0, 0);
-+ 	rule_del(NULL, RT6_TABLE_MAIN, IP6_RULE_PRIO_MIP6_COA_OUT, 0, 
-+		 RTN_UNICAST, &in6addr_any, 128, &in6addr_any, 0, 0);
- 	iface->iface_flags &= ~MD_BLOCK_TRAFFIC;
- }
- 
-@@ -1290,7 +1290,7 @@ static void md_prefix_rule_add(struct pr
- 	struct in6_addr prefix;
- 	ipv6_addr_prefix(&prefix, &p->ple_prefix, p->ple_plen);
- 	rule_add(NULL, RT6_TABLE_MAIN, IP6_RULE_PRIO_MIP6_COA_OUT,
--		 RTN_UNICAST, &prefix, p->ple_plen,
-+		 0, RTN_UNICAST, &prefix, p->ple_plen,
- 		 &in6addr_any, 0, 0);
- }
- 
-@@ -1361,13 +1361,13 @@ static int md_block_rule_add(struct md_i
- 	iface->iface_flags |= MD_BLOCK_TRAFFIC;
- 	/* Allow DAD probes and RS messages */
- 	rule_add(NULL, RT6_TABLE_MAIN,
--		 IP6_RULE_PRIO_MIP6_COA_OUT, RTN_UNICAST,
-+ 		 IP6_RULE_PRIO_MIP6_COA_OUT, 0, RTN_UNICAST,
- 		 &in6addr_any, 128, &in6addr_any, 0, 0);
- 	/* drop outgoing global traffic until DAD has been performed
- 	   on CoA to make routing and tunnel end-point updates atomic
- 	   during handoff */
- 	return rule_add(NULL, 0,
--			IP6_RULE_PRIO_MIP6_BLOCK_HOA, RTN_BLACKHOLE,
-+ 			IP6_RULE_PRIO_MIP6_BLOCK_HOA, 0, RTN_BLACKHOLE,
- 			&in6addr_any, 0, &in6addr_any, 0, 0);
- }
- 
-diff -r 82fcd4bea972 src/mpdisc_ha.c
---- a/src/mpdisc_ha.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/mpdisc_ha.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -68,7 +68,7 @@ static inline struct mpa_entry *mpa_get(
- 					const struct in6_addr *hoa)
- 					
- {
--	return hash_get(&mpa_hash, ha, hoa);
-+	return hash_get(&mpa_hash, ha, hoa, 0);
- }
- 
- /* HA functions */
-@@ -214,7 +214,7 @@ void mpd_cancel_mpa(const struct in6_add
- 	pthread_mutex_lock(&mpa_lock);
- 	e = mpa_get(ha, hoa);
- 	if (e != NULL) {
--		hash_delete(&mpa_hash, &e->ha, &e->hoa);
-+		hash_delete(&mpa_hash, &e->ha, &e->hoa, 0);
- 		if (tsisset(e->delay))
- 			del_task(&e->tqe);
- 		free(e);
-@@ -239,7 +239,7 @@ int mpd_start_mpa(const struct in6_addr 
- 		memset(e, 0, sizeof(struct mpa_entry));
- 		e->ha = *ha;
- 		e->hoa = *hoa;
--		if (hash_add(&mpa_hash, e, &e->ha, &e->hoa)) {
-+		if (hash_add(&mpa_hash, e, &e->ha, &e->hoa, NULL)) {
- 			free(e);
- 			goto out;
- 		}
-diff -r 82fcd4bea972 src/mpdisc_mn.c
---- a/src/mpdisc_mn.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/mpdisc_mn.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -65,7 +65,7 @@ static inline struct mps_entry *mps_get(
- static inline struct mps_entry *mps_get(const struct in6_addr *hoa,
- 					const struct in6_addr *ha)
- {
--	return hash_get(&mps_hash, hoa, ha);
-+	return hash_get(&mps_hash, hoa, ha, 0);
- }
- 
- #ifdef ENABLE_VT
-@@ -116,7 +116,7 @@ void mpd_cancel_mps(const struct in6_add
- 	e = mps_get(hoa, ha);
- 	if (e != NULL) {
- 		dbg("canceling MPS\n");
--		hash_delete(&mps_hash, &e->hoa, &e->ha);
-+		hash_delete(&mps_hash, &e->hoa, &e->ha, 0);
- 		if (tsisset(e->delay))
- 			del_task(&e->tqe);
- 		free(e);
-@@ -175,7 +175,7 @@ int mpd_schedule_first_mps(const struct 
- 		memset(e, 0, sizeof(struct mps_entry));
- 		e->hoa = *hoa;
- 		e->ha = *ha;
--		if (hash_add(&mps_hash, e, &e->hoa, &e->ha)) {
-+		if (hash_add(&mps_hash, e, &e->hoa, &e->ha, NULL)) {
- 			free(e);
- 			goto out;
- 		}
-diff -r 82fcd4bea972 src/ndisc.h
---- a/src/ndisc.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/ndisc.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -21,6 +21,7 @@ static inline short nd_get_l2addr_len(un
- 		return 1;
- 		/* supported virtual devices */
- 	case ARPHRD_SIT:
-+		return 4;
- 	case ARPHRD_TUNNEL6:
- 	case ARPHRD_PPP:
- 	case ARPHRD_IPGRE:
-diff -r 82fcd4bea972 src/policy.c
---- a/src/policy.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/policy.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -47,6 +47,25 @@ pthread_rwlock_t policy_lock;
- pthread_rwlock_t policy_lock;
- struct hash policy_bind_acl_hash;
- int def_bind_policy = IP6_MH_BAS_PROHIBIT;
-+
-+/**
-+ * default_mcoa_reg - Check if MCoA reg is allowed
-+ * @remote_hoa: remote MN's home address
-+ *
-+ * Returns 0 if not allowed, 1 if allowed.
-+ **/
-+int default_mcoa_reg(const struct in6_addr *remote_hoa) 
-+{
-+	struct policy_bind_acl_entry *acl;
-+	int ret = 1;
-+
-+	pthread_rwlock_rdlock(&policy_lock);
-+	acl = hash_get(&policy_bind_acl_hash, NULL, remote_hoa, 0);
-+	if (!conf.HaAcceptMCoAReg || (acl && !acl->mcoa_reg))
-+		ret = 0;
-+	pthread_rwlock_unlock(&policy_lock);
-+	return ret;
-+}
- 
- /**
-  * default_best_iface - select best interface during handoff
-@@ -148,7 +167,7 @@ int default_discard_binding(const struct
- 		return IP6_MH_BAS_MR_OP_NOT_PERMITTED;
- 
- 	pthread_rwlock_rdlock(&policy_lock);
--	acl = hash_get(&policy_bind_acl_hash, NULL, remote_hoa);
-+	acl = hash_get(&policy_bind_acl_hash, NULL, remote_hoa, 0);
- 	if (acl != NULL) {
- 		ret = acl->bind_policy;
- 		if (ret < IP6_MH_BAS_UNSPECIFIED &&
-@@ -213,8 +232,16 @@ int default_accept_inet6_iface(int iif)
- 		struct net_iface *nif;
- 		nif = list_entry(list, struct net_iface, list);
- 		if (nif->ifindex == iif) {
--			if (is_if_mn(nif)) 
--				return nif->mn_if_preference;
-+			if (is_if_mn(nif)) {
-+				/* MCoA 
-+				 * Return the BID Priority if the 
-+				 * interface preference is 0
-+				 */
-+				if(nif->mn_if_preference)
-+					return nif->mn_if_preference;
-+				else
-+					return nif->mn_if_bidprio;
-+			}
- 			return 0;
- 		}
- 	}
-@@ -259,7 +286,7 @@ int default_get_mnp_count(const struct i
- 	int ret = 0;
- 	struct policy_bind_acl_entry *acl;
- 	pthread_rwlock_rdlock(&policy_lock);
--	acl = hash_get(&policy_bind_acl_hash, NULL, hoa);
-+	acl = hash_get(&policy_bind_acl_hash, NULL, hoa, 0);
- 	if (acl != NULL)
- 		ret = acl->mnp_count;
- 	pthread_rwlock_unlock(&policy_lock);
-@@ -275,7 +302,7 @@ int default_get_mnps(const struct in6_ad
- 	struct policy_bind_acl_entry *acl;
- 
- 	pthread_rwlock_rdlock(&policy_lock);
--	acl = hash_get(&policy_bind_acl_hash, NULL, hoa);
-+	acl = hash_get(&policy_bind_acl_hash, NULL, hoa, 0);
- 	if (acl != NULL) {
- 		struct list_head *l;
- 		list_for_each(l, &acl->mob_net_prefixes) {
-@@ -314,7 +341,7 @@ static int policy_bind_acl_add(struct po
- static int policy_bind_acl_add(struct policy_bind_acl_entry *acl)
- {
- 	int err;
--	err = hash_add(&policy_bind_acl_hash, acl, NULL, &acl->hoa);
-+	err = hash_add(&policy_bind_acl_hash, acl, NULL, &acl->hoa, NULL);
- 	if (!err) {
- 		list_del(&acl->list);
- 	}
-diff -r 82fcd4bea972 src/policy.h
---- a/src/policy.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/policy.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -6,7 +6,13 @@
- #include <netinet/in.h>
- #include "list.h"
- 
--#define POL_MN_IF_DEF_PREFERENCE 5
-+/* MCoA 
-+ * Changed POL_MN_IF_DEF_PREFERENCE from 5 to 0
-+ */
-+#define POL_MN_IF_DEF_PREFERENCE 0
-+#define POL_MN_IF_DEF_BID 0
-+#define POL_MN_IF_DEF_BID_PRIORITY 0
-+#define POL_MN_IF_DEF_RELIABLE 1
- 
- struct ip6_mh_binding_update;
- struct nd_router_advert;
-@@ -17,9 +23,18 @@ struct policy_bind_acl_entry {
- 	struct in6_addr hoa;
- 	int plen;
- 	int bind_policy;
-+	int mcoa_reg;
- 	int mnp_count;
- 	struct list_head mob_net_prefixes;
- };
-+
-+/**
-+ * default_mcoa_reg - Check if MCoA registration is allowed
-+ * @remote_hoa: remote MN's home address
-+ * 
-+ * Returns 0 if not allowed, 1 if allowed.
-+ **/
-+int default_mcoa_reg(const struct in6_addr *remote_hoa);
- 
- /**
-  * default_best_iface - select best interface during handoff
-diff -r 82fcd4bea972 src/retrout.c
---- a/src/retrout.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/retrout.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -151,7 +151,7 @@ static struct rrlentry *rre_create(int t
- 	rre->own2 = *own2;
- 	rre->iif = iif;
- 
--	if (hash_add(&rrl_hash, rre, &rre->own1, &rre->peer) < 0) {
-+	if (hash_add(&rrl_hash, rre, &rre->own1, &rre->peer, NULL) < 0) {
- 		rrl_delete(rre);
- 		return NULL;
- 	}
-@@ -168,7 +168,7 @@ static struct rrlentry *rrl_get(int type
- 
- 	assert(our_addr);
- 
--	rre = (struct rrlentry *)hash_get(&rrl_hash, our_addr, peer_addr);
-+	rre = (struct rrlentry *)hash_get(&rrl_hash, our_addr, peer_addr, 0);
- 
- 	if (rre != NULL && rre->type != type)
- 		return NULL;
-@@ -188,7 +188,7 @@ static void rrl_delete(struct rrlentry *
- 	TRACE;
- 
- 	del_task(&rre->tqe);
--	hash_delete(&rrl_hash, &rre->own1, &rre->peer);
-+	hash_delete(&rrl_hash, &rre->own1, &rre->peer, 0);
- 
- 	if (rre->type == COT_ENTRY) {
- 		struct list_head *list, *n;
-@@ -629,7 +629,7 @@ int mn_rr_error_check(const struct in6_a
- 		      const struct in6_addr *peer,
- 		      struct in6_addr *hoa)
- {
--	struct rrlentry *rre = hash_get(&rrl_hash, own, peer);
-+	struct rrlentry *rre = hash_get(&rrl_hash, own, peer, 0);
- 
- 	if (rre == NULL || !rre->wait)
- 		return 0;
-@@ -694,7 +694,11 @@ static void mn_recv_cot(const struct ip6
- 		struct addr_holder *ah;
- 
- 		ah = list_entry(list, struct addr_holder, list);
--		bule = bul_get(NULL, &ah->addr, cn_addr);
-+		/* MCoA TODO2
-+		 * MCoA does not work with RR
-+		 * At the moment the first entry that match is chosen
-+		 */
-+		bule = bul_get(NULL, &ah->addr, cn_addr, MCOA_NO_BID);
- 
- 		if (bule == NULL || bule->type != BUL_ENTRY ||
- 		    !IN6_ARE_ADDR_EQUAL(&rre_co->own1, &bule->coa)) {
-@@ -774,7 +778,11 @@ static void mn_recv_hot(const struct ip6
- 		pthread_rwlock_unlock(&mn_lock);
- 		return;
- 	}
--	bule = bul_get(NULL, home_addr, cn_addr);
-+	/* MCoA TODO2
-+	 * MCoA does not work with RR
-+	 * At the moment the first entry that match is chosen
-+	 */
-+	bule = bul_get(NULL, home_addr, cn_addr, MCOA_NO_BID);
- 
- 	if (bule == NULL || bule->type != BUL_ENTRY) {
- 		rrl_delete(rre_ho);
-diff -r 82fcd4bea972 src/rtnl.c
---- a/src/rtnl.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/rtnl.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -299,7 +299,7 @@ int route_del(int oif, uint8_t table, ui
- }
- 
- static int rule_mod(const char *iface, int cmd, uint8_t table,
--		    uint32_t priority, uint8_t action,
-+		    uint32_t priority, uint32_t fwmark, uint8_t action,
- 		    const struct in6_addr *src, int src_plen,
- 		    const struct in6_addr *dst, int dst_plen, int flags)
- {
-@@ -331,6 +331,8 @@ static int rule_mod(const char *iface, i
- 		addattr_l(n, sizeof(buf), RTA_SRC, src, sizeof(*src));
- 	if (priority)
- 		addattr32(n, sizeof(buf), RTA_PRIORITY, priority);
-+	if (fwmark)
-+		addattr32(n, sizeof(buf), RTA_PROTOINFO, fwmark);
- 	if (iface)
- 		addattr_l(n, sizeof(buf), RTA_IIF, iface, strlen(iface) + 1);
- 
-@@ -349,12 +351,12 @@ static int rule_mod(const char *iface, i
-  * negative otherwise.
-  **/
- int rule_add(const char *iface, uint8_t table,
--	     uint32_t priority, uint8_t action,
-+	     uint32_t priority, uint32_t fwmark, uint8_t action,
- 	     const struct in6_addr *src, int src_plen,
- 	     const struct in6_addr *dst, int dst_plen, int flags)
- {
- 	return rule_mod(iface, RTM_NEWRULE, table,
--			priority, action,
-+			priority, fwmark, action,
- 			src, src_plen, dst, dst_plen, flags);
- }
- 
-@@ -370,12 +372,12 @@ int rule_add(const char *iface, uint8_t 
-  * otherwise.
-  **/
- int rule_del(const char *iface, uint8_t table,
--	     uint32_t priority, uint8_t action,
-+	     uint32_t priority, uint32_t fwmark, uint8_t action,
- 	     const struct in6_addr *src, int src_plen,
- 	     const struct in6_addr *dst, int dst_plen, int flags)
- {
- 	return rule_mod(iface, RTM_DELRULE, table,
--			priority, action,
-+			priority, fwmark, action,
- 			src, src_plen, dst, dst_plen, flags);
- }
- 
-diff -r 82fcd4bea972 src/rtnl.h
---- a/src/rtnl.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/rtnl.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -17,11 +17,14 @@
- #define IP6_RT_PRIO_ADDRCONF 256
- 
- #define IP6_RULE_PRIO_MIP6_MNP_IN    1000
--#define IP6_RULE_PRIO_MIP6_HOA_OUT   1001
--#define IP6_RULE_PRIO_MIP6_COA_OUT   1002
--#define IP6_RULE_PRIO_MIP6_BLOCK     1003
--#define IP6_RULE_PRIO_MIP6_BLOCK_HOA 1004
--#define IP6_RULE_PRIO_MIP6_FWD       1005
-+#define IP6_RULE_PRIO_MIP6_HOA_OUT_MCOA   1001
-+#define IP6_RULE_PRIO_MIP6_HOA_OUT   1002
-+#define IP6_RULE_PRIO_MIP6_COA_OUT   1003
-+#define IP6_RULE_PRIO_MIP6_BLOCK     1004
-+#define IP6_RULE_PRIO_MIP6_BLOCK_HOA 1005
-+#define IP6_RULE_PRIO_MIP6_FWD_FWM   1006
-+#define IP6_RULE_PRIO_MIP6_FWD_MCOA  1007
-+#define IP6_RULE_PRIO_MIP6_FWD       1008
- 
- static inline int rtnl_route_open(struct rtnl_handle *rth, 
- 				  unsigned subscriptions)
-@@ -74,12 +77,12 @@ int route_del(int oif, uint8_t table, ui
- 	      const struct in6_addr *gateway);
- 
- int rule_add(const char *iface, uint8_t table,
--	     uint32_t priority, uint8_t action,
-+	     uint32_t priority, uint32_t fwmark, uint8_t action,
- 	     const struct in6_addr *src, int src_plen,
- 	     const struct in6_addr *dst, int dst_plen, int flags);
- 
- int rule_del(const char *iface, uint8_t table,
--	     uint32_t priority, uint8_t action,
-+	     uint32_t priority, uint32_t fwmark, uint8_t action,
- 	     const struct in6_addr *src, int src_plen,
- 	     const struct in6_addr *dst, int dst_plen,int flags);
- 
-diff -r 82fcd4bea972 src/scan.l
---- a/src/scan.l	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/scan.l	Fri Jan 11 17:02:25 2008 +0100
-@@ -137,7 +137,15 @@ MnDiscardHaParamProb		{ return MNDISCARD
- MnDiscardHaParamProb		{ return MNDISCARDHAPARAMPROB; }
- OptimisticHandoff		{ return OPTIMISTICHANDOFF; }
- HaAcceptMobRtr   		{ return HAACCEPTMOBRTR; }
-+HaAcceptMCoAReg			{ return HAACCEPTMCOAREG; }
-+MCoAReg				{ return MCOAREG; }
-+NoMCoAReg			{ return NOMCOAREG; }
- IsMobRtr       			{ return ISMOBRTR; }
-+Bid				{ return BID; }
-+BidPriority			{ return BIDPRIORITY; }
-+Reliable			{ return RELIABLE; }
-+RegMultipleCoA			{ return REGMULTIPLECOA; }
-+IfMultipleCoA			{ return IFMULTIPLECOA; }
- HaServedPrefix       	       	{ return HASERVEDPREFIX; }
- HomePrefix     			{ return HOMEPREFIX; }
- MobRtrUseExplicitMode    	{ return MOBRTRUSEEXPLICITMODE; }
-diff -r 82fcd4bea972 src/tunnelctl.c
---- a/src/tunnelctl.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/tunnelctl.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -157,7 +157,7 @@ static int __tunnel_del(struct mip6_tnl 
- 	if (tnl->users == 0) {
- 		struct ifreq ifr;
- 		list_del(&tnl->list);
--		hash_delete(&tnl_hash, &tnl->parm.laddr, &tnl->parm.raddr);
-+		hash_delete(&tnl_hash, &tnl->parm.laddr, &tnl->parm.raddr, 0);
- 		strcpy(ifr.ifr_name, tnl->parm.name);
- 		if ((res = ioctl(tnl_fd, SIOCDELTUNNEL, &ifr)) < 0) {
- 			TDBG("SIOCDELTUNNEL failed status %d %s\n", 
-@@ -249,7 +249,7 @@ static struct mip6_tnl *__tunnel_add(str
- 		TDBG("no device called %s\n", tnl->parm.name);
- 		goto err;
- 	}
--	if (hash_add(&tnl_hash, tnl, &tnl->parm.laddr, &tnl->parm.raddr) < 0)
-+	if (hash_add(&tnl_hash, tnl, &tnl->parm.laddr, &tnl->parm.raddr, NULL) < 0)
- 		goto err;
- 	
- 	list_add_tail(&tnl->list, &tnl_list);
-@@ -287,7 +287,7 @@ int tunnel_add(struct in6_addr *local,
- 	int res;
- 
- 	pthread_mutex_lock(&tnl_lock);
--	if ((tnl = hash_get(&tnl_hash, local, remote)) != NULL) { 
-+	if ((tnl = hash_get(&tnl_hash, local, remote, 0)) != NULL) { 
- 		tnl->users++;
- 		TDBG("tunnel %s (%d) from %x:%x:%x:%x:%x:%x:%x:%x "
- 		     "to %x:%x:%x:%x:%x:%x:%x:%x user count increased to %d\n",
-@@ -339,9 +339,10 @@ static int __tunnel_mod(struct mip6_tnl 
- 		     errno, strerror(errno));
- 		return -1;
- 	}
--	hash_delete(&tnl_hash, &tnl->parm.laddr, &tnl->parm.raddr);
-+	hash_delete(&tnl_hash, &tnl->parm.laddr, &tnl->parm.raddr, 0);
- 	memcpy(&tnl->parm, &parm, sizeof(struct ip6_tnl_parm));
--	if (hash_add(&tnl_hash, tnl, &tnl->parm.laddr, &tnl->parm.raddr) < 0) {
-+	if (hash_add(&tnl_hash, tnl, &tnl->parm.laddr, 
-+		     &tnl->parm.raddr, NULL) < 0) {
- 		free(tnl);
- 		return -1;
- 	}
-@@ -387,7 +388,7 @@ int tunnel_mod(int ifindex,
- 	old = get_tnl(ifindex);
- 	assert(old != NULL);
- 
--	if ((new = hash_get(&tnl_hash, local, remote)) != NULL) {
-+	if ((new = hash_get(&tnl_hash, local, remote, 0)) != NULL) {
- 		if (new != old) {
- 			new->users++;
- 			TDBG("tunnel %s (%d) from %x:%x:%x:%x:%x:%x:%x:%x "
-@@ -448,7 +449,7 @@ static int tnl_cleanup(void *data, void 
- {
- 	struct mip6_tnl *tnl = (struct mip6_tnl *) data;
- 	list_del(&tnl->list);
--	hash_delete(&tnl_hash, &tnl->parm.laddr, &tnl->parm.raddr);
-+	hash_delete(&tnl_hash, &tnl->parm.laddr, &tnl->parm.raddr, 0);
- 	free(tnl);
- 	return 0;
- }
-diff -r 82fcd4bea972 src/vt.c
---- a/src/vt.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/vt.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -428,6 +428,12 @@ static int bul_vt_dump(void *data, void 
- 		fprintf(vh->vh_stream, " last_coa %x:%x:%x:%x:%x:%x:%x:%x",
- 			  NIP6ADDR(&bule->last_coa));
- 
-+		if (bule->bid) {
-+			fprintf(vh->vh_stream, " BID %d", bule->bid);
-+			fprintf(vh->vh_stream, " BidPriority %d", 
-+				bule->priority);
-+		}
-+
- 		fprintf(vh->vh_stream, "\n");
- 
- 		if (!(bule->flags & IP6_MH_BU_HOME)) {
-@@ -579,6 +585,11 @@ static int bcache_vt_dump(void *data, vo
- 
- 	fprintf(vh->vh_stream, " coa %x:%x:%x:%x:%x:%x:%x:%x",
- 		NIP6ADDR(&bce->coa));
-+
-+	if (bce->bid) {
-+		fprintf(vh->vh_stream, " BID %d", bce->bid);
-+		fprintf(vh->vh_stream, " BidPriority %d", bce->priority);
-+	}
- 
- 	if (vh->vh_opt.verbose == VT_BOOL_TRUE)
- 		fprintf(vh->vh_stream, " nonce %u", bce->nonce_coa);
-diff -r 82fcd4bea972 src/xfrm.c
---- a/src/xfrm.c	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/xfrm.c	Fri Jan 11 17:02:25 2008 +0100
-@@ -56,7 +56,7 @@
- #include "conf.h"
- #include "ipsec.h"
- 
--#define XFRM_DEBUG_LEVEL 1
-+#define XFRM_DEBUG_LEVEL 2
- 
- #if XFRM_DEBUG_LEVEL >= 1
- #define XDBG dbg
-@@ -1555,7 +1555,7 @@ static int xfrm_bule_bce_update(const st
- 	int res = -1;
- 	pthread_rwlock_rdlock(&mn_lock);
- 	if ((hai = mn_get_home_addr(our_addr)) != NULL) {
--		if ((e = bul_get(hai, NULL, peer_addr)) != NULL) {
-+		if ((e = bul_get(hai, NULL, peer_addr, MCOA_NO_BID)) != NULL) {
- 			if (e->type == BUL_ENTRY &&
- 			    !_xfrm_add_bule_bce(our_addr, peer_addr, replace))
- 				res = 0;
-@@ -1582,30 +1582,34 @@ int xfrm_add_bce(const struct in6_addr *
- int xfrm_add_bce(const struct in6_addr *our_addr,
- 		 const struct in6_addr *peer_addr,
- 		 const struct in6_addr *coa,
--		 int replace)
-+		 int replace,
-+		 int create)
- {
- 	struct xfrm_selector sel;
- 
- 	/* Create policy for outbound RO data traffic */
--	set_selector(peer_addr, our_addr, 0, 0, 0, 0, &sel);
--	if (xfrm_state_add(&sel, IPPROTO_ROUTING, coa, replace, 0)){
--		/* 
--		 * WORKAROUND 
--		 * In some cases, MN fail to add it because of the state
--		 * inserted by kernel when notifying aquire. So,update it.
--		 */
--		if (xfrm_state_add(&sel, IPPROTO_ROUTING, coa, 1, 0))
--			return -1;
--	}
--	set_selector(our_addr, peer_addr, 0, 0, 0, 0, &sel);
--	if (xfrm_state_add(&sel, IPPROTO_DSTOPTS, coa, replace, 0)){
--		/* 
--		 * WORKAROUND 
--		 * In some cases, MN fail to add it because of the state
--		 * inserted by kernel when notifying aquire. So,update it.
--		 */
--		if (xfrm_state_add(&sel, IPPROTO_DSTOPTS, coa, 1, 0))
--		return -1;
-+	if (create || replace) {
-+		set_selector(peer_addr, our_addr, 0, 0, 0, 0, &sel);
-+		if (xfrm_state_add(&sel, IPPROTO_ROUTING, coa, replace, 0)){
-+			/* 
-+			 * WORKAROUND 
-+			 * In some cases, MN fail to add it because of the state
-+			 * inserted by kernel when notifying aquire. So,update it.
-+			 */
-+			if (xfrm_state_add(&sel, IPPROTO_ROUTING, coa, 1, 0))
-+				return -1;
-+		}
-+	
-+		set_selector(our_addr, peer_addr, 0, 0, 0, 0, &sel);
-+		if (xfrm_state_add(&sel, IPPROTO_DSTOPTS, coa, replace, 0)){
-+			/* 
-+			 * WORKAROUND 
-+			 * In some cases, MN fail to add it because of the state
-+			 * inserted by kernel when notifying aquire. So,update it.
-+			 */
-+			if (xfrm_state_add(&sel, IPPROTO_DSTOPTS, coa, 1, 0))
-+				return -1;
-+		}
- 	}
- 	if (is_mn() && !xfrm_bule_bce_update(our_addr, peer_addr, replace))
- 		return 0;
-@@ -1614,7 +1618,8 @@ int xfrm_add_bce(const struct in6_addr *
- 				       _ha_mn_ipsec_pol_mod, NULL) < 0)
- 			return -1;
- 	}
--	_xfrm_add_bce(our_addr, peer_addr, replace);
-+	if (create || replace)
-+		_xfrm_add_bce(our_addr, peer_addr, replace);
- 	return 0;
- }
- 
-@@ -1643,7 +1648,7 @@ void xfrm_del_bce(const struct in6_addr 
- 		/* for MN-MN communications, checking BUL to insert RO policy */
- 		pthread_rwlock_rdlock(&mn_lock);
- 		if ((hai = mn_get_home_addr(our_addr)) != NULL) {
--			if ((e = bul_get(hai, NULL, peer_addr)) != NULL) {
-+			if ((e = bul_get(hai, NULL, peer_addr, MCOA_NO_BID)) != NULL) {
- 				if (e->type == BUL_ENTRY)
- 			    	_xfrm_add_bule_bce(our_addr, peer_addr, 0);
- 			}
-@@ -1736,7 +1741,7 @@ static int _xfrm_bce_reset(struct bulent
- static int _xfrm_bce_reset(struct bulentry *bule)
- {
- 	/* for MN - MN communication */
--	struct bcentry *bce = bcache_get(&bule->hoa, &bule->peer_addr);
-+	struct bcentry *bce = bcache_get(&bule->hoa, &bule->peer_addr, MCOA_NO_BID);
- 	int res = 0;
- 	if (!bce)
- 		return 0;
-@@ -1754,21 +1759,34 @@ static int _xfrm_del_bule_data(struct bu
- static int _xfrm_del_bule_data(struct bulentry *bule)
- {
- 	struct xfrm_selector sel;
-+	int bule_exists = mcoa_bule_count(bule);
- 	int prio;
- 
--	set_selector(&bule->peer_addr, &bule->hoa, 0, 0, 0, 0, &sel);
--	xfrm_state_del(IPPROTO_DSTOPTS,  &sel);
-+	/* MCoA
-+	 * XFRM states are deleted only when the last BULE for 
-+	 * the same peer is deleted, or when returning home
-+	 */
-+	if (!bule_exists || !bule->home->reg_mcoa || bule->home->at_home) {
-+		XDBG2("Last entry for the peer, deleting XFRM states\n");
-+		set_selector(&bule->peer_addr, &bule->hoa, 0, 0, 0, 0, &sel);
-+		xfrm_state_del(IPPROTO_DSTOPTS, &sel);
-+	}
- 
- 	if (bule->home->home_reg_status != HOME_REG_NONE && 
- 	    mn_has_cn_ro_pol(bule)) {
- 		struct xfrm_user_tmpl tmpl;
- 		create_trig_dstopt_tmpl(&tmpl, &bule->peer_addr, &bule->hoa);
-+		/* MCoA: replaced bule->home->if_tunnel with bule->if_tunnel */
- 		set_selector(&bule->peer_addr, &bule->hoa,
--			     0, 0, 0, bule->home->if_tunnel, &sel);
-+			     0, 0, 0, bule->if_tunnel, &sel);
- 		xfrm_mip_policy_add(&sel, 1, XFRM_POLICY_OUT,
- 				    XFRM_POLICY_ALLOW, MIP6_PRIO_RO_TRIG, &tmpl, 1);
--	} else
--		_mn_bule_ro_pol_del(bule, bule->home->if_tunnel);
-+	} else if(!bule_exists || !bule->home->reg_mcoa || bule->home->at_home) {
-+		/* MCoA: policies deleted only if this is the last BULE 
-+		 * for the same peer, or when returning home */
-+		/* MCoA: replaced bule->home->if_tunnel with bule->if_tunnel */
-+		_mn_bule_ro_pol_del(bule, bule->if_tunnel);
-+	}
- 
- 	if (!(bule->flags & IP6_MH_BU_HOME))
- 		_xfrm_bce_reset(bule);
-@@ -1779,20 +1797,25 @@ static int _xfrm_del_bule_data(struct bu
- 	/* MN - CN/HA case, BU out */
- 	prio = (bule->flags & IP6_MH_BU_HOME ?
- 		MIP6_PRIO_HOME_SIG : MIP6_PRIO_RO_SIG);
--	if (bule->flags & IP6_MH_BU_ACK) {
-+	if ((bule->flags & IP6_MH_BU_ACK) 
-+	    && (!bule_exists ||	!bule->home->reg_mcoa 
-+		|| bule->home->at_home)) {
- 		set_selector(&bule->hoa, &bule->peer_addr, IPPROTO_MH,
- 			     IP6_MH_TYPE_BACK, 0, 0, &sel);
- 		if (xfrm_mip_policy_add(&sel, 1, XFRM_POLICY_IN,
- 					XFRM_POLICY_ALLOW, prio, NULL, 0))
- 			return -1;
- 	}
--	set_selector(&bule->peer_addr, &bule->hoa, IPPROTO_MH,
--		     IP6_MH_TYPE_BU, 0, 0, &sel);
--	if (xfrm_mip_policy_add(&sel, 1, XFRM_POLICY_OUT,
--				XFRM_POLICY_ALLOW, prio, NULL, 0))
--		return -1;
-+	if (!bule_exists || !bule->home->reg_mcoa 
-+	    || bule->home->at_home) {
-+		set_selector(&bule->peer_addr, &bule->hoa, IPPROTO_MH,
-+			     IP6_MH_TYPE_BU, 0, 0, &sel);
-+		if (xfrm_mip_policy_add(&sel, 1, XFRM_POLICY_OUT, 
-+				    XFRM_POLICY_ALLOW, prio, NULL, 0))
-+			return -1;
-+		bule->xfrm_state &= ~BUL_XFRM_STATE_DATA;
-+	}
- 
--	bule->xfrm_state &= ~BUL_XFRM_STATE_DATA;
- 	return 0;
- }
- 
-@@ -1817,7 +1840,14 @@ void xfrm_del_bule(struct bulentry *bule
- {
- 	if (bule->xfrm_state & BUL_XFRM_STATE_DATA)
- 		_xfrm_del_bule_data(bule);
--	_xfrm_del_bule_sig(bule);
-+	/* MCoA
-+	 * XFRM policies are deleted only when the last BULE for the 
-+	 * same peer is deleted, or when returning home
-+	 */
-+	if (mcoa_bule_count(bule) == 0 || bule->home->at_home) {
-+		XDBG2("Last entry for the peer, deleting XFRM policies\n");
-+		_xfrm_del_bule_sig(bule);
-+	}
- }
- 
- /* before sending BU, MN should insert policy/state only for BU/BA */
-@@ -1829,14 +1859,26 @@ int xfrm_pre_bu_add_bule(struct bulentry
- 	int rdata = bule->xfrm_state & BUL_XFRM_STATE_DATA;
- 	int prio;
- 	int exist = 0;
-+	int bule_count = mcoa_bule_count(bule);
- 
- 	if (bule->flags & IP6_MH_BU_HOME) {
- 		struct home_addr_info *hai = bule->home;
- 		if (hai->home_block & HOME_LINK_BLOCK)
- 			xfrm_unblock_link(hai);
--		xfrm_block_link(hai);
--		if (hai->mob_rtr && !(hai->home_block & NEMO_FWD_BLOCK))
--			xfrm_block_fwd(hai);
-+		if (bule->home_block & HOME_LINK_BLOCK)
-+			xfrm_unblock_bule_link(bule);
-+		if (!hai->reg_mcoa)
-+			xfrm_block_link(hai);
-+		else
-+			xfrm_block_bule_link(bule);
-+		if (hai->mob_rtr) {
-+			if (!hai->reg_mcoa && 
-+			    !(hai->home_block & NEMO_FWD_BLOCK))
-+				xfrm_block_fwd(hai);
-+			else if (hai->reg_mcoa &&
-+			         !(bule->home_block & NEMO_FWD_BLOCK))
-+				bule_block_fwd(bule);
-+		}
- 	}
- 	if (IN6_ARE_ADDR_EQUAL(&bule->hoa, &bule->coa)) {
- 		if (rdata)
-@@ -1850,25 +1892,32 @@ int xfrm_pre_bu_add_bule(struct bulentry
- 			return -1;
- 	}
- 	/* MN - CN/HA case, BU out */
--	prio = (bule->flags & IP6_MH_BU_HOME ?
--		MIP6_PRIO_HOME_SIG : MIP6_PRIO_RO_SIG);
--	if (bule->flags & IP6_MH_BU_ACK) {
--		create_rh_tmpl(&tmpl);
--		set_selector(&bule->hoa, &bule->peer_addr, IPPROTO_MH,
--			     IP6_MH_TYPE_BACK, 0, 0, &sel);
--		if (xfrm_mip_policy_add(&sel, rsig, XFRM_POLICY_IN,
-+	if (bule_count == 1) {
-+		/* MCoA
-+		 * If another BULE already exists for this HoA/HA addr
-+		 * we do not need to install the policies once again
-+		 */
-+		prio = (bule->flags & IP6_MH_BU_HOME ?
-+			MIP6_PRIO_HOME_SIG : MIP6_PRIO_RO_SIG);
-+		if (bule->flags & IP6_MH_BU_ACK) {
-+			create_rh_tmpl(&tmpl);
-+			set_selector(&bule->hoa, &bule->peer_addr, IPPROTO_MH,
-+				     IP6_MH_TYPE_BACK, 0, 0, &sel);
-+			if (xfrm_mip_policy_add(&sel, rsig, XFRM_POLICY_IN,
-+						XFRM_POLICY_ALLOW, prio, &tmpl, 1))
-+				return -1;
-+		}
-+		create_dstopt_tmpl(&tmpl, &bule->peer_addr, &bule->hoa);
-+		set_selector(&bule->peer_addr, &bule->hoa, IPPROTO_MH,
-+		     IP6_MH_TYPE_BU, 0, 0, &sel);
-+		if (xfrm_mip_policy_add(&sel, rsig, XFRM_POLICY_OUT,
- 					XFRM_POLICY_ALLOW, prio, &tmpl, 1))
- 			return -1;
- 	}
--	create_dstopt_tmpl(&tmpl, &bule->peer_addr, &bule->hoa);
--	set_selector(&bule->peer_addr, &bule->hoa, IPPROTO_MH,
--		     IP6_MH_TYPE_BU, 0, 0, &sel);
--	if (xfrm_mip_policy_add(&sel, rsig, XFRM_POLICY_OUT,
--				XFRM_POLICY_ALLOW, prio, &tmpl, 1))
--		return -1;
- 
- 	if (!(bule->flags & IP6_MH_BU_HOME)) {
--		struct bcentry *bce = bcache_get(&bule->hoa, &bule->peer_addr);
-+		struct bcentry *bce = bcache_get(&bule->hoa, &bule->peer_addr, 
-+						 MCOA_NO_BID);
- 		if (bce) {
- 			if (bce->type >  BCE_NONCE_BLOCK &&
- 			    _xfrm_add_bce(&bule->hoa, &bule->peer_addr, 1)) {
-@@ -1879,11 +1928,16 @@ int xfrm_pre_bu_add_bule(struct bulentry
- 			exist = 1;
- 		}
- 	}
--	if(!exist &&_mn_bule_ro_pol_add(bule, bule->home->if_tunnel, rdata))
-+	/* MCoA: Replaced bule->home->if_tunnel with bule->if_tunnel */
-+	if(!exist && bule_count == 1
-+	   && _mn_bule_ro_pol_add(bule, bule->if_tunnel, rdata))
- 		return -1;
- 	set_selector(&bule->peer_addr, &bule->hoa, 0, 0, 0, 0, &sel);
- 	/* XXX: acquired state is already inserted */
--	if (!(bule->flags & IP6_MH_BU_HOME)) {
-+	/* MCoA: Add the states if there is only 1 BCE for the peer,
-+	 * otherwise just update the CoA
-+	 */
-+	if (!(bule->flags & IP6_MH_BU_HOME) || mcoa_bule_count(bule) > 1) {
- 		XDBG2("%s: original rdata = %d\n", __FUNCTION__, rdata);
- 		rdata = 1;
- 	}
-@@ -1902,15 +1956,20 @@ int xfrm_post_ba_mod_bule(struct bulentr
- 		struct home_addr_info *hai = bule->home;
- 		if (hai->home_block & HOME_LINK_BLOCK)
- 			xfrm_unblock_link(hai);
-+		if (bule->home_block & HOME_LINK_BLOCK)
-+			xfrm_unblock_bule_link(bule);
- 		if (hai->home_block & NEMO_FWD_BLOCK)
- 			xfrm_unblock_fwd(hai);
-+		if (bule->home_block & NEMO_FWD_BLOCK)
-+			bule_unblock_fwd(bule);
- 	}
- 	/* check if XFRM policies and states have already been cleaned up */
- 	if (IN6_ARE_ADDR_EQUAL(&bule->hoa, &bule->coa))
- 		return 0;
- 
- 	if (!(bule->flags & IP6_MH_BU_HOME)) {
--		struct bcentry *bce = bcache_get(&bule->hoa, &bule->peer_addr);
-+		struct bcentry *bce = bcache_get(&bule->hoa, &bule->peer_addr,
-+						 MCOA_NO_BID);
- 		if (bce) {
- 			if (bce->type >  BCE_NONCE_BLOCK &&
- 			    _xfrm_add_bule_bce(&bule->hoa,
-@@ -1925,11 +1984,27 @@ int xfrm_post_ba_mod_bule(struct bulentr
- 	}
- 	prio = (bule->flags & IP6_MH_BU_HOME ?
- 		MIP6_PRIO_HOME_DATA : MIP6_PRIO_RO_BULE_DATA);
--	set_selector(&bule->peer_addr, &bule->hoa, 0, 0, 0,
--		     bule->home->if_tunnel, &sel);
--	create_dstopt_tmpl(&tmpls[0], &bule->peer_addr, &bule->hoa);
--	ret = xfrm_mip_policy_add(&sel, 1, XFRM_POLICY_OUT,
--				   XFRM_POLICY_ALLOW, prio, tmpls, 1);
-+
-+	/* MCoA: Replaced bule->home->if_tunnel with bule->if_tunnel */
-+	set_selector(&bule->peer_addr, &bule->hoa, 0, 0, 0, 
-+		     bule->if_tunnel, &sel);
-+
-+	/* MCoA TODO1: to update according to the latest draft.
-+	 * When MCoA is used, do not use HAO dest. option 
-+	 * for traffic from the MN/MR to the HA. Tunnel packets 
-+	 * instead.
-+	 */
-+	if(bule->home->reg_mcoa) {
-+		ret = xfrm_mip_policy_add(&sel, 1, XFRM_POLICY_OUT, 
-+					   XFRM_POLICY_ALLOW, prio, 
-+					   NULL, 0);
-+	} else {
-+		create_dstopt_tmpl(&tmpls[0], &bule->peer_addr, &bule->hoa);
-+		ret = xfrm_mip_policy_add(&sel, 1, XFRM_POLICY_OUT,
-+					  XFRM_POLICY_ALLOW, prio, 
-+					  tmpls, 1);
-+	}
-+
- 	if (ret)
- 		XDBG("failed to insert outbound policy\n");
- 
-@@ -2126,6 +2201,31 @@ void xfrm_cleanup(void)
- 	xfrm_cn_cleanup();
- }
- 
-+/* blocking all payload packets from MN via a specific interface */
-+int xfrm_block_bule_link(struct bulentry *bule)
-+{
-+	int ret = 0;
-+	struct xfrm_selector sel;
-+	bule->home_block |= HOME_LINK_BLOCK;
-+	/* allow MN to send NA messages */
-+	/* RK: such policy is already installed in xfrm_cn_init at startup,
-+	 * so we update it (update field to 1) */
-+	set_selector(&in6addr_any, &in6addr_any, IPPROTO_ICMPV6, 
-+		     ND_NEIGHBOR_ADVERT, 0, bule->if_coa, &sel);
-+	if ((ret = xfrm_mip_policy_add(&sel, 1 /* update */, XFRM_POLICY_OUT, 
-+				       XFRM_POLICY_ALLOW,
-+				       MIP6_PRIO_HOME_SIG_ANY, NULL, 0)))
-+		return ret;
-+
-+	/* block any packets from HoA to the CN */
-+	set_selector(&in6addr_any, &in6addr_any, 0, 0, 0, bule->if_coa, &sel);
-+	if ((ret = xfrm_mip_policy_add(&sel, 0, XFRM_POLICY_OUT, 
-+				   XFRM_POLICY_BLOCK,
-+				   MIP6_PRIO_HOME_BLOCK, NULL, 0)))
-+		return ret;
-+	return ret;
-+}
-+
- /* blocking all payload packets from MN */
- int xfrm_block_link(struct home_addr_info *hai)
- {
-@@ -2141,6 +2241,21 @@ int xfrm_block_link(struct home_addr_inf
- 				       MIP6_PRIO_HOME_BLOCK, NULL, 0)))
- 		return ret;
- 	return ret;
-+}
-+
-+void xfrm_unblock_bule_link(struct bulentry *bule)
-+{
-+	struct xfrm_selector sel;
-+	set_selector(&in6addr_any, &in6addr_any, 0, 0, 0, bule->if_coa, &sel);
-+	xfrm_mip_policy_del(&sel, XFRM_POLICY_OUT);
-+	/* RK: instead of deleting the policy, update it to its previous state 
-+	 * (the one installed in xfrm_cn_init) */
-+	set_selector(&in6addr_any, &in6addr_any, IPPROTO_ICMPV6, 
-+		     ND_NEIGHBOR_ADVERT, 0, 0, &sel);
-+	if (xfrm_mip_policy_add(&sel, 1 /* update */, XFRM_POLICY_OUT, XFRM_POLICY_ALLOW,
-+				MIP6_PRIO_NO_RO_SIG_ANY, NULL, 0) < 0)
-+		XDBG("Could not update NA policy\n");
-+	bule->home_block &= ~HOME_LINK_BLOCK;
- }
- 
- void xfrm_unblock_link(struct home_addr_info *hai)
-diff -r 82fcd4bea972 src/xfrm.h
---- a/src/xfrm.h	Fri Jan 11 16:55:08 2008 +0100
-+++ b/src/xfrm.h	Fri Jan 11 17:02:25 2008 +0100
-@@ -51,7 +51,8 @@ int xfrm_add_bce(const struct in6_addr *
- int xfrm_add_bce(const struct in6_addr *our_addr,
- 		 const struct in6_addr *peer_addr,
- 		 const struct in6_addr *coa,
--		 int replace);
-+		 int replace,
-+		 int create);
- 
- void xfrm_del_bce(const struct in6_addr *our_addr,
- 		  const struct in6_addr *peer_addr);
-@@ -82,7 +83,9 @@ int cn_wildrecv_bu_pol_add(void);
- int cn_wildrecv_bu_pol_add(void);
- void cn_wildrecv_bu_pol_del(void);
- 
-+int xfrm_block_bule_link(struct bulentry *bule);
- int xfrm_block_link(struct home_addr_info *hai);
-+void xfrm_unblock_bule_link(struct bulentry *bule);
- void xfrm_unblock_link(struct home_addr_info *hai);
- 
- int xfrm_block_hoa(struct home_addr_info *hai);
diff --git a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-sho-20080331.patch b/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-sho-20080331.patch
deleted file mode 100755
index 50da24d540..0000000000
--- a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4-sho-20080331.patch
+++ /dev/null
@@ -1,978 +0,0 @@
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/extras/mr_mcoa_sho_UMIP.conf mipv6-daemon-umip-0.4-nepl-mcoa-sho/extras/mr_mcoa_sho_UMIP.conf
---- mipv6-daemon-umip-0.4-nepl-mcoa/extras/mr_mcoa_sho_UMIP.conf	1970-01-01 01:00:00.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/extras/mr_mcoa_sho_UMIP.conf	2008-03-31 17:06:27.000000000 +0200
-@@ -0,0 +1,67 @@
-+# This is an example of mip6d Mobile Node configuration file
-+
-+NodeConfig MN;
-+
-+## If set to > 0, will not detach from tty
-+DebugLevel 10;
-+
-+## Support route optimization with other MNs
-+DoRouteOptimizationCN disabled;
-+
-+## Use route optimization with CNs
-+DoRouteOptimizationMN disabled;
-+
-+UseCnBuAck disabled;
-+
-+Interface "eth0" { 
-+	Bid 100;
-+	BidPriority 1;
-+	Reliable false;
-+	DefaultDelay 5000;
-+}
-+
-+Interface "eth1" { 
-+	Bid 200;
-+	BidPriority 1;
-+	Reliable true;
-+	DefaultDelay 0;
-+}
-+
-+MnRouterProbes 1;
-+
-+MnHomeLink "eth0" {
-+	IsMobRtr enabled;
-+	MnUseSHO enabled;
-+#	MnUseSHO disabled;  
-+	MnUseAdaptiveCombining enabled;
-+#	MnUseAdaptiveCombining disabled;
-+	HomeAgentAddress 2001:4::1;
-+	HomeAddress 2001:4::4/64 (2001:4:0:2::/64);
-+	RegMultipleCoA enabled;
-+	IfMultipleCoA "eth0", "eth1";
-+
-+	#		proto	type	code	route opt.
-+#	MnRoPolicy 	ICMP	129	0	enabled;
-+#	MnRoPolicy 	ICMP	any	any	disabled;
-+	#		proto	dst	src	route opt.
-+#	MnRoPolicy 	TCP	80	any	enabled; 
-+#	MnRoPolicy 	TCP	any	any	disabled; 
-+}
-+
-+##
-+## IPsec configuration
-+##
-+
-+UseMnHaIPsec disabled;
-+
-+## Key Management Mobility Capability
-+KeyMngMobCapability disabled;
-+
-+IPsecPolicySet {
-+	HomeAgentAddress 3ffe:2620:6:1::1;
-+	HomeAddress 3ffe:2620:6:1::1234/64;
-+
-+	IPsecPolicy HomeRegBinding UseESP;
-+	IPsecPolicy MobPfxDisc UseESP;
-+	IPsecPolicy TunnelMh UseESP;
-+}
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/include/netinet/ip6mh.h mipv6-daemon-umip-0.4-nepl-mcoa-sho/include/netinet/ip6mh.h
---- mipv6-daemon-umip-0.4-nepl-mcoa/include/netinet/ip6mh.h	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/include/netinet/ip6mh.h	2008-03-20 17:02:41.000000000 +0100
-@@ -157,6 +157,25 @@
- 	uint8_t ip6mobid_reserved;
- } __attribute__((packed));
- 
-+/* NEMO-SHO */
-+struct ip6_mh_opt_fid {
-+	uint8_t ip6fid_type;
-+	uint8_t ip6fid_len;
-+	uint8_t ip6fid_flags_high;
-+	uint8_t ip6fid_flags_low;
-+	uint8_t ip6fid_fid;
-+	uint8_t ip6fid_action;
-+	uint8_t ip6fid_status;
-+	uint8_t ip6fid_pro_cls;
-+} __attribute__((packed));
-+
-+struct ip6_mh_opt_fid_subopt{
-+	uint8_t ip6fid_subopt_type;
-+	uint8_t ip6fid_subopt_len;
-+	uint8_t ip6fid_subopt_bid;
-+} __attribute__((packed));	
-+/* NEMO-SHO */
-+
- /* Binding Unique Identifier sub-option flags */
- #if BYTE_ORDER == BIG_ENDIAN
- #define IP6_OPT_BID_BULK		0x80  /*  Bulk Registration */
-@@ -187,6 +206,7 @@
- #define IP6_MHOPT_BAUTH		0x05	/* Binding Auth Data */
- #define IP6_MHOPT_MOB_NET_PRFX	0x06	/* Mobile Network Prefix */
- #define IP6_MHOPT_BID		0x07	/* Binding Unique Identifier */
-+#define IP6_MHOPT_FID		0x08	/* Flow Identification */
- 
- /*
-  *    Status values accompanied with Mobility Binding Acknowledgement
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/bul.c mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/bul.c
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/bul.c	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/bul.c	2008-03-20 16:55:16.000000000 +0100
-@@ -71,6 +71,7 @@
- 		bule->rules = 0;
- 		bule->home_block = 0;
- 		bule->mcoa_dereg = 1;
-+		bule->fid        = 0; /* NEMO-SHO */
- 		INIT_LIST_HEAD(&bule->tqe.list);
- 		bule->seq = random();
- 	}
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/bul.h mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/bul.h
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/bul.h	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/bul.h	2008-03-20 16:54:49.000000000 +0100
-@@ -43,6 +43,7 @@
- 	uint16_t seq;			/* sequence number of the latest BU */
- 	uint16_t flags;			/* BU send flags */
- 	uint16_t bid;			/* MCoA: Binding Identifier */
-+	uint8_t  fid;                   /* NEMO-SHO: Associated FID */
- 	struct in6_addr last_coa;	/* Last good coa */      
- 	struct timespec lastsent;
- 	struct timespec lifetime;      	/* lifetime sent in this BU */
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/cn.c mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/cn.c
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/cn.c	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/cn.c	2008-03-20 17:12:02.000000000 +0100
-@@ -301,7 +301,7 @@
- 		status = IP6_MH_BAS_ACCEPTED;
- 	}
- 	if (bu_flags & IP6_MH_BU_ACK)
--		mh_send_ba(&out, status, 0, seqno, &lft, 0, 0, key, iif);
-+		mh_send_ba(&out, status, 0, seqno, &lft, 0, 0, NULL, key, iif); /* NEMO-SHO */
- 	return;
- send_nack:
- 	if (bce) {
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/conf.c mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/conf.c
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/conf.c	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/conf.c	2008-03-21 15:29:32.000000000 +0100
-@@ -404,4 +404,27 @@
- 	}
- 	return priority;
- }
-+#if 1
-+// NEMO-SHO
-+/* 
-+ * get_bid_from_ifindex - return the bid from the interface index
-+ * @iif: the interface index
-+ */ 
-+uint16_t get_delay_from_bid(uint16_t bid)
-+{
-+	struct list_head *list;
-+
-+	list_for_each(list, &conf.net_ifaces) {
-+		struct net_iface *nif;
-+		nif = list_entry(list, struct net_iface, list);
-+		if (nif->mn_if_bid == bid) {
-+			if (is_if_mn(nif))
-+				return nif->mn_if_delay;
-+			return 0;
-+		}
-+	}
-+
-+	return 0;
-+}
-+#endif
- 
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/conf.h mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/conf.h
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/conf.h	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/conf.h	2008-03-21 15:27:52.000000000 +0100
-@@ -45,6 +45,8 @@
- 	char MnDiscardHaParamProb;
- 	char SendMobPfxSols;
- 	char OptimisticHandoff;
-+	char MnUseSHO;
-+	char UseAdaptiveCombining;
- 
- 	/* HA options */
- 	char HaAcceptMobRtr;
-@@ -70,6 +72,7 @@
- 	uint16_t mn_if_bid;
- 	uint8_t mn_if_bidprio;
- 	int mn_if_reliable;
-+	uint16_t mn_if_delay; /* NEMO-SHO option */
- };
- 
- extern struct mip6_config conf;
-@@ -127,6 +130,7 @@
- uint16_t get_bid_from_ifindex(int iif);
- uint8_t get_prio_from_bid(uint16_t bid);
- uint8_t get_highest_prio();
-+uint16_t get_delay_from_bid(uint16_t bid);
- 
- int yyparse(void);
- 
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/gram.y mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/gram.y
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/gram.y	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/gram.y	2008-03-21 15:49:44.000000000 +0100
-@@ -54,7 +54,8 @@
- 	.mn_if_preference = POL_MN_IF_DEF_PREFERENCE,
- 	.mn_if_bid = POL_MN_IF_DEF_BID,
- 	.mn_if_bidprio = POL_MN_IF_DEF_BID_PRIORITY,
--	.mn_if_reliable = POL_MN_IF_DEF_RELIABLE
-+	.mn_if_reliable = POL_MN_IF_DEF_RELIABLE,
-+	.mn_if_delay = POL_MN_IF_DEF_DELAY
- };
- 	
- struct home_addr_info hai = {
-@@ -196,8 +197,11 @@
- %token		BID
- %token		BIDPRIORITY
- %token		RELIABLE
-+%token          DEFAULTDELAY
- %token		REGMULTIPLECOA
- %token		IFMULTIPLECOA
-+%token		MNUSESHO
-+%token		MNUSEAPC
- 
- %token		INV_TOKEN
- 
-@@ -448,6 +452,20 @@
- 			}
- 			ni.mn_if_bidprio = $2;
- 		}
-+		| DEFAULTDELAY NUMBER ';'
-+		{
-+			if (ni.mn_if_preference) {
-+				uerror("You cannot set Default Delay if "
-+				       "MnIfPreference is set.");
-+				return -1;
-+			}		
-+			if ($2 < 0 || $2 > 65535) {
-+				uerror("DefDelay error "
-+				       "(%d <= BidPriority <= %d)",0, 65535);
-+				return -1;
-+			}
-+			ni.mn_if_delay = $2;
-+		}
- 		| RELIABLE BOOL ';'
- 		{
- 			ni.mn_if_reliable = $2;
-@@ -543,6 +561,14 @@
- 		{
- 			hai.reg_mcoa = $2;
- 		}
-+		| MNUSESHO BOOL ';'
-+		{
-+			conf.MnUseSHO = $2;
-+		}
-+		| MNUSEAPC BOOL ';'
-+		{
-+			conf.UseAdaptiveCombining = $2;
-+		}
- 		| IFMULTIPLECOA iflist ';'
- 		;
- 
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/ha.c mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/ha.c
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/ha.c	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/ha.c	2008-03-21 16:27:40.000000000 +0100
-@@ -60,6 +60,17 @@
- #include "ndisc.h"
- #include "prefix.h"
- 
-+/* NEMO-SHO CONFIG */
-+#define NEMO_SHO_LTOH // Enable in case of low speed to high speed 
-+#ifdef NEMO_SHO_LTOH
-+const static int NEMO_SHO_DEFAULT_DELAY1 = 0;    // msec
-+const static int NEMO_SHO_DEFAULT_DELAY2 = 1000; // msec
-+#else
-+const static int NEMO_SHO_DEFAULT_DELAY1 = 0;    // msec
-+const static int NEMO_SHO_DEFAULT_DELAY2 = 0;    // msec
-+#endif
-+/* NEMO-SHO CONFIG*/
-+
- #define HA_DEBUG_LEVEL 1
- 
- #if HA_DEBUG_LEVEL >= 1
-@@ -1007,6 +1018,12 @@
- 	struct home_tnl_ops_parm p;
- 	struct ip6_mh_opt_bid *bid_opt;	
- 
-+	/* NEMO-SHO */
-+	struct ip6_mh_opt_fid *fid_opt;
-+	struct ip6_mh_opt_fid_subopt *fid_opt_subopt;
-+	struct bcentry *bce_associated = NULL;
-+	/* NEMO-SHO */
-+
- 	pthread_dbg("thread started");
- restart:	
- 	home_ifindex = 0;
-@@ -1035,6 +1052,10 @@
- 		out.bind_coa = NULL;
- 	out.local_coa = NULL;
- 	bid_opt = NULL;
-+	/* NEMO-SHO */
-+	fid_opt = NULL;
-+	fid_opt_subopt = NULL;
-+	/* NEMO-SHO */
- 
- 	/* MCoA
- 	 * We check if a BCE already exists for this HoA 
-@@ -1322,6 +1343,85 @@
- 		}
- 		bcache_update_expire(bce);
- 	}
-+	/* NEMO-SHO */
-+	/* check if there is FID option */
-+	fid_opt = mh_opt(&arg->bu->ip6mhbu_hdr, 
-+			 &arg->mh_opts, 
-+			 IP6_MHOPT_FID);
-+	/* check if there is BID sub-option */
-+	if (fid_opt && (fid_opt->ip6fid_len > (sizeof(struct ip6_mh_opt_fid) - 2))){
-+		fid_opt_subopt = (struct ip6_mh_opt_fid_subopt*)(fid_opt+1);
-+		if (fid_opt_subopt->ip6fid_subopt_type == 1)
-+			MDBG("FID: BID Reference sub-option\n");
-+		else {
-+			MDBG("FID: Unknown sub-option. FID is not processed\n");
-+			fid_opt_subopt = NULL;
-+		}
-+	}
-+	
-+	if (fid_opt){
-+		MDBG("FID option (FID=%d) action=%d, status=%d, pro=%d, cls=%d\n",
-+		     fid_opt->ip6fid_fid, fid_opt->ip6fid_action, fid_opt->ip6fid_status,
-+		     (fid_opt->ip6fid_pro_cls & 0xF0) >> 4,
-+		     fid_opt->ip6fid_pro_cls & 0x0F);
-+		uint8_t action = fid_opt->ip6fid_action;
-+		switch ( fid_opt->ip6fid_pro_cls & 0xF0){
-+		case FBIND_ADD_FLOW:
-+			MDBG("FID: ADD FLOW\n");
-+			if ( (action == FBIND_ACTION_NCAST) ||
-+			     (action == FBIND_ACTION_NCAST_COMBINE )||
-+			     (action == FBIND_ACTION_NCAST_COMBINE_ADAP) ){
-+				int nemo_sho_flag = SHO_BICAST;
-+				if (conf.debug_level > 0)
-+					nemo_sho_flag |= SHO_DEBUG;
-+				if (action == FBIND_ACTION_NCAST_COMBINE)
-+					nemo_sho_flag |= SHO_COMBINING;
-+				else if (action == FBIND_ACTION_NCAST_COMBINE_ADAP)
-+					nemo_sho_flag |= (SHO_COMBINING|SHO_ADAPTIVE);
-+
-+				assert(fid_opt_subopt);
-+				MDBG("FID: ACTION NCAST (SHO_FLAG=%x)\n", nemo_sho_flag);
-+				// look up another bcache assigned to bid
-+				bce_associated = bcache_get(out.src, out.dst, 
-+							    fid_opt_subopt->ip6fid_subopt_bid);
-+				if (bce_associated){
-+					if (dtunnel_mod_type(bce->tunnel,
-+							     out.src, 
-+							     out.bind_coa, 
-+							     &bce_associated->coa,
-+							     0, // dummy
-+							     nemo_sho_flag,
-+							     1, /* HA to MN/MR */
-+							     NEMO_SHO_DEFAULT_DELAY1,
-+							     NEMO_SHO_DEFAULT_DELAY2
-+							     )< 0 ){
-+					}
-+					bcache_release_entry(bce_associated);
-+				}
-+				else 
-+					MDBG("FID: no other binding cache entry\n");
-+			}
-+			else 
-+				MDBG("FID: Unsupported Action\n");
-+			break;
-+		case FBIND_REMOVE_FLOW:
-+			MDBG("FID: REMOVE FLOW\n");
-+			dtunnel_mod_type(bce->tunnel,
-+					 out.src, 
-+					 out.bind_coa, 
-+					 0,
-+					 0, // dummy
-+					 0, // stop bicasting/combining
-+					 1  /* HA to MN/MR */,
-+					 0,
-+					 0);
-+			break;
-+		default:
-+			break;
-+		}
-+	}
-+	/* NEMO-SHO */
-+
- 	/* bce is always valid here */
- 	bcache_release_entry(bce);
- 	if (!tsisset(lft))
-@@ -1356,7 +1456,7 @@
- 
- 	if (!(arg->flags & HA_BU_F_SKIP_BA))
- 		mh_send_ba(&out, status, ba_flags, seqno, &lft,
--			   bid, bid_priority, NULL, iif);
-+			   bid, bid_priority, fid_opt, NULL, iif); /* NEMO-SHO */
- 	/* MCoA: Start MPA only if no entries yet for this HoA */	
- 	if (!bce_exists && new && tsisset(lft))
- 		mpd_start_mpa(&bce->our_addr, &bce->peer_addr);
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/mh.c mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/mh.c
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/mh.c	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/mh.c	2008-03-20 17:11:24.000000000 +0100
-@@ -479,6 +479,62 @@
- 	return 0;
- }
- 
-+/* NEMO-SHO
-+ * mh_create_opt_fid - Create a Flow Identifier Option
-+ * TODO1: (TBA)
-+ */
-+int mh_create_opt_fid(struct iovec *iov, 
-+		      uint8_t fid, uint8_t action, uint8_t status,
-+		      uint8_t priority,
-+		      uint8_t pro,
-+		      int fid_subopt,
-+		      uint8_t bid)
-+{
-+	int optlen = sizeof(struct ip6_mh_opt_fid) + 
-+		(fid_subopt?sizeof(struct ip6_mh_opt_fid_subopt):0);
-+	struct ip6_mh_opt_fid *opt_fid;
-+	struct ip6_mh_opt_fid_subopt *opt_fid_subopt;
-+	uint8_t *data;
-+	
-+	iov->iov_base = malloc(optlen);
-+	iov->iov_len = optlen;
-+
-+	if (iov->iov_base == NULL)
-+		return -ENOMEM;
-+
-+	memset(iov->iov_base, 0, iov->iov_len);
-+	data = (uint8_t *)iov->iov_base;
-+	
-+	opt_fid = (struct ip6_mh_opt_fid *)data;
-+
-+#define IP6_OPT_FID_R 0x80
-+#define IP6_OPT_FID_H 0x40
-+
-+	opt_fid->ip6fid_type = IP6_MHOPT_FID;
-+	opt_fid->ip6fid_len = fid_subopt?9:6; // NEMO-SHO TODO: hard-coded
-+	opt_fid->ip6fid_flags_high = 0;
-+	opt_fid->ip6fid_flags_low = IP6_OPT_FID_H|priority; // TODO: priority should be masked
-+	opt_fid->ip6fid_fid = fid;
-+	opt_fid->ip6fid_action = action;
-+	opt_fid->ip6fid_status = status;
-+	opt_fid->ip6fid_pro_cls = (pro << 4) | 0x00;
-+	data += sizeof(struct ip6_mh_opt_fid);
-+
-+	if (fid_subopt){
-+		opt_fid_subopt = (struct ip6_mh_opt_fid_subopt *)data;
-+		opt_fid_subopt->ip6fid_subopt_type = 1;
-+		opt_fid_subopt->ip6fid_subopt_len  = 3;
-+		opt_fid_subopt->ip6fid_subopt_bid  = bid;
-+		data += sizeof(struct ip6_mh_opt_fid_subopt);
-+	}
-+
-+	MDBG("FID sub-option created with FID = %d and action %d\n", 
-+		fid, action);
-+	
-+	return 0;
-+}
-+/* NEMO-SHO */
-+
- static size_t mh_length(struct iovec *vec, int count)
- {
- 	size_t len = 0;
-@@ -526,6 +582,11 @@
- 		case IP6_MHOPT_BID:
- 			pad = optpad(2, 0, len); /* 2n */
- 			break;
-+			/* NEMO-SHO */
-+		case IP6_MHOPT_FID:
-+			pad = optpad(2, 0, len); /* 2n */
-+			break;
-+			/* NEMO-SHO */
- 		}
- 		if (pad > 0) {
- 			create_opt_pad(&out[n++], pad);
-@@ -1027,6 +1088,7 @@
- 		const struct timespec *lifetime, 
- 		const uint16_t bid,
- 		const uint8_t priority,
-+		const struct ip6_mh_opt_fid *opt_fid, /* NEMO-SHO */
- 		const uint8_t *key, int iif)
- {
- 	int iovlen = 1;
-@@ -1058,6 +1120,18 @@
- 	/* MCoA: Create Binding Unique Identifier Option if needed */
- 	if (bid) 
- 		mh_create_opt_bid(&mh_vec[iovlen++], bid, priority, 0);
-+
-+	/* NEMO-SHO: FID option if needed & BA is accepted */
-+	if (opt_fid && (status == IP6_MH_BAS_ACCEPTED))
-+		mh_create_opt_fid(&mh_vec[iovlen++],
-+				  opt_fid->ip6fid_fid, //fid
-+				  opt_fid->ip6fid_action,  //action (n-casting)
-+				  0,  //status
-+				  0,  //priority
-+				  opt_fid->ip6fid_pro_cls,  //process
-+				  0,0);  //subopt is not present
-+	/* NEMO-SHO */
-+
- 	mh_send(addrs, mh_vec, iovlen, key, iif);
- 	free_iov_data(mh_vec, iovlen);
- }
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/mh.h mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/mh.h
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/mh.h	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/mh.h	2008-03-21 16:27:24.000000000 +0100
-@@ -10,7 +10,7 @@
- 
- /* If new types or options appear, these should be updated. */
- #define IP6_MH_TYPE_MAX IP6_MH_TYPE_BERROR
--#define IP6_MHOPT_MAX IP6_MHOPT_BID
-+#define IP6_MHOPT_MAX	IP6_MHOPT_FID /* NEMO-SHO */
- 
- struct in6_addr_bundle {
- 	struct in6_addr *src;
-@@ -45,6 +45,7 @@
- 		const struct timespec *lifetime,
- 		const uint16_t bid,
- 		const uint8_t priority,
-+		const struct ip6_mh_opt_fid *opt_fid, /* NEMO-SHO */
- 		const uint8_t *key, int iif);
- 
- static inline void mh_send_ba_err(const struct in6_addr_bundle *addrs,
-@@ -56,7 +57,7 @@
- {
- 	struct timespec zero = { 0, 0 };
- 	mh_send_ba(addrs, status, flags, seqno, &zero, 
--		   bid, priority, key, iif);
-+		   bid, priority, NULL, key, iif); /* NEMO-SHO */
- }
- 
- void mh_send_be(struct in6_addr *dst,
-@@ -87,6 +88,14 @@
- 
- int mh_create_opt_bid(struct iovec *iov, uint16_t bid, uint8_t priority, 
- 		      uint8_t bid_flags);
-+/* NEMO-SHO */
-+int mh_create_opt_fid(struct iovec *iov, 
-+		      uint8_t fid, uint8_t action, uint8_t status,
-+		      uint8_t priority,
-+		      uint8_t pro,
-+		      int fid_subopt,
-+		      uint8_t bid);
-+/* NEMO-SHO */
- 
- static inline void *mh_opt(const struct ip6_mh *mh,
- 			   const struct mh_options *mh_opts, uint8_t type)
-@@ -138,4 +147,13 @@
- void mh_handler_reg(uint8_t type, struct mh_handler *handler);
- void mh_handler_dereg(uint8_t type, struct mh_handler *handler);
- 
-+/* NEMO-SHO FlowBinding */
-+#define FBIND_ADD_FLOW    0x00
-+#define FBIND_REMOVE_FLOW 0xF0
-+#define FBIND_ACTION_NCAST              0x03
-+#define FBIND_ACTION_NCAST_COMBINE      0x04
-+#define FBIND_ACTION_NCAST_COMBINE_ADAP 0x05
-+#define FBIND_FID_SHO 0x08
-+/* NEMO-SHO */
-+
- #endif
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/mn.c mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/mn.c
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/mn.c	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/mn.c	2008-03-31 16:15:06.000000000 +0200
-@@ -67,6 +67,14 @@
- #include "dhaad_mn.h"
- #include "ipsec.h"
- 
-+/* NEMO-SHO CONFIG */
-+uint16_t mcoa_get_previous_bid(struct home_addr_info *hai);
-+enum {
-+	TYPE_HO_DOWNWARD,
-+	TYPE_HO_UPWARD
-+};
-+/* NEMO-SHO CONFIG*/
-+
- #define MN_DEBUG_LEVEL 1
- 
- #if MN_DEBUG_LEVEL >= 1
-@@ -396,6 +404,49 @@
- 			free_iov_data(iov, iov_ind);
- 			return -ENOMEM;				
- 		}
-+		/* NEMO-SHO */
-+		if (hai->reg_mcoa && bule->bid && bule->fid){
-+			uint16_t prev_bid = 
-+				mcoa_get_previous_bid(hai); 
-+			uint8_t action;
-+			if (conf.MnUseSHO){
-+				if (conf.UseAdaptiveCombining)
-+					action = FBIND_ACTION_NCAST_COMBINE_ADAP;
-+				else
-+					action = FBIND_ACTION_NCAST_COMBINE;
-+			}
-+			else
-+				action = FBIND_ACTION_NCAST;
-+			// Start N-casting
-+			if ( bu->ip6mhbu_lifetime &&
-+			     mh_create_opt_fid(&iov[iov_ind++],
-+					       bule->fid, //fid
-+					       action,
-+					       0, //status
-+					       0, //priority
-+					       FBIND_ADD_FLOW, //process (adding)
-+					       1, //subopt is present
-+					       prev_bid //bid
-+				     ) < 0 ){
-+				free_iov_data(iov, iov_ind);
-+				return -ENOMEM; 
-+			}
-+			// Stop N-casting
-+			else if (!bule->mcoa_dereg &&
-+				 mh_create_opt_fid(&iov[iov_ind++],
-+						   bule->fid, //fid
-+						   action,
-+						   0,  //status
-+						   0,  //priority
-+						   0xF,//process (removing)
-+						   0,  //subopt is not present
-+						   0   //bid
-+					 ) < 0){
-+				free_iov_data(iov, iov_ind);
-+				return -ENOMEM; 
-+			}
-+		}
-+		/* NEMO-SHO */
- 		if (bule->flags & IP6_MH_BU_MR && bu->ip6mhbu_lifetime &&
- 		    bule->home->mnp_count > 0 && conf.MobRtrUseExplicitMode &&
- 		    mh_create_opt_mob_net_prefix(&iov[iov_ind++],
-@@ -452,6 +503,27 @@
- 	
- 	return ret;
- }
-+/* NEMO-SHO */
-+uint16_t mcoa_get_previous_bid(struct home_addr_info *hai)
-+{
-+	struct list_head *l;
-+	int iif = hai->current_coa->iif;
-+
-+	if(!hai->reg_mcoa){
-+		MDBG("================================= reg_mcoa is 0\n");
-+		return 0;
-+	}
-+	
-+	list_for_each(l, &hai->mcoa) {
-+		struct mn_addr *coa_entry;
-+		coa_entry = list_entry(l, struct mn_addr, list);
-+		if (coa_entry->iif != iif) 
-+			return get_bid_from_ifindex(coa_entry->iif);
-+	}
-+	MDBG("================================= cannot find entry\n");
-+	return 0;
-+}
-+/* NEMO-SHO */
- 
- struct mn_addr *mcoa_get_current_coa(struct home_addr_info *hai, int iif)
- {
-@@ -1121,6 +1193,24 @@
- 	}
- 	if (!homereg_expired) {
- 		bule->do_send_bu = 1;
-+		/* NEMO-SHO */
-+		if (conf.MnUseSHO){
-+			struct bulentry *bul_prev = NULL;
-+			uint16_t prev_bid = 
-+				mcoa_get_previous_bid(hai); 
-+			if (prev_bid)
-+				bul_prev = bul_get(hai, NULL, 
-+						   &hai->ha_addr,
-+						   prev_bid);
-+			
-+			if (hai->reg_mcoa && bul_prev) {
-+				MDBG("=====previous_bid %d=====\n", prev_bid);
-+				bule->fid = FBIND_FID_SHO;
-+			}
-+			else 
-+				bule->fid = 0;
-+		}
-+		/* NEMO-SHO */
- 		mn_send_bu_msg(bule);
- 		bul_update_timer(bule);		
- 		if (conf.OptimisticHandoff)
-@@ -1145,6 +1235,44 @@
- 	bule->if_tunnel = tunnel_mod(bule->if_tunnel, &hai->current_coa->addr, 
- 				     &hai->ha_addr, hai->current_coa->iif, 
- 				     mn_ext_tunnel_ops, hai);
-+	/* NEMO-SHO */
-+	if (bule->fid){
-+		int HOtype;
-+		// only Packet Combining is enabled for this moement
-+		int nemo_sho_flag = SHO_COMBINING;
-+		if (conf.UseAdaptiveCombining)
-+			nemo_sho_flag |=SHO_ADAPTIVE;
-+		if (conf.debug_level > 0)
-+			nemo_sho_flag |=SHO_DEBUG;
-+
-+		uint16_t prev_bid = 
-+			mcoa_get_previous_bid(hai); 
-+		struct bulentry *bul_prev = bul_get(hai, NULL, &hai->ha_addr,
-+						    prev_bid);
-+		// share the same fid with another bul
-+		bul_prev->fid = bule->fid;
-+
-+		if (get_delay_from_bid(prev_bid) > 
-+		    get_delay_from_bid(bule->bid) )
-+			HOtype = TYPE_HO_DOWNWARD;
-+		else 
-+			HOtype = TYPE_HO_UPWARD;
-+
-+		dtunnel_mod_type(bule->if_tunnel, 
-+				 &bule->coa,
-+				 &bule->peer_addr,
-+				 &bul_prev->coa,
-+				 bule->if_coa,
-+				 nemo_sho_flag,
-+				 0,
-+				 (HOtype==TYPE_HO_DOWNWARD)?
-+				 get_delay_from_bid(bule->bid):0,
-+				 (HOtype==TYPE_HO_DOWNWARD)?
-+				 get_delay_from_bid(prev_bid):0
-+				 ); /* from MR to HA */
-+	}
-+	/* NEMO-SHO */
-+
- 	hai->if_tunnel = bule->if_tunnel;		
- 	bule->last_coa = bule->coa;
- 	bule->coa_changed = 0;
-@@ -1351,6 +1479,9 @@
- {
- 	struct ip6_mh_binding_ack *ba;
- 	struct ip6_mh_opt_bid *bui;
-+	// NEMO-SHO
-+	struct ip6_mh_opt_fid *fid_opt = NULL;
-+	// NEMO-SHO
- 	struct mh_options mh_opts;
- 	struct bulentry *bule;
- 	struct timespec now, ba_lifetime, br_adv;
-@@ -1370,6 +1501,7 @@
- 	/* MCoA: Lookup in BA options for the BUI sub-option and the BID */
- 	bui = mh_opt(&ba->ip6mhba_hdr, &mh_opts, IP6_MHOPT_BID);
- 	bid = bui ? ntohs(bui->ip6mobid_bid) : MCOA_NO_BID;
-+	fid_opt = mh_opt(&ba->ip6mhba_hdr, &mh_opts, IP6_MHOPT_FID);
- 	
- 	bule = bul_get(NULL, in->dst, in->src, bid);
- 	if (!bule || bule->type != BUL_ENTRY) {
-@@ -1383,6 +1515,26 @@
- 		     NIP6ADDR(in->local_coa != NULL ? 
- 			      in->local_coa : &in6addr_any),
- 		     bid);
-+		if (fid_opt){
-+			struct home_addr_info *hai = mn_get_home_addr(in->dst);
-+			if (hai){
-+				MDBG("FID option (FID=%d) is attached. releasing Bicasting/Combining info\n", fid_opt->ip6fid_fid);
-+				bule = bul_get(hai, NULL, in->src, 
-+						get_bid_from_ifindex(iif));
-+				if (bule->fid == fid_opt->ip6fid_fid){
-+					dtunnel_mod_type(bule->if_tunnel, 
-+							 &bule->coa,
-+							 &bule->peer_addr,
-+							 0,
-+							 0,
-+							 0,
-+							 0,
-+							 0,
-+							 0); /* from MR to HA */
-+				}
-+			}
-+			hai = NULL;
-+		}
- 		pthread_rwlock_unlock(&mn_lock);
- 		return;
- 	}
-@@ -1554,6 +1706,44 @@
- 		dbg("Deleting bul entry\n");
- 		bul_delete(bule);
- 	}  else {
-+		/* NEMO-SHO */
-+		if (bule->fid){
-+			int nemo_sho_flag = SHO_BICAST|SHO_COMBINING;
-+			dbg("DTUNNEL from %x:%x:%x:%x:%x:%x:%x:%x "
-+			    "with coa %x:%x:%x:%x:%x:%x:%x:%x\n",
-+			    NIP6ADDR(in->src), NIP6ADDR(in->local_coa));
-+
-+			if (conf.UseAdaptiveCombining)
-+				nemo_sho_flag |=SHO_ADAPTIVE;
-+			if (conf.debug_level > 0)
-+				nemo_sho_flag |=SHO_DEBUG;
-+
-+			struct home_addr_info *hai = bule->home;
-+			uint16_t prev_bid = 
-+				mcoa_get_previous_bid(hai); 
-+			struct bulentry *bul_prev = bul_get(hai, NULL, 
-+							    &hai->ha_addr,
-+							    prev_bid);
-+			int HOtype;
-+			if (get_delay_from_bid(prev_bid) > 
-+			    get_delay_from_bid(bule->bid) )
-+				HOtype = TYPE_HO_DOWNWARD;
-+			else 
-+				HOtype = TYPE_HO_UPWARD;
-+			dtunnel_mod_type(bule->if_tunnel, 
-+					 &bule->coa,
-+					 &bule->peer_addr,
-+					 &bul_prev->coa,
-+					 bule->if_coa,
-+					 nemo_sho_flag,
-+					 0,
-+					 (HOtype==TYPE_HO_DOWNWARD)?
-+					 get_delay_from_bid(bule->bid):0,
-+					 (HOtype==TYPE_HO_DOWNWARD)?
-+					 get_delay_from_bid(prev_bid):0
-+				); /* from MR to HA */
-+		}
-+		/* NEMO-SHO */
- 		set_bule_lifetime(bule, &ba_lifetime, &br_adv);
- 		if (bule->flags & IP6_MH_BU_HOME) {
- 			dbg("Callback to bu_refresh after %d seconds\n",
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/movement.c mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/movement.c
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/movement.c	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/movement.c	2008-03-31 14:43:09.000000000 +0200
-@@ -48,7 +48,7 @@
- #include "prefix.h"
- #include "conf.h"
- 
--#define MD_DEBUG_LEVEL 1
-+#define MD_DEBUG_LEVEL 0
- 
- #if MD_DEBUG_LEVEL >= 1
- #define MDBG dbg
-@@ -1411,10 +1411,13 @@
- 	if (old)
- 		md_expire_router(iface, old, new);
- 
-+	//NEMO-SHO avoid blocking outbound traffic here
-+#if 0
- 	if (list_empty(&iface->coas) &&
- 	    !(iface->iface_flags & MD_BLOCK_TRAFFIC)) {
- 		md_block_rule_add(iface);
- 	}
-+#endif
- 	new->used = 1;
- 	md_add_default_router(iface, new);
- 	__md_new_link(iface, link_changed);
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/policy.h mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/policy.h
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/policy.h	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/policy.h	2008-03-21 15:43:20.000000000 +0100
-@@ -13,6 +13,7 @@
- #define POL_MN_IF_DEF_BID 0
- #define POL_MN_IF_DEF_BID_PRIORITY 0
- #define POL_MN_IF_DEF_RELIABLE 1
-+#define POL_MN_IF_DEF_DELAY 0
- 
- struct ip6_mh_binding_update;
- struct nd_router_advert;
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/scan.l mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/scan.l
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/scan.l	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/scan.l	2008-03-21 15:34:55.000000000 +0100
-@@ -139,11 +139,14 @@
- HaAcceptMobRtr   		{ return HAACCEPTMOBRTR; }
- HaAcceptMCoAReg			{ return HAACCEPTMCOAREG; }
- MCoAReg				{ return MCOAREG; }
-+MnUseSHO			{ return MNUSESHO; }
-+MnUseAdaptiveCombining		{ return MNUSEAPC; }
- NoMCoAReg			{ return NOMCOAREG; }
- IsMobRtr       			{ return ISMOBRTR; }
- Bid				{ return BID; }
- BidPriority			{ return BIDPRIORITY; }
- Reliable			{ return RELIABLE; }
-+DefaultDelay			{ return DEFAULTDELAY; }
- RegMultipleCoA			{ return REGMULTIPLECOA; }
- IfMultipleCoA			{ return IFMULTIPLECOA; }
- HaServedPrefix       	       	{ return HASERVEDPREFIX; }
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/tunnelctl.c mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/tunnelctl.c
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/tunnelctl.c	2008-03-21 16:40:07.000000000 +0100
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/tunnelctl.c	2008-03-20 16:51:35.000000000 +0100
-@@ -315,6 +315,73 @@
- 	return res;
- }
- 
-+// ---------------- rueegg -------------------------
-+int dtunnel_mod_type(int ifindex,
-+		     struct in6_addr *local,
-+		     struct in6_addr *remote,
-+		     struct in6_addr *addr2,
-+		     int link,
-+		     int do_bicasting,
-+		     int tnl_type,
-+		     unsigned short defaultDeltaT1,
-+		     unsigned short defaultDeltaT2)
-+{
-+	struct mip6_tnl *tnl;
-+	struct ip6_tnl_parm parm;
-+	struct ifreq ifr;
-+		
-+	int res = -1;
-+
-+	pthread_mutex_lock(&tnl_lock);
-+
-+	TDBG("modifying mode of tunnel %d end points with "
-+	     "from %x:%x:%x:%x:%x:%x:%x:%x "
-+	     "to %x:%x:%x:%x:%x:%x:%x:%x\n",
-+	     ifindex, NIP6ADDR(local), NIP6ADDR(remote));
-+
-+	tnl = get_tnl(ifindex);
-+	assert(tnl != NULL);
-+
-+	if (tnl->users == 1){
-+		memset(&parm, 0, sizeof(struct ip6_tnl_parm));
-+		parm.proto = IPPROTO_IPV6;
-+		parm.flags = IP6_TNL_F_MIP6_DEV|IP6_TNL_F_IGN_ENCAP_LIMIT;
-+		parm.hop_limit = 64;
-+		parm.laddr = *local;
-+		parm.raddr = *remote;
-+		parm.link  = link;
-+		parm.dparms.dtnl_flag = do_bicasting;  //rueegg
-+		if (do_bicasting) {
-+			parm.dparms.dtnl_type = tnl_type; //rueegg
-+			parm.dparms.addr2 = *addr2; //rueegg
-+		}
-+		parm.dparms.defaultDeltaT[0]=defaultDeltaT1;
-+		parm.dparms.defaultDeltaT[1]=defaultDeltaT2;
-+		
-+		strcpy(ifr.ifr_name, tnl->parm.name);
-+		ifr.ifr_ifru.ifru_data = (void *)&parm;
-+		
-+		if(ioctl(tnl_fd, SIOCCHGTUNNEL, &ifr) < 0) {
-+			TDBG("SIOCCHGTUNNEL failed status %d %s\n", 
-+			     errno, strerror(errno));
-+			pthread_mutex_unlock(&tnl_lock);
-+			return -1;
-+		}
-+		memcpy(&tnl->parm, &parm, sizeof(struct ip6_tnl_parm));
-+		TDBG("modified tunnel iface %s (%d)"
-+		     "from %x:%x:%x:%x:%x:%x:%x:%x "
-+		     "to %x:%x:%x:%x:%x:%x:%x:%x\n",
-+		     tnl->parm.name, tnl->ifindex, NIP6ADDR(&tnl->parm.laddr),
-+		     NIP6ADDR(&tnl->parm.raddr));
-+		res = tnl->ifindex;
-+	}
-+		
-+	pthread_mutex_unlock(&tnl_lock);
-+	return res;
-+}
-+
-+// ---------- rueegg end -------------------
-+
- static int __tunnel_mod(struct mip6_tnl *tnl,
- 			struct in6_addr *local,
- 			struct in6_addr *remote,
-diff -Nru mipv6-daemon-umip-0.4-nepl-mcoa/src/tunnelctl.h mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/tunnelctl.h
---- mipv6-daemon-umip-0.4-nepl-mcoa/src/tunnelctl.h	2007-09-13 11:42:42.000000000 +0200
-+++ mipv6-daemon-umip-0.4-nepl-mcoa-sho/src/tunnelctl.h	2008-03-20 16:51:13.000000000 +0100
-@@ -28,6 +28,21 @@
- 				     void *data),
- 	       void *data);
- 
-+/* NEMO-SHO by hirokazu */ 
-+#define SHO_BICAST    0x1
-+#define SHO_COMBINING 0x2
-+#define SHO_ADAPTIVE  0x4
-+#define SHO_DEBUG     0x8
-+int dtunnel_mod_type(int ifindex,
-+		     struct in6_addr *local,
-+		     struct in6_addr *remote, 
-+		     struct in6_addr *addr2, 
-+		     int link,
-+		     int do_bicasting,
-+		     int tnl_type,
-+		     unsigned short defaultDeltaT1,
-+		     unsigned short defaultDeltaT2);
-+/* NEMO-SHO by hirokazu */
- 
- int tunnelctl_init(void);
- 
diff --git a/openair3/NEMO_SHO/mipv6-daemon-umip-0.4.tar.gz b/openair3/NEMO_SHO/mipv6-daemon-umip-0.4.tar.gz
deleted file mode 100755
index 940362a1b530c14ae9105ecac74edb387ab8c724..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 398552
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
z%0A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
bfAin`H~-Cl^WXgUm;U}gmtOqE02m(tVN@zX

-- 
GitLab