From aa5051a162c496c3beaef0cef24c720f78305eea Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Fri, 9 Dec 2011 15:56:05 +0900 Subject: [PATCH] initial commit Signed-off-by: FUJITA Tomonori --- .gitignore | 10 + COPYING | 674 ++++++++++ LICENSE | 1 + MANIFEST.in | 10 + README.rst | 75 ++ bin/ryu-client | 55 + bin/ryu-manager | 69 + doc/Makefile | 130 ++ doc/source/_static/.placeholder | 0 doc/source/_templates/.placeholder | 0 doc/source/conf.py | 216 ++++ doc/source/getting_started.rst | 43 + doc/source/how_l2_segregation_works.rst | 66 + doc/source/images/assoc-ovs-port.png | Bin 0 -> 75044 bytes doc/source/images/assoc-ovs-port.svg | 572 ++++++++ doc/source/images/compute-node.png | Bin 0 -> 72923 bytes doc/source/images/compute-node.svg | 722 +++++++++++ doc/source/images/filtering-broadcast.png | Bin 0 -> 78515 bytes doc/source/images/filtering-broadcast.svg | 882 +++++++++++++ doc/source/images/filtering-incoming.png | Bin 0 -> 81100 bytes doc/source/images/filtering-incoming.svg | 958 ++++++++++++++ doc/source/images/filtering-outgoing.png | Bin 0 -> 83163 bytes doc/source/images/filtering-outgoing.svg | 960 ++++++++++++++ doc/source/images/logical-view.png | Bin 0 -> 64712 bytes doc/source/images/logical-view.svg | 623 +++++++++ doc/source/images/mac-learning.png | Bin 0 -> 95849 bytes doc/source/images/mac-learning.svg | 764 +++++++++++ doc/source/images/minimul-setup.png | Bin 0 -> 123002 bytes doc/source/images/minimul-setup.svg | 903 +++++++++++++ doc/source/images/network-creation.png | Bin 0 -> 44004 bytes doc/source/images/network-creation.svg | 484 +++++++ doc/source/images/network-id.svg | 1434 +++++++++++++++++++++ doc/source/images/physical-view.png | Bin 0 -> 187664 bytes doc/source/images/physical-view.svg | 1434 +++++++++++++++++++++ doc/source/images/trace-route.png | Bin 0 -> 132098 bytes doc/source/images/trace-route.svg | 1000 ++++++++++++++ doc/source/index.rst | 26 + doc/source/overview.rst | 1 + doc/source/using_with_openstack.rst | 251 ++++ etc/ryu/ryu.conf | 7 + ryu/__init__.py | 0 ryu/app/__init__.py | 0 ryu/app/client.py | 74 ++ ryu/app/rest.py | 210 +++ ryu/app/rest_nw_id.py | 21 + ryu/app/simple_isolation.py | 242 ++++ ryu/app/simple_switch.py | 93 ++ ryu/app/wsapi.py | 578 +++++++++ ryu/base/__init__.py | 0 ryu/base/app_manager.py | 45 + ryu/controller/__init__.py | 14 + ryu/controller/controller.py | 201 +++ ryu/controller/dispatcher.py | 108 ++ ryu/controller/event.py | 76 ++ ryu/controller/handler.py | 219 ++++ ryu/controller/mac_to_network.py | 56 + ryu/controller/mac_to_port.py | 48 + ryu/controller/network.py | 155 +++ ryu/exception.py | 63 + ryu/flags.py | 24 + ryu/lib/__init__.py | 0 ryu/lib/mac.py | 23 + ryu/log.py | 82 ++ ryu/ofproto/__init__.py | 16 + ryu/ofproto/ofproto_parser.py | 49 + ryu/ofproto/ofproto_v1_0.py | 437 +++++++ ryu/ofproto/ofproto_v1_0_parser.py | 542 ++++++++ ryu/utils.py | 62 + setup.cfg | 1 + setup.py | 38 + 70 files changed, 15847 insertions(+) create mode 100644 .gitignore create mode 100644 COPYING create mode 100644 LICENSE create mode 100644 MANIFEST.in create mode 100644 README.rst create mode 100755 bin/ryu-client create mode 100755 bin/ryu-manager create mode 100644 doc/Makefile create mode 100644 doc/source/_static/.placeholder create mode 100644 doc/source/_templates/.placeholder create mode 100644 doc/source/conf.py create mode 100644 doc/source/getting_started.rst create mode 100644 doc/source/how_l2_segregation_works.rst create mode 100644 doc/source/images/assoc-ovs-port.png create mode 100644 doc/source/images/assoc-ovs-port.svg create mode 100644 doc/source/images/compute-node.png create mode 100644 doc/source/images/compute-node.svg create mode 100644 doc/source/images/filtering-broadcast.png create mode 100644 doc/source/images/filtering-broadcast.svg create mode 100644 doc/source/images/filtering-incoming.png create mode 100644 doc/source/images/filtering-incoming.svg create mode 100644 doc/source/images/filtering-outgoing.png create mode 100644 doc/source/images/filtering-outgoing.svg create mode 100644 doc/source/images/logical-view.png create mode 100644 doc/source/images/logical-view.svg create mode 100644 doc/source/images/mac-learning.png create mode 100644 doc/source/images/mac-learning.svg create mode 100644 doc/source/images/minimul-setup.png create mode 100644 doc/source/images/minimul-setup.svg create mode 100644 doc/source/images/network-creation.png create mode 100644 doc/source/images/network-creation.svg create mode 100644 doc/source/images/network-id.svg create mode 100644 doc/source/images/physical-view.png create mode 100644 doc/source/images/physical-view.svg create mode 100644 doc/source/images/trace-route.png create mode 100644 doc/source/images/trace-route.svg create mode 100644 doc/source/index.rst create mode 100644 doc/source/overview.rst create mode 100644 doc/source/using_with_openstack.rst create mode 100644 etc/ryu/ryu.conf create mode 100644 ryu/__init__.py create mode 100644 ryu/app/__init__.py create mode 100644 ryu/app/client.py create mode 100644 ryu/app/rest.py create mode 100644 ryu/app/rest_nw_id.py create mode 100644 ryu/app/simple_isolation.py create mode 100644 ryu/app/simple_switch.py create mode 100644 ryu/app/wsapi.py create mode 100644 ryu/base/__init__.py create mode 100644 ryu/base/app_manager.py create mode 100644 ryu/controller/__init__.py create mode 100644 ryu/controller/controller.py create mode 100644 ryu/controller/dispatcher.py create mode 100644 ryu/controller/event.py create mode 100644 ryu/controller/handler.py create mode 100644 ryu/controller/mac_to_network.py create mode 100644 ryu/controller/mac_to_port.py create mode 100644 ryu/controller/network.py create mode 100644 ryu/exception.py create mode 100644 ryu/flags.py create mode 100644 ryu/lib/__init__.py create mode 100644 ryu/lib/mac.py create mode 100644 ryu/log.py create mode 100644 ryu/ofproto/__init__.py create mode 100644 ryu/ofproto/ofproto_parser.py create mode 100644 ryu/ofproto/ofproto_v1_0.py create mode 100644 ryu/ofproto/ofproto_v1_0_parser.py create mode 100644 ryu/utils.py create mode 100644 setup.cfg create mode 100644 setup.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e5eaa749 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.py[co] +*~ +*.egg-info/ +build/ +dist/ + +GTAGS +GRTAGS +GPATH +GSYMS diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + 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. + + + Copyright (C) + + 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 . + +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: + + Copyright (C) + 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 +. + + 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 +. diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..e96a659d --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +GPL v3 only diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..168d8dcd --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,10 @@ +include COPYING LICENSE +include README.rst +include MANIFEST.in +graft contrib +graft doc +graft etc +recursive-exclude doc/build/*/ * +global-exclude *~ +global-exclude *.pyc +global-exclude .gitignore diff --git a/README.rst b/README.rst new file mode 100644 index 00000000..44d0c202 --- /dev/null +++ b/README.rst @@ -0,0 +1,75 @@ +**************************** +Ryu Network Operating System +**************************** + +For details, please see the documentation under doc/ directory and +make html (or make ). If you have any +questions, suggestions, and patches, the mailing list is available at +`ryu-devel ML +`_. + +Ryu Official site is ``_. + + +Overview +======== +Ryu is an open-sourced Network Operating System (NOS) licensed under +GPL v3. It's fully written in Python. + +Ryu aims to provide a logically centralized control and well defined +API that make it easy for operators to create new network management +and control applications. Currently, Ryu supports OpenFlow protocol to +modify the behavior of network devices. + +We aim at the de facto OSS NOS implementation and NOS API. + +Currently, Ryu is shipped with one control application for `OpenStack +`_ network management L2 segregation of +tenants without using VLAN. The application includes changes to +OpenStack (nova, quantum ovs plugin, etc). + +The project goal is to develop an OSS Network Operating System that +has high quality enough for use in large production environment in +code quality/functionality/usability. + + +TODO +==== +* OpenFlow Protocol version 1.2 (right after the spec release) +* The better API for control applications +* Cluster support +* ...too many for here. + + +Quick Start +=========== +Get source code:: + + % git clone git://github.com/osrg/ryu.git + +Then just type:: + + % cd ryu; python ./setup.py install + +and run ryu-manager command which is installed. +Then set up your openflow switch (hardware switch or OVS) to connect the ip +address and port to which ryu-manager is listening. +If you want to use it with Openstack (nova and quantum with ovs plugin), +please refer detailed documents under doc/ directory. + + +Requirement +=========== +* python-setuptools +* python-gevent >= 0.13 +* python-gflags +* python-sphinx + + +Project Members +=============== +* OHMURA Kei +* MORITA Kazutaka +* Isaku Yamahata +* FUJITA Tomonori + diff --git a/bin/ryu-client b/bin/ryu-client new file mode 100755 index 00000000..e91ed739 --- /dev/null +++ b/bin/ryu-client @@ -0,0 +1,55 @@ +#!/usr/bin/env python +# +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License +# +# 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 . + +import sys +from optparse import OptionParser + +from ryu.app.client import OFPClient + + +def client_test(): + parser = OptionParser(usage="Usage: %prog [OPTIONS] [args]") + parser.add_option("-H", "--host", dest="host", type="string", + default="127.0.0.1", help="ip address rest api service") + parser.add_option("-p", "--port", dest="port", type="int", default="8080") + + options, args = parser.parse_args() + if len(args) == 0: + parser.print_help() + sys.exit(1) + + client = OFPClient(options.host + ':' + str(options.port)) + commands = { + 'list_nets': lambda a: sys.stdout.write(client.get_networks()), + 'create_net': lambda a: client.create_network(a[1]), + 'update_net': lambda a: client.update_network(a[1]), + 'delete_net': lambda a: client.delete_network(a[1]), + 'list_ports': lambda a: sys.stdout.write(client.get_ports(a[1])), + 'create_port': lambda a: client.create_port(a[1], a[2], a[3]), + 'update_port': lambda a: client.update_port(a[1], a[2], a[3]), + 'delete_port': lambda a: client.delete_port(a[1], a[2], a[3]) + } + + # allow '-', instead of '_' + commands.update(dict([(k.replace('_', '-'), v) + for (k, v) in commands.items()])) + + cmd = args[0] + commands[cmd](args) + +if __name__ == "__main__": + client_test() diff --git a/bin/ryu-manager b/bin/ryu-manager new file mode 100755 index 00000000..e8350fe9 --- /dev/null +++ b/bin/ryu-manager @@ -0,0 +1,69 @@ +#!/usr/bin/env python +# +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License +# +# 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 . + +import gevent +import gflags +import logging +import sys + +from gevent import monkey +monkey.patch_all() + +from ryu import log +log.earlyInitLog(logging.DEBUG) + +from ryu import flags +from ryu import utils +from ryu.base.app_manager import AppManager +from ryu.controller import controller +from ryu.app import wsapi +from ryu.app import rest +from ryu.controller import network + + +FLAGS = gflags.FLAGS +gflags.DEFINE_multistring('app_lists', + ['ryu.app.simple_isolation.SimpleIsolation', + 'ryu.app.rest.restapi'], + 'application module name to run') + + +def main(): + utils.find_flagfile() + args = FLAGS(sys.argv) + log.initLog() + + nw = network.network() + + app_mgr = AppManager() + app_mgr.load_apps(FLAGS.app_lists, network=nw) + + services = [] + + ctlr = controller.OpenFlowController() + thr = gevent.spawn_later(0, ctlr) + services.append(thr) + + # NOX webservice API + ws = wsapi.wsapi() + thr = gevent.spawn_later(0, ws) + services.append(thr) + + gevent.joinall(services) + +if __name__ == "__main__": + main() diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 00000000..2fe1f88f --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ryu.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ryu.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/ryu" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ryu" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/doc/source/_static/.placeholder b/doc/source/_static/.placeholder new file mode 100644 index 00000000..e69de29b diff --git a/doc/source/_templates/.placeholder b/doc/source/_templates/.placeholder new file mode 100644 index 00000000..e69de29b diff --git a/doc/source/conf.py b/doc/source/conf.py new file mode 100644 index 00000000..ed247019 --- /dev/null +++ b/doc/source/conf.py @@ -0,0 +1,216 @@ +# -*- coding: utf-8 -*- +# +# ryu documentation build configuration file, created by +# sphinx-quickstart on Mon Dec 5 15:38:48 2011. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'ryu' +copyright = u'2011, ryu development team' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.1' +# The full version, including alpha/beta/rc tags. +release = '0.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'ryudoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'ryu.tex', u'ryu Documentation', + u'ryu development team', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'ryu', u'ryu Documentation', + [u'ryu development team'], 1) +] diff --git a/doc/source/getting_started.rst b/doc/source/getting_started.rst new file mode 100644 index 00000000..bfc108ec --- /dev/null +++ b/doc/source/getting_started.rst @@ -0,0 +1,43 @@ +.. _getting_started: + +*************** +Getting Started +*************** + +Overview/What's Ryu the Network OS +================================== +Ryu is an open-sourced Network OS which is licensed under GPL v3. +It supports openflow protocol. + +If you are not familiar with Software Defined Network(SDN) and +OpenFlow/openflow controller, +please refer to `openflow org `_ . + +The mailing list is available at +`ryu-devel ML `_ + + +Installing Ryu Network OS +========================= +Extract source code and just type:: + + % python ./setup.py install + +Then, run ryu-manager. +It listens to ip address 0.0.0.0 and port 6633 by default. +Then have your openflow switch (hardware or openvswitch OVS) to connect to +ryu-manager. + +For OVS case, you can done it by + + % ovs-vsctl set-controller tcp:[:] + +At the moment, ryu-manager supports only tcp method. +If you want to use it with openstack nova and quantum OVS plugin, +Please refer to :ref:`using_with_openstack`. + +Configuration +============= +It can be configured by passing configuration file like:: + + ryu-manager [--flagfile ] diff --git a/doc/source/how_l2_segregation_works.rst b/doc/source/how_l2_segregation_works.rst new file mode 100644 index 00000000..4b0d2b9d --- /dev/null +++ b/doc/source/how_l2_segregation_works.rst @@ -0,0 +1,66 @@ +.. _how_it_works: + +**************************** +How Ryu L2 segregation works +**************************** +This section describes how Ryu L2 segregation works. + +tenant/network id creation +========================== +When tenant(= network id) is created, Quantum server tells it to Ryu. +Ryu remembers the network id. + + .. image:: /images/network-creation.png + + +association OVS port to network id +================================== +#. When VM instance is created, the network port is created in OVS and + it is associated to network id that VM belongs to. + +#. quantum OVS agent tells the associated (network id, ovs port) to Ryu. + Ryu remembers (network id, ovs port) relationship. + +#. quantum OVS agent also tells to Ryu which OVS port is not managed by + nova/quantum, but is connected to external ether cable. + We call it external OVS port or that the port is external. + + + .. image:: /images/assoc-ovs-port.png + + +mac learing +=========== +When VM sends packets, Ryu determins network id from OVS port and then +associates src mac address to network id. + + .. image:: /images/mac-learning.png + + +packet filtering(L2 unicast case) +================================= +* When VM sending L2-unicast packet, Ryu checks if the destination mac + address belongs to the same netowrk id of the source mac address which + is same to the network id that the OVS port is associated to. +* If no, the packet is dropped. +* If yes, send the packet is sent to ports which belongs to the same + network id and external port. + + .. image:: /images/filtering-outgoing.png + .. image:: /images/filtering-incoming.png + + +packet filtering(L2 broadcast case) +=================================== +* When VM sending L2-broadcast/multicaset packet, Ryu checks if the source + mac address. +* send the packet to all external ports and all OVS ports that belongs + to the same network id of the source mac address. +* When receiving broacast/multicast packet from the external ports, + Ryu checks if the source mac address belongs to known network id. + + * If yes, send the packet to the external ports except incoming one + and the all OVS ports that belongs to the network id + * if no, drop the packet. + + .. image:: /images/filtering-broadcast.png diff --git a/doc/source/images/assoc-ovs-port.png b/doc/source/images/assoc-ovs-port.png new file mode 100644 index 0000000000000000000000000000000000000000..16e0386a9fce483285380998dd8b22fb6039bf7d GIT binary patch literal 75044 zcmeEtXH?Tc^X@NH=>`O(W00a$MWh!chzQa{??{o}dkG>EKtYt=1*C)~y+Z({H|d=y z(n~-(fpFvdKkwIj?uYy7p1bEHIoWKoJG-+p&pb1U(o|QbB4;KC0Dwy6IaC_}2+jZi zw0eUC-vfVxkjB3dc|KLqy@78*H(nv|@5$Vr8+zi$Pyc&>p7N#p;X9eUlnlIdTy4F4 zEj?@iUteFL*Dj8p)|PHILarWm>3cHF0Kf^TK%eOPW$Y~arsz(dlkQ^z3!QBEn{V*3 z-D1gs6WpKq*2D0DS*-4^!=vsQE4BAx%vVZW-3->km3OQVR-|A}sj)y;RYQh4^+pUP zPPA)yDRVZ}2D@{5D04cSDZRcFXuG$w6F4HfE}M(wgg_hwARe-CEJTk=XHra1mkpBZ z)3Z26&k4!R{|w5}`EISR3VVwvlC^?sK%L(qGKkR`2$(N&D=P^}qoqn4{|hL8Z*Yu2 zmOB<-+|=6c0J0HtpYlMLQoj$bfZJ%DK<^t4IN25=I7klM;jl@56O3nK{I0}X{qJ)4FkQ&i`7;-PRI$IU^11(J} zMXJ)4D#nc-boJ{Ve?VNAG8@T%uiT`E&^mtH6@X>ZuQ#{=yqzt$Jm40v0pt*&YytDG zmJ=9RTdWH(j9+vkvYc8rnHUWLewc%<&}q-N?J5yGghCC$mIQO`_}2^IP- zU}~YQ#Xy)sYEg>BiN{MxZKcy3wsFuQb@TyJpy-X{bqq)?!k@-y$ifyZ$uap_A_jK6 zI2u5Kx(9?%=Lo}xf%|~d+jG`yWmx^r`U6?uSyziWp~bNIeK;F1MR-Pw>OnSDvSV8q z;Jim}iO3M}fs{Id8`I$OtHROB0@SOaMxmM^w;mzkoAG(zMQvDSg8d?*=z|VS$fTjB ziWw-vIg6HDbdG71zBxi(A_EU<@duY+9LCsRh&eREGg;}(a8$w zJ|%pR$ZQ}r)>)Xm>{=4u`rstg{QC)wRF?EjIMBehW|dPOpiZLs5#89%fO-UU5G@Z_ z0luJ*M5m$Y)>yd@m$O%Qtd?UGw*x>a^y}UU1P%W3vA$0>4p}k5NP_*)s35(kSizW? zlh)CuaL`~}<+TzpcDmyF1k^Gywk&DV;P$#L!qf{fcL&@@yf3LH@+lp~;}2vp#3w73 zE!7rnkpfvC3?^An6l6PC3_zkJ6QT+;SGQ=sf^@F{a_>|`Z^yBqJ^(y1&kOw`@>ns# zz!K3%ro88-%UuL$Zy+wO>8p4W9S|f4*(B55egSm-W|h{ahAV?wI2=q}V90ZV*}Y%9X6JFEB;83y^iCr$tll@7 z0BCV=i5}3fq~*i{XL;J5O^n__tnWSDkvXeuT9;v2y`A0R^~-=@JTuRHL+p}d?Kg>t zsb6P(`c>ol!K%EBrOMomH$k%;Yw5T#;*uvQLXps#9?a;DR6a3KJTnRkW-36o5t%E8 zY;3-U%2AIK(b8WYe?*n--Z_83=U2kT!>j3E% zmK41OgH?Ut4E7!Q2*5n^VI!k52qG0DU0o_b9?}NgJLZ9y0r94ym%y;rq6aLaw;EAS4vg{#ZKnZiO#kn|6>&KThJTzWRB_reGjScU#1FU;GnCA?(I zZz4lbjDFIW+vxLhiNi#>xWfVnU5uDa74d~zof8h)iSNh)@;a0Kw|mZRieZF6YwAyW z8pPsesNg!f$3p>5icnn&!l2xf)mX%GxQJlH*MrB}ld}Mht#a!TSn^x!Ukq@j{~f6a zg8D@I-9n8bdaPl`seZ@yIRh3|-`_5lAU%IO=Ob4|!cDq7w5pBOWKJVaD&^}4{5Zor zLVacA9OUB|VSMNej>@e+1~$gMk5igy4`c{D3;A~b+A}(Sd2l}&T1rmPpbV=m&n(%R z7Fi7M)Yi&8-~n?Ww@#1wG@!TW@eA~UOgMx*`Hqx4rsRPbM-ihC605GDZ=Amm#2|k? z!IGo}6(KW56T&y<%;jUw7N1#xEN2W-LPjlnxEmH90+{I)3H6bZttFy|FAJ_Z3^qz>_IF3hdrlI(%g5BmiCe1W9_Q{Z*FCZ~>aMlI&Ek}MyIn$1qc)3ac1E!-tqEzS7yYYQ;9?j<+t*Y15Z<*o6&HL zYyEM7WyWjnvJ}t^66sk6a+yhgoC&YM<2G6GUG@I%!(Qgq_fI_42Kw%<8;&Abr zT#U5qu~(>8@fHij1ER*sv>6Iy*`p4&y9}pSKKhBLLr)k7=15oxMS=(D68AF+z?%SC zX=0~N*Sz>3=26UFC<%q~4BC%%*JMqCeOer49+xJ0o{5dIb(W2L0=-4|PhhT+_|x@h z^HDZn8tx z!sDm3QaN2p->}c49Cd8EQWV0zT?EDJAfEy1_kfjY@T3ON#k&Azu?Am@_NKFl(QII* zpOoQZnH8-q#pZ#IcOh@K3^hUHiGNoI3Dx(_vSGE{J?KR623TvBBdY>@;D0QOgsLQGXuNIF3y( zMYH__dMn~|lzU-wgc`5kh4{EANmT#B z`grECArV`gPHqx%ms)qkW|a9#9r_z5Phmq7y_2gOv2plB?b*=jmJwLxk=WK^Y>zqK zY~b9Mf{RC%3BlYC{>>XxEj{=dGIr0Q@9Hij)AH|9BzBGzFkvR&0Rc!UHk2$leU;Ep z`q3Sj>0>GO(^BQhtS3WGa{7qp!M020#KOM~@i&KI+|GU&aP?&s#O8o64 z3Us<=)ZKM~W^V1<|s`gv)-RfkjQ0JS~ z8#im^lL=BHwx-%}KpR8+DJY22f=q4eyGKe8TGo=JD~kZFmXfhFV6}rCDVpu^$6EyR z7$g#5LT15^w9{(kO^`a=zCB;c5I+KBFc{%|I63&78O1Q67AdI$(q4@_+7;BSbw9@6qCP`K7N zmhS?T?{(_;Jwo5_jsq=VyLpR@_2%xG)6`fG#>vALnT;77D!@rv)T-IgJK+#zqN@~W zio1>3UHroBVOlR0>zH2MiMv^e`2oD^JSvQnvCWAc>GK2jh+eCm~s)ul>;2RnZuyxKY%vX`Ync9OFF+`9_0qa0W&OL5jjmXt>aE9 zdYG+F2r;nq)Vsc&6F#8p9Z2AvN{J3bz%oHC;Qm?mvP+qiN6Euas>!q_$ziPoC|FUZ z)FXi@-<1HsTC+M`H9gmMIP6ffI#4%-MQkMS9=rs09KTjHkJFxH5@Ae<4_7xWx?<8x z8QJ@RWL98BGHXtjSQ@RLLhsS;ie7->mdK{NVMy_mG#7nB%RSVLdo-Pv^d01on2rp% z_8H_8DVjD#7p`b|F;duBv*r@U)LRcm`2yV~TNiv-31XBxxFo4)tNFMnoOpbTWp)}% z1v90$Yi1Ymw9~7Q!kUpS*9UK{!IKckYv6t@TgVdxf^=qjY|-WI!`p_=zr1_M_wy1| zL1_KSXRfov;j8+>iSIL;m017gs1`Odskaox~()D*W%%9po1TO~dZ4 z5PaMsnzk~0~J&6+huiE?{sNMhFA@22F#0bPmB%(oAY{MX#0?i4Kqo@V9&R!GF zlpv*9=L3Lz$pNGTjIR9_eyPuX;MF)ym(OjObo9Y*JHONtWVS@VIT899Q0y&m4`2tm z#jUul6Z+i?b7-YR8}&2|C~jvS>jO66fkI@!=e$7$Kwqjq@tJ>%4s80arhG0B7sMag zRPuHE3G`(oUN&wusJ5o4<_PIGT^OT8{~{$iNi%gv%IEwRT!VF6itu)#g7;W%sVDb0 zHh?IvH0C&%4|u3ZVPRH1{tIw^7!~1eehIMHU;= zXK&{B5LM+ga8J6K6Gc29QGPSNO~jY_@iQT0lW50ede(a$Db%D1nt zDxN^`wAxeeQF%kybtc-KudjIPA^4mC)e6MY$7f6TCjyE-1x5o%0iy=Wxu2s`A^YI1#4K?+2oPPjmU^Nr0WGs+ZAuCU~jrF{-(s zkQ(RaZoYI9PrDqA?@i30Hbe#unge+JHt7SNzB8aVn(~0VYX_2}HbqRk*ATr*$O}b^ zX*^&i!vna-FQ7yP^Mha@mPo`LChv1=n+V-P2MZ@8cwq*)Q{4B5QL-yE#=7CJzCB5QzrN-aMAH9>p~CeqB9v<=TwU*dhjp! zAbh&X(G?bSw*IS#{frE71-X%&Inv2MNBFjLogKS~w&xWGsDZ=0gmkiT($Glcp2|0B z0DuWTJz_Xv0KfRr$XoOM{vjd!%K7S&7cQ(N+N}9U`{o6cAS!P14dxd9rM`@q?rgGY z00I#wXrP%ayNVxhfGvKqXf28;LPqzF16kB%e+m4IpzjFJz9N%qO?DAQU+|Q0tp~(I z2p&hv7w{^<8^0vAIKJ)2C?a=9uA~pc3x_|89Jt|=WbDnRI+Lp+g2mVs!j!`au^QIf z7n_v*r@SZ{V|p7?jueVG0-#4K`&PUMzz35wiio40KZb)v2#qx0DiMC~@@A@te0>oJKix@=N*6jn9?;mRq(MpPlI}P{LMram zWMk=M9@hdeHVTVU&sM~rJlj!u>Hf7SAB-WBjcGRDHsmYeZFrh*N~d=-2=y9ZP!>>y z)ym*+0GHOJHrSsDg<;iTBe%fE>m^7`t->UtDD3U)M3y)ND}hCn_3=ZPY(DpvVp$x* zi^xp|Nq7+^VtS`D8YVVU`GLarQ@%Z+c4qARPoHr?DMG@IASYWPZvp_U5>ED)hFmZc zbo7R73EOGHdIP?MY?`awg`{wbWR2?{d-l}fDW254464KP_mmgyx|1)D17W)6kTI4u z>QD4}y*j|2+auPSTKqjgJNN;r&;a@eNC}yW>?C^Wy;+VFBe9O|bpn)??lrUUkX{9) z>^xXW*^6aX+#tvihjS0R7(%L8yfrKsd_E#wyqvIHgA$+ogfu7JW1VS8zUjlndB4eW zKZnYZxT&)#6@VI27)_wgq|F;Q#US8KQnUn6Az{>C-%<0in_>?%UfYrCY{Ra`kmSaB z&80S#VQ*-NU{-_i0|M_4yx7$!LOD`mfb~yQ78(iYC1Nz1sN|bOf71itSxm1U;Azps zJ_HgmhUI+_&H4WR$s!2nmZF=MjNF zDAgbG_Peb>t167caUz;lj0=1Z-bg1lP}#;o%cAp}@Z%RGsOMxJEM2zYqf2_F5mEI( z>kahP131n-n%I)3C*ZB=6~aio4ox?ySVZh0q2_XaXmKH+>?z|=AEN&32ngkdyMoj} z`(@SbqFTmz$X}0;>f07od#ucrtR$af)F#NUK zuVsBN4MM-i>P(DkQ<;_!j|k+R%Y_5@Ck}6^b>-WU^VE z8NVjX-r9DTiP^ysuTVAYk>NP|>XTktXaEm2N$~ar{V8#9SKL-k zP<#6M{?OB-)DK;FhWheGib|?gR1&Qhptdav{2`E#tO0yb;|!3f=4ZP2AL)Qlk>I(9~@C2C0_S8EJ`0Pj#oU*#EV4+E~D(2z1D7Wb=o>+h&V zjoU1swtP`x(X=>7>8;3_%X728M^3z^g$Vc(vxx&@Nkl~ZZIyW&u=b3kJs>~nBP=^O zHF`_PM-(=h?6+$y4m0I~;N4k%R=OFL#Ye=YE-Y^-NDVsl9wb*Q4H*NWmMz{~2zlSa zGnJayOzW#qfRaRn8Wjrj*4LT%jG(1s{@Bb}1FgQXhVi?p)--F7>y3$Ok?4K%dX=XB zNI$xlMx+Br1k2RQ4yf0**1QHdL_VJk(Z-t>ZS{OG;e{Z13;LX(YM*Bxzjdj04I@LZ zoHrwvmcGLvxwbbi=H-ca?B$u)o(6Lw!*NfLQX`c^yofPx-e{v`dWe9gbSX1 zKnR|dDcV2GbhN}-`VzP`BHLE^JgI?o=T{M%?N~7U0Lkpk^Ah5~3;j-r2B+xZ?ualF z{^Wxbz{=v6L??pnit=^>QewhfE!SF~zxrKa%MIBC9(Pj8xgdrBA-&0BstS7WBq`zL zv+qFr>Ra3$QzE(<4vb&GCuG(JUp9#a>7YbH1?WBLekIby<=qyo77Jb49~aKSocVp) ztj2(NB>Ns;Hd)T?gPtaOki@Lyp|>hsd=Kc+v(xVYTpCt8^~V}I;dL9`a|hyIv`9cV z@C3lE8sH;R;cfR`Vq{Y>`|7+Hn2C~Z!u(y6@$^OU){CCH9#BdJGBCX^37YU8nlG*v z{!{_B>?I@4jItx!=_ch=hViq`FB4g?!Q{*k=yi6WoD+h*|-ZTV!zfQLkGUKZF`q`)nurB5Zx=0@~HEJ4HKLKCN^h4 z3UR>eR4T%<3%*^hIzLiItY9^-o^hk))T||xQ~ixQ|nHiKktpqYV8*zvT=!#(S!g#Xq8q~8T|OTwt$+WztmAVXmh z@-)gdPg;@zzZ*QOuJMRV<$q*gIo5Ef9(V*(?9&81p?_+4=H#`S@vz#67~Dr69|$TX z+?Rk4Yen0D8fF`{Vb@4xMUjIco&IM$QCz$wiVUbk`hZ4R3P3Bt6O=W+U6gI!%xnjN za%!mShwu-ODotqC&G_-B#c$|}RVA%_Bb+GD0XcAd`=c>7QV0R*tTsOJ(INaymqpnKCCuZY)mT?++fM1`$ahhOt zRbjf^mPwA4j}Ou8A9yqEHjg4K)Jx`=56-W3m^=QiQSj;;k|zz5g(zyp6EHj}3fEA8 z%_;%gE$N?xU?t*|(MP<~z8Oks(SjTfXL1S*`8?57-~zPK#T)A$pW8~XYiWDL^lBJ4 z(UvV(e%oyle!CPv;di8EVfo(4>fSxn4@Sb%C5od>oztK9`ANAqB{xY9M=T}aHeYZj z>Y@NE1?LUXF9VSx;e*r+@l7t$bU$&kWk~ZnFYY4uqOE5sdyhu&OwJnC=Mj9|!ec*j z-LN<@m{*ra?dfV9fm=4hNoky_=0i6HS`y3zLQj8j2cWt%E-5&_TgEgqK0D=V*4;q; z0>Lc?g41Q1_sqn%=s}F8L<_;t1_q(%?y4P;LBL*U>=+xhPzKChB;AH}|TV3Lw0^n~w}hQK{h}#52ZH1QPT-AFm(v z^LX1-NpjXasviJR-ioJ4_j@Xwn@>0UQ1(ZafcfC3-2^1H_CS-w*5?>T!ulohqYcZZ z^;_@OEYlwTxZIfmOC0M~U;g1mG1&q7ro?LL3|Kh($isoE+*KtP9bGYFSOwue9h76+ zJ;laQSlMtnpRWEU*kayC4jv|GO5-4hY$8O3K2@c{M^CBn5-}-Olp4748LX$y%LXwQ z9SjNy=!q4@EVQ-OaPyBdFJgQGEetz~G(xV#Eap*czPhBRmG9Z9D47TbGsqH>2vSqE zVxp#-FP1Fa92B<~wap|h>`$i}JzZ~50Rv@u8=3}stF0l|JGMw>aD>c;&nY!YIOYDm zFgv5`Eq+stN`gUc1qD|ArEiUPQ>N%cvVyA4C0$tEu8wQ7 zuTP9Eus-97cHNXY`od`W+9vs_F}>lgu4InPfD2e?k<>*(%*o;(zoVEkY1i9ZZPRt( z*YEj^tPIPsq*;DA(RSQC76hQ}@8vT5@i^#gVxx^$w6G<-CWgOfC|6hXBG~_mxCEnC zkj#hAq_qNJi%Psyy)UgDk)H=VR0iLbg9zb{j=*#^qu-qX8gc6FFKtsMDxdlz{o12@Zn2b zyG$yl)N-uE7%$c7d~>!QGno}7t^6HRF_B@}-A`rXl&8lg%>fdlW2Wm{8 z5^5T$3vYk-T9QoKVli4Nbg2&PtCSSF7s~U^^+QDjVn&JAFzUH^N)GP+_pH9hvq$(c z6{w5uq`q;}LulC(Z;s1b6|eGZUcrnC-{L4-mR-io_ZG+!lGD{Bf6Cw*$o9E(Ua`9q ziC95Dtkf19id=1LDM*S>dQ?Hcm=!X z+eJ6UV~qH+i71LOe#(PgNcNuV^Vy}v5#$!UsXxjlIQ3K7o~z(7Pi|A=44M2r#B(V) zzvadBsq3$;8isZvx0-)|eY)nKZolxRXq)Exk(E^XVq4daAu|_(rU?}xv@;K3+L)%n zyA;!qBYPBvwC%hgAk%uZjKE%S{Y!4k(VwO_fndX5F9#Z~eryKH6T^S6l`wVSglj|OgankTs1RNNtDMhl8UVs zqq?7>Ww!xZ3@~rCS&TLWsz61n9_>r5%iz$9c~Z~lPMAwn6YWo&XJctnIl-h3AHO;S zTmv*nI{Ks1i-2V}g9s)2kBd`5xeEI-*bn4%L?Or)d63W1p+B7D`X6kyI|M47YuMN8TQTS@%cM0Um3~+)8$_r^_{{^z$isS27|Dcc+EOTir@s0!a^n9T zAq~=vm$#uiw!X00^2W{P@@JK4=Zd?ph<&B}&oG^@vV20Mnirn;u*V7#e_&$c% zUYe1B9ngsC)c|D_BftJLG6hw_32G`J8KJsiDMRmCuf#-a_m@r>rs{Nj-=s`aDIcIWXleb_En=18$aeWQ*%(~A2qWI-t*xR&+Z=`D?orxu>} zQ7X^{fLdYEm#_)gKumd(p7{ZyPpg-OUT^l_6pPprl5!F6KQA*^H8tIT5ahQAlC$8c zyVwy$4@-yPO)sNak>pROmn>S`$4if6pO1Aa7K9S(K zyc*%6BSa)LBmu_+_xZyrt*sdtZ>0T}xrLb#5YJk^TC@;x^C^9pw0cqJd)+ZDd-?m6 zrDKFZYs{mPDmyI|c>!{|@o!Q_o|!mbWzGsPGLh_G9R>+HR+BC2(^GFa#;0otb7{mZ z*e@vXXx4{E4S4YazO$2}l#ZXpYb#f%-cJ2Ju$=rUE##W(I_pF?u8nYJI*V`C{i9&5 zHgb#bn^4X7yO4VbIUdw`AcQV#k-*|P-@tIeRfVk9w$`FjkB%qUE5hZX{gv=-Fa&2d0&|UBM($qa5)YeIlurY*lcfdsX(E( z5|Mf!0~RAI+IU@E(n~@Mk~t|1i5EzOl_znH8+q~a{UW%Q39pv*^HjdZOr*>2^UK|Q z4{gzhBi8a9HvrWnz;m5I)Gp0?+RU+P?Yj&o^Qw%DCq}p`^bqAJCi;t23^KDl+A&>j zBC$fMAS%0*U?+S&)ODKW`NKJpN*)5PrBC`H9O%HITT6>d8+|CICka+jw$B2Spf=S7r;dsrNJo*mTqV?`e$R5$4H5gBZbM?I58~bT?%QwppB*#FzT2It!e!3t z@GKl()Jrc%1?^SVx0#1d7IkhfvSXG)Ln{xq_bpjGWFQX4CPMhcWi-Ar4bY2V$bB4_ ziea((eq;P8M~n?fQc}T;9qp1;f6-6(SNNXb?6Cmg`ns>&E;RUAoVRdLQ(gC9aE1DP z=4FAz|74kL8D~j366pmE6Q@+R`#+~s!y z&pzPd2-=Jk`=I><;($$HqQ|E)XWIaCQz3Wb9po=vJI2fciLB?XBVGAq6$O{u@#gZ3 z`&c0lxk9ABWAae&nDej8?hGuOkCy}^sqTgHj2U-gvE%?9*g zcjU~!u2vwwU4~@S@9V2@qU#Aj+4Ph|r4}NbJ|Y&g9Xa%rBm(o)i%gvazX4{jN`-bN#$^v+TXC13%|_@gM3cD)p`RUZ*83b*R4_sS&OA*nLmkm^NJ* zlQ~}*vwKibb7VYG-jMJgVN$DOsFl9Z)4y44PRA+O*Z^?+4&0M(ZnXM&i3vIB(&q@u zbMOVn|5hhGX}s*K9B4ljvlJ`#7rb^y1|I)5Tw> zFeF?2_I_Y^2ONK1t#!@}wa#(Q^JcL5lDVew0>pDoXpmK7P?F8L;J|9NK=O!3V~|kt zJjNq1$R%!i{UrYkFG1VHk(zmcZC!<;k8r0dMmS0v@j>MEB*X?5wtzFvf6V3tmu zxV2Wz;r`AtP~VQh-sASrqeW+5bIGIMVgqY(^Py<>>C4p!SG_k^yT+{_ z9FrPsgAOg{*1QMCRefAu3JWiOHiH=^?VZ93NH5!t6j0f=q=cIe^Jc`%L7Rf!>U|6M z8(@=V9STis3+-$-EMjcV1(KUPcTWvh`6?H!G|fUcAtwWcPRR zKW$UqTi5zTWV}C5!l+K{_Ci%Z95I*G3z*|&t0OhLwB?4Y(%!@FyN+ztdtFU1#cvBF zJ03c6l(sb7@%G#MV(xuud&%!g8s5RR*Wxsq8X9W1x6r%J5$M_7S=HLCZ0pr)8H&}j z=*~Y_V)`uCzXYq1tZu2f+ls6b7{Zjipg9ZP?10P5-loi-uUj+-)}HWac1~WUik@fj z^4ESN;bP?eFiub3(}!zyIC`>_>S!EN(JWBAl^G;UIo{?3X9)Hl&2P9e~q3 z!(k9gTN;qQeQO3ZP#3OAWmLyTkMA^SUfrTSwJrT0CD!W)%qs_6h)KT_o)KR zG3`EoItJE*Ps^R>7eV;gfMeNzXE;V3x443FjTTt%>j#OhKFW4x(Kj{^J+qqXhQ(C9 z@Npg}=9~Y#T2k6eeTJ-ZmQG=I#o7yQCE@opaQtd-g0h{LdmN)O@Yi2klt4%$VD$4R z2CuKLNLpXBz1f?1pCc|Ny`eHfUhwJ_snVQsO#$*o0>&K%+wnOcP&H}m*G{gms^B+( zZT-dGH+f>-IACtLcA~#`e8ztoK$vKg1+Q4JCJm}x;)J~|TkgH)e$8aaZRj7tO?o0%`f8$adS`cR1^qafR3Y_0wz6@B@k^2i zmN+tYrp0G-9+^gOR_NfHc0SbLdySp5F3diRkybUX3fb+@x4uqn^IH?2ZH|6yo4mW2 zX$sTI+C7EguL(}=uHO?Fmz%~e`Y_*Tzc7FOtTolYZGze#ceF!zxhZLSiQkjvD0B66 z9>_jkXj!J&WAbuBSfaLBONVi#U2~z;h)-OFS8_cvsGe7|aeAd>VVg=f(VqZTD@^1h zo$|Y+l*i+hDU1!P`3? zbo;Ou{s+%oH_JaPjb*av@V}@l&`aEVew;{Oc!7MOlYF=ouQ?AN@ZP zuV-8xMa0KB7WDn$oF}O)a@=2j=k1%*M#a(k8$qxu2RX zP}kOb&v@0Na6$|hwq8uNpI>mN+0)$IXT41h5Zj9-CWKY_Zf_;D&QIqj?Ji{)RoWRl zOfH$;gRM5}gyYCH8Zw+oMep~Y9+mPfk5}6tG7n~6MD41mET(3qnkJb0S^Pv7sftX^HG=lk(N@XBqx| zY#Ko=Q_CNt>vUGkLL?mbCN!FM1(&o847H3brhiIdUXB#2jcjVC!DdQoxr zYD0r@v$O+0hx&#*3hhtAuK25IcFaoxp|Dw@>7}v~?H6@r&zGx%U)r9Rzf5iWyI2h5 zXyTo}7PwE=ch~|H!}Xd_+7R<;!EB6K zt^FE5(uf~ZIk0NxwFmRf4D9yKh4CV2_J#!mydwCCxbEspnE&kV-+2&D{xxN2^HqB!#-K5e zlQSvnu*5n5V!3H0Ik6!+|x8T729mBNHQFv8Gd8F>taL7c9+*Qxl(5W1GF0P90op^ou zbh0NdQ=rOFSg`NEPv~#OXfpg zLzm>mTJw&RmofG1Xi#&nSV3lq@2YuS*(2ACdGcErzQf0-2i9K)Ri7l}M-P=gW5|TZ z=_gR-zM1>bqFr%%9L899eTJgS8#aFE+aHPaXPfom~)g zxn>>g<1#;*hsSGw`CN^K&Gr6{Q@jpnShC^=e(~zL=3(tQ(Os@{C8043+ zA2Li{Z1UJATYuU0+jy}nTW3-}XUTfWHU{L;>mM65BE#ddjz(dbwR+IZl z{9lBV`dg)Cljif5YDyJMSDCTM_T2p5^dwV*?c)-*gsMejyw@{j`5J0*khIFwn2Ajk z>uv)$(Iww}Tn*z>7mIyUdByUcq}uoUxW23m583<}s=1&ri+An>aA+LUKFna1Tj`!5 z@ghI%J#(1e4#PmiQN}PXq{m!~D5uD2nrEaS0>6K_wc0HY7(H9Plflx#*B%$vM|+8p z$r+)O91PU52XCH{9SJ&b)^R%sm^pl2Rq*JJeZr4l@4g zm>tXA=)VawiyM&J&gH6Cp6^Mcm)2e%TKGr>q_VYy>5ND^t$#m=`ODuQn?%<@Q zUVWW93rsnh9b5RFNpA++mP3w|tD8zq1lrGZ`lml!!+pEsdlV>^KN;m3#spYc6Sd9Tk8e=_e<;z zBKlyRm5kO3E5pV-Ml#2 zUiEj>-`V*VXsr@C(NYsVOlp&y8M60l{xA7M$1C&sZ*>wj-3gP8+ewV8XZM|^p9CNJ za)`AAx?giiO~2rkSskF4l#YI(1E5n@0vQNV_2vR2=Cy9BJ%g8n(cv`PHQ1v=>g7}R zy??X){mjjFsz-cMJ6B;~k|4de+lU=rMcpAy^xDeU#qO*`5Cb2Rw#Z`TuD`K)7FJ+H zu#v~-O8oWfUK^iaJ_E9osl~QxhMBc)OGz2dB|fhT*X?vqWb(iLIn%k=8ytG+IN@Y3 zT2MM{bh(nWBUs{NTWDJdJKmYD{PU;!0^^0tRKhv4yIJ`BK;2nMw!cb(b$aYJ$5^_V%CRKmaFhEVca#qSq&P+M`cmh7|a`~X; zs>b))V=Re&*<2W&Io`Oe92l*ay>kllBIRUvy+~73zWQBp_0F`$=ju&`)DZLajC{@( z31EJ{7q-GKw@Y{!AaFg~9*XHF(=fSgLhkl$&0JOMRD>QZ|FRCc#$9oV3#Om2fOc@a zCI{>Ir#7pkZ$YcK#_|v9MVou$|}7{KEr=_iUFEe-@hA z<#R?p;*DOxTIh90xV5gc>ocFi*M-ZM-Jj#Perk@HvRtm${DZ@?TgdIsV` zJpC;EwWgixjAThTYPKdkspro-$tPcN+Xjcd{%yipf0dhb*C>|uvXsR+xGmJCgbrgB9CU_^g{01&pr7^wva4@9`%R4 z(b(5npbukP;_Wf&)2w^2T3-@w-g;>L;{#2$oVS8~^K@2Lz`~7sdI_e2z-|$s#5^U0 z5(wh>W-5!N57L?rtO_|EPT<{3adXNkdSrJO9uJyt9kiJ>4{n;kZJcBHL%gqx$K#|5 zux5ZkeSq>s`gMks6?~pNB=J|-?TgnHBVAa3Od`|bbV%*rQKvAW+DYa|`SaJEjA}Y< zCaKtt>hX8pj2kCjuB-mZ)E5FjJx>mr56OFE<%8`tjLSNn)KXK=mG45N7M+P*{JiV7 zYg9>w+tv!UPH~A3bee`I}teU|Fgjri82rAySN>SFoUsO=@i zc-)c8VtTXLWZDCpp*b;%Ixh~ZDA_p8ShEjD7m{wY+t)voo(Qau$SBu_~B)pV=K4RZp`XQ!+HU+aC`8d zn$IIU%V^vc%M@dwOmNTJJAsceeH_&21^DjVtEiCEN%FwX0nwo8h5tp!I=%s)4uJWsvbJ-U7#@8ils(u7Z~>4%5s&ON&^anbGq z7*xs?5yf!5yZNHCgNMhZ&%)*9v>i7sh*drg+o4kyjjpe&qgRJZ5O#+y+s!Zf+~tD& zL~9-gOQ!en7Hh3${mIHqx-(j0_|{5MLf)j0b+9 z%rekyR-OEJ`!@P-a?1^++gLZnWc8QAD*DfdveAFI-Gc+_-pRK5Zcfw2%bH{`VGp@S z=ntbll@I1^}WU*nmCpWa4|H8qLubP=Bfg)h-mZppMWr6bt+K9KMF zG^qyOH1J4NH|YNg^sDcK3{?Z}&UW%*p9HleB>Rm>YmW2CB)vc9hXB69h|5eB7*v8! z&&JPV$3o=uP>`D)jEa__*ZJh+grCQqKEcR=ONf&sH%B2*R=BCr=uC!Menugl!bZ-e zh#`R|JdhSdXJW5Eur!}7^5S}T?qcDU*$@oXULg7e7CMiK01J{)-HqbcJioV>+gq{K z&y!il_q?qxlOM!CuvkR&92b9SzAK{by3lB?TD7x z-+d)h{zC*V+nUOFe5AM458#&KKTf7=83%;++yl*}6@YwxzgBP*uVzE>alFBNH zUUqKkSN-PTV05ixb=Dec)4cy@(P55MwfR)t=xz-NY+T4 zJc;5q>52D1e|W#|f^-3nlPx-`&N<+`MGV37#VRn0NJ-1ldHl?{WFXf*V zvqqB+88_$dJ7mleAqR0kOF)Cojv_l|Bii}`JVKp=N4WQUnuRaS99X~$)T&dc`JqL8 zR8Z^J`PJC$EXy}U$d1FIzZ^iB)#9|_IGeH^g~pD<7?p@2QOfwa*tfG6D4FnA_jYE# z$Hmwv9?Sb9%tcwgr7KX>W%!c_O!p`8heZOhqY++13J#O&rq$=J`=f}M+#x$7WBj+5 zC{mg=)zb)Hqn|(6zWS!f?1|86lEk%KcvjH7h+w?1can9L#`E14Y&L&0ssA3}wyl$0 zu86>DoO5NQs?wR1?g?!|xqIV?3=JXKp$f$K#n(%CwI!{aU#G>-sl5Jj+RrdXtO_1h zsK?$!iyuXV|JzPZ*V}cnQN2i-C1O9D0rwMt&y_1*@f-WDEO5`%00(0KkTz=iVeEd7$IN6OyR$=WM zvX5l`m2doL=9kaZY)aM@lfU15u1OLKzeubn~x1lWX#`D{<2*#A%Tp zJWc)S`hx9^KFa&pG~O?qL?5zTaQK-+3J=z|2+vFj2~5esR*}PPa(3P2fkDy-v;6__ zTMqc!vmj?hlrGt*pe)w0Z!LFYFP0n3&JBR-#Uh#v?iUYXtl=y8^7USmiYYmLnD3%d zCb@!K^XIU_!#KrZ=fl)hyog@|)0@t7ITgxP*^To0#ce-od7m1aTevKsTp7``o`204w-F|CUf?ID(2}s(j(VyA^9T$_W;P7L33*=tsG$G*; zbbLkL_$wv(wTbzH`nMy1QDsRb8=qoZoAM{R7e~wLaQa|avnCKT-KCIax#P)y`5YV0 z4H*Ur67>bpZ6^C7)MyI6m#oN*Q#pczY~O`A7~&jp`|&G{g~XV_6vz`&pm<1?ZfD7;2+MTVU}7;4DfPtoBKfjFY4Gz9|boPm@0 z@x-ZYo5az=wk%)g#(F~58ARGjM=tDcDZEZIdWj=R_XKkU|CrAD%O3HcD1P%CAAEXa zJ=429^aBR==ik1Bs~mm!DmVG>Ui!nT3T4%1F>}U8$6qQv>pt73ZKKybhB&qy^ew9p z;wJ@9wvtsoj_CNyG34Ag)8wi*lHs7@vM{BICt5C>@v<4Zb&=1Ut!n7ZtOKMCTdM&| zRPYjaZT-C`VA3tnAyRH<*h3Vlns=1juX>#@o`fA9VAx;z=(ocgTf-%8}4{6 zaJ`>zWL-0UzuJdTXv6RNa=$(t07fF~{ZV~S404yd=6n%!&C; z#nM#%5QC%j-ddz>S5dS@@cw*s^^0XxfmZ@4V6NQ5z1?oOu+2hIf8}`6BtXz+K>!u` z!4M^nw6nTidDaCP(2DatT6G7ltMNT0GAq4WFKfjQ!UwBqzXP&7HJS}NuQi3)j0qho zpKSNK*l$3h{Ud;IkDqAuxdW6LF+DldY~3WS0gPn8 zY!-&?4aHD`lQ;Rgu>@*b(Bz^DosFg5W6fF>oR`*Xt7MBVgE@6Ox!PUGJB+I6y>I8qz!LDG=mk(OB9`! z88Un4=F};tRZ0e(tURTMkNh$bgTrFn)M;gH>s+=wb2LL0%L@!Oj?h20py1T z;U9=%X508fLeNmSRPLb(w?wZdDNs7Q@jcu4a&x$0r^wym26L9Qn*^|mSa5di0Y#DD z89`&NeAjO9`IJFs{MprEwn`eSQNHu(!=z88kN?%^`08(4Z+-=c5ew#B{CIyzw(Sv% z>=p7<=6@ubI!z$g1FZd=_ROm~eTQV$6*3XKpNFBjm?}10OO6_;G+)e*bG_>G`@;u@ zz-rP@9(TITQRFS&w)=M%_HTq&{MNI(+f(Ih7=L&E*^fcmd67vzw*GC*d;}b@aY7@) z|K5toV#Bb!BG45e!gCV4Cla+2WrdV0ShHIE?`+4O86#TO(eZhEj1QtG9@e!QW|K8c z;Gxb8FnfP9GTCT#Fy03>?BDon@ZY4TWp8*~6{PG|POjAYCN_NcG4NEd9{42^5Pjiu z(!rzixFbrmERxjir1?eFOW-gTV-t%Rm~V;p1tSo z;&~Ra2L^9(@w|3S>(;z+aOktp9nMn>w)ksGKlAluhv^vvP<=NxWViRs4Ibm0MJ6zO z{1E$cL6!^KlzeV{_q?|1j{pf;)Xj7&KXrIMJhlUZ2}z z&9Vj7&nu7Jpm6qQ?KtSGUT&nc@oCpD^qxcl7-0fWBY$E@Y_>>7gq`zdtNh|vc7Oqh zmoyEf5eCSQ6A}2Hc8#kVmM{s4Z6bV>?_!hxFrFO;Z^$H2Vr5_Lwhc);jlun+*+!tJ_>=qm&_*9xpXJP3jISG5 ziyf{O21EYb(CGV8quH$mhTp`OMNQJt7W{69uRIdSb(Bo$&fwH4IMIP$Obm;@Z^MgF zG!EIHn#-PS^Z(-o1g6~xd$p7aN3yIp2&TJG+v^Gi82r%Ne<@j9^UxEwDXn*4hOHhb z_vpAa?FkcE(A)uMKXB(Sg6nJ@!Od^uQ{5eBUSLz__>WcI0C6#G#7kW%Wt3F zVWHeSr~a)i!gF6+(Ni10BT&_0`Y%*HlO1QsNvRXmCj7cVGr9gg#RXJR+?X{7D~<5pZc93FaSA8=y_p)q19}_ z2NrVlg8^)ece`A9RUe686tJJ9JK5IWUZ&Ez- z*2o3`9!}R zlGWVP{&<@`Qw5J92~UCkM4$G%_PeHu-HQuKo`YX|38a~BT`M%p0XA^&XUFk;oRgsS zkHwW$n)Xy3DvlaBDn=h0s|RRXTLZ-K-)ig8m>t?Z0|iH6rBycRaNQ9M*%wj7U-W}m zhd!i!hwVZ=ub&OqtFC^tof}m{iI_;P=^b<44tWdUj%sNY>l3K-Jo)XVe$^enncM*O zYvel2&__%qk_U&>T1~*X4E#C*9!AZ6B~Lc?Jg+q;ZtM4i$(e$}RxF!dcHVK3Sb{NH zdy!3V(Vub~vIX}WQK1&FDGpGM(CEB-m#TD_NG+rb-PvToy$P!fpqCD=$2?048%oM=(5Hg5jCNLQoP4dKYK0wV8M zjf)#1A9Z`jfb2_;-Cc)=p0VV>AaFvLpQY}sfGjU&=GuDA+aHTbrZKQ<^>CXuXBWpHRng)SHm+A=GDa1i-zCuC9kAOHPJVoIyW2QQ|_?H zX*@_|3L

HW;ibn;!YB_}Ddo#(h0Ro2TTE;_tI_L}TEF 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 m3=yH=2SE@7K@bGN5b+Pt2zOQe@H)Q$0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + ryu-openflow-controller + + + nova-compute + + VMtenant-X + + OVS + + physical host + + + + quantum_ovs_agent + + associates OVS port to network id + + + + eth + + + network_id + + external port + + diff --git a/doc/source/images/compute-node.png b/doc/source/images/compute-node.png new file mode 100644 index 0000000000000000000000000000000000000000..50efa04f8e0557666aa741723ef2fb0029255c3e GIT binary patch literal 72923 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 z z2Cbii#~|-#NuOHgA_7?HZe(rB7G+lr$Ah#6|O{ zE_KiFA6}h&MHeIi=g}q@9$xGwYfFK+O6sp&R{)BQKBCcDTs(I>=Ry-S+|et;y!3gt z2R$G}{G|JHG6g0uRx!4(rFGh1lJ&WS!E5-F*8H8(mmjw!*#pCIiuQ`_vaY%KIp>K$ zHuv$28qwX+9CEc~jF9g%d#1IHgYr9kgs#w+tpzxvQuv(9^7hYjc#6hg*i9a1Luad( zw1;BZ>l%SkdBbpx&p!PN>RfSr^v(S>q4HOBe=RmEgL$s?l*g*dcXK{p$K8iESSt40 zK6m79lf-JydGTjoRwM64qTZ!XkX;E&M$K>j!gITj{!->y*O~P%|l|7dvlLXt`s{v z&!Ke4uN`Q9+x+};Y)t^{O+YHEdKko8JRv^!p%7_m*A$Q8zVW3D2w^<&$Qt!!?nm$sldROZ6sjP zu8I2NYN^Z+-Wr~#nCEssqtNm{kKKk1r>uSLQm<%y$FSJA^G}PH?S@qa&0Kjyu>#9J z^}E-8Z4tqt{4NhCr`RJl7FsfDm5zHTC?ejYOITvhHB?9P3x?NAju|&M2?cXG^9^NVo)_$XOYInA4PL5;O_FVP?>F;8ca+0U}Xo5%b zmihvFV)njW&!KBkV?Hx@@2sTrei~oNiM4b;G`~q}%H^9&nzNyX%V}M9)vw>bO8zu< z{>k-v0)PMWrMclJbL2l8xARUb-onAUIuIu^d~(!nGv-n?abxR2(Ay_Yb(u3pxv%6V|T7(U%!N)+|y@!D=i0TKl+_<;Nx~2 zGksmp-ltyPek8`Y)Ri*6{9t_HlN0|!PUYgKkc*ud&A(z99sSutkDQnKPjj#5Qd@`E z(q8Z+-anP+kNCVg`m$gfT5P6StoQl+MY)LRYE6u38xA_Q0#~BQ?miAfl#k6pjA4pf z)Q!jO=(Kz1OPPUUO?s;?dW-R*+t`epmO2y^IJZ){aJ5f&_j>wT;{xx&D|i+1(n44g zgtq)v1M#8hVxdxI202X_EmdUSizk|KFnZqS%BIbm;oNaE|YcEIB_A{K|5PV6wR5~edXwIFy|U)AS8b$$0VcHI0M zrJdyX3yx8FhFH7MFZId6Bb9`AKKCa}Qa_#_JfsdTMSh9tl^l8K2T(STyY2g!O4cp$ zwHmX#EmeCcCFx>CVTujp+exU|5^;YzPzMyB4el*!T7<5q!i!#{Ic~a;D^ID2%CWWH zh$b&2uN~qEGz@IY)e2u6IpCYrS%-u?98Fb!&Xz*$)_YDOdM@@It?Xdam)4`Q_!JWY zu5!QlqHx8ccQt}izREV`J+f+fI?*EEX9Ue(2Vy?+wc_Vn?bAlvft!gR)LC-h*z7-C zj}7Q^JZ^+&M^0=QEFB+w{#mP?!4^I%lB*-Bkkh#Rxb4=qo?l;Ssrbl%^?Hx*^Y6M$ zXI6sJ;7cea@Y{a6^*3dk;VBbtL*v!nT}hjFTBEDN-b9TC9w1H5zh(Kf`OlJG=(t}j zPpv6OpTd)4R9$M|c~?GSz3*T=pUSq*P0tGmXYC;^kDbcAY zDKBZcI_7n3>{(I4g>ucn*HEO}VqN3oHrR3;H95#aOZYo??Cz=6zBS(bctm7;B(-6C z!O538rtUhPwd)jkpq@BRb3+h5ljj$B|6wUQxR3woZ#4uitB}W96XNJ~{auWs1%G8N z45tk%9D<3W#cEX6hU;V_3q0MZoh9fSEpXlLlJ@PSv9*-4vs0~cm3t>tKCg`@&-YRa z>a?q#4w`bb-Ar-Y^Cq)xA%>O`iLk3wl=ffwula8)3tUg!bt#p)X-;97ez+GVM(y#% z@zWW(nX{dKtV=dD68j-VevgRSsr$G!DrUYI5qI7#Nm3JHjs+mOcOx|xX<6-GT{ALJ z+&{gCt#HXX)BRO)Yp(S=`@x5wtY`hg(>Lg)Kl<`L?@ydiw&C$U3f`t=V{X%@@F13J zEhP*Tgi|Q&?eM!t^F6e2Z9|9kmtHHJQdd)ZvRONqqdzK`oP2^Z7IS*1Y@1F8th&EH zqN3`GZdLinhElY<=Ss7Z8CgyNM5nLb!?3T2`HuSM+8(cPrvVF0?9h&Pe9x!xEk80E z)oLdaFIk3yp%M)lrSfZ!9aDF=8a`e0v_N~>bF=kJpj2>fS=Tz{W^GzjX-m?i%|`C% zPxf6bX-28~J^4D(*p%zW_&vBWYNho)N!b{aWsV2<3srH9iNXC488@yXww8}Cds8v? zS{NtA&MV9NUzJ}pS-giW`94!V3d@uh!5(b_n5{@&A-<^dcse^9WjtE^&S(+l1j>n z`^Hq6Bor$A+jZH%jx#Vji&&?z@0d%Lg8OcF5@&+2^*K7O`jakXk2{LlW1Jn861wV> zm^PNB?kB;Wlrk5%rjtO2@fBFU7QD>g;E7+jvk_=Yh@=h@OdvE8K8Z8d#V){HZsaK? z+!{tC647h1RsYv| z>E?)F*6hc)?_E7~Z0Qnl%`JX5FfnoEU&*L#PSSWPuCbNvc9_uXUHt;Qv>BD-_Fulgi~Ogy+`@~(>R9g8tNp>6{C+{sV0Uu6h6Tlkzl<~w zii;pm4M&ssd&#E`?F^W_)hcS`C59|`V{HhUj5rz< z!s0$mApjpUSjxh{YE&Aw5XQkkIIm93p;I&dF> zjuB_ZJ9h_?0F_SxAD=%mHP*vp^fHAF)$fh-6CKY86jJk_H3PKQ+fF3{$Y2m z^%AkPCL*60M>r7;hK(=mOy0iQlaVx8dAVhAg*ZJ*+x{1iSD#<$yjJ~=k|{6sc^bL#fjLI{Q99a`G`s| zP`t!yHX~`Q_A+66urO1Ii9^cEX33lL#4U3slU+8F!ng*g4$jAd<0{F>)K46X2bMfMU?)~HWst!mr z^6gHc9P2X=T>nGNVb^pNL%wd*YEe3}UyWHO97GFCnXA}Lu()FJMD)7BVN^`S7RG{Q zeVJ@qTl=yYjlqG$zZusRnHGgF^4IN-S&9@iLhS&pd6GI0PJ6r##Xq-e#d}ibJ_fzh zf(<5mKCv3>g_7$nrw%v(RU=7nQh>nnh@_?k(V-CJcMxg?t|OKy!p~96J;4ZjEMif( zc~Fh^)n)0qpy_Y(stcEVy{nf@3+xMw`S>3*llJe}z9;`+cfbqy+`XWprf9ghI!}gd zIFgU+psb4t=N&7Bv>RKdMboOydfzJs$zQeeFJ)d{dR}A%;iRx6hf-@S|8=K>QnxR} zSfIy#;?3^5kpZ7S6Aq*4V*BR$vG04wUy3Spa|6ZJdFPqyMJ!e^j|3)1?@^c2qMY<0 zQf}MJn5&n3x0=)PV~9z&z?=VkK|5d;h-nXz1W0)?-|B#Asz4Zt0QgD#k@c4yZf+EB zn-nc}yIc2dA_M2(KG0+&;d z4WmU><0&U!&2}&%#_R?EV9`$A_zcRdx4tF{|EkJNtwe2g+1?+rBiL$eJ_`!~E{Bj6 z#6NC-1v>?*vayR51~JCuNhXH?MAYZ{k;zZA06tSmT!%54Q6UNN4u|tQ-XRIFst2gK zi4`J4)TQe!|M%Un;ySO1J&5_7|TkMleE zmKTM|gbBa|bEO~(Uq_EOHcnuV;_9|^MFO&G*U}U&I8@mMuj9dQME`|5;8Us(qdgcTf7rJMs649RLPL5Ca^@zG_-PeizW0 zT8^DS0e?#}Y$+CYV9)@->~;9QcSunK-uMGN{|%AAY$pP^6^tqcx&6N;{y~5<{Xz+z zB`RR}Snw%WA~WGC;}c-Y8ObTMLg*P5YeL^tfjO5TXN35`dhf~W|(E`N-l{sG_27p>aIVOrJ)r0|1 z+!Zhel(-cufujHbLObC^!qFI1=+~F-9mj{=j2z5=|3Orj2XJrS=o@mT+4(yfR3KYN~RuElyz#Gluah|C-;(3yi2nwAhQTz+E zEVvP@2jKW7=}(7(tc!=NOMt8!izJhPBopH%Tp~dd zMe_R=btC}kOhS;vH;qK-gv0Wow4t1GxSgnke;|^E`&{_|@J3i2&XgC7hs;D@=tYg5 z9Y~|_5-ARW8XZ9ammW#2W_uV=RrviX#8VgVQm)C5$g~sVE>qbaa}O&Y-eHDDGF%Jq zA$U>ULx*JYV%&d#*yHQP0T;DIftX`fHfF9K23)p`Li|tl7#%o>06-p}p;vs*P81wR zf-^A5Ovh^mjmcI#Yek><$;l;~%SNGBCY;9jJ#YyEna3DqaqT)@T;p^`vT_~HavgUG zIsT5!6MyAZEK9 z7!_$49D_ABU~*=}B`w|R3IcC2lj*rEuRKzNqM>RZ3NUt^doxFjG2ep-gqJ}qBNyBJ z4@3TeAKd22lyWY2{Fj>TY9*-Ila<7);2=^hN)lOuYFP&@k9w`!eh)(p-)FKCc`~}jXo>i}iUd4_W$GFI*sKYd0w1IlbEt$UoFHnz z>iRu7TKY_&riz03S4O`BOcfKW+KY4gX($WVNSu1S!`B_4f(TH`{)|XPqDBhI48DB= zfVmXwZ)_!P;kNw0IeIs3D()7Pt=o?)2Gw_<-?MSShUN0j%haGY4UlmBvX{My~}2F(adrhT;LX3i+wE{{xNe49f=n!8Z^|Pe&J^+ zfta*g9mCc1k!`4$sDJx(y`Fy}-(O4KV_6fNPgz6ojZ#uVyTT0bZO$Zm#YG)Jul!~f z&wndvBbuI9shTko{Zw#0rdfjdGs&Z{N5Z9-@?&h-5X?l3g9Y#}M;ACE-afwUaY&^m6pH^Xj%WLB41br$1(6N*gyAXn2XCoGTGxp%fG0CDVM$~CDc1Ed);t3Ic5m}|MtYxik5C#A>v$T>Hf!WEWRD%XD?$Wz6 z9?s;_quh&yUbHIZvb2ho2Pqk5Y<5ssys619$^Ub#$ zvr8RftjT+BNk~S65n_0|nIiPP>G;D{E}5UVY|JuVV#ih_w=Y5Sl6r6 zXJG$Mp;e6CCp=@C_`6GWYfI~&v(>Id5oPAh*vejCw(NgVgWpPD)@ikJJg#H>&I& zBM_jLE<63X)LnY|t2$f2u0CjcnmmNXf`_X966 zp!%D)@-N>}5`D!>Y$4`FO9UYL)0kR?g`z`GI$MuX^JTqIxw~hNfXu0(=sDl-gG=4r~1rKM-ud8a#d1LOXFHhX#Clg8x?l5?@ekT zXXDA^wQ#D@vN(t~(Qx#Uj!{)~DIy2j59BfROf>>xmc7!HJj<&Fpg?rA+Qt@=&$WY9 z*`jILVihmj%Hf-y{EgaAkv|u0Y8k(K4sPyRa^48)V*)^kZV!7#iB_A%qJ@X7Vz`*a zn*W{ree`mdPzp;E7D0A@WB#BmHURv=pkt>Wo!4vXLjjCK-eSKuiIqaU{3`IZQO`OY zq7p;_PzhL=6jT)rR{Nb#H+=TcAo(XZY9lri73f;7`bvwuBw=#@lA2yjz&Jt?>q1016u&d(k^4PaHmyS(C6JkyKcQXc z=2JX6Y0e{rxA^&XoaBdWgbQVvO&maG&$gGF?#Y=rd)8Fztg=G6y_AHK`I z991qTVf>y`0+Z^0`x@r=-T{Ea?l%ev3(dRQ@`WcK&%fKR%_Dwlq{NA|PR}=vPG(VAcy%TO2AxR;bNHL8IKV@uEs@QejAH-n-r~>(;yE8-7L%UVm zo1Mnd=Ud6G<)YF#-A4a=-JdvhBP*!?J`0Q%LtcL;0mV2`_Bb;9^K+-4bKu0F-u>de z!%$)~CoMka{S_{dbPxgw5c!!<>V1tOfFFz)D1Tdf?2)##KojznNFjK{ENt0tGGORw zOtXP)Yn<_y4<5C&x+9~H$C7P%Gv(~nVBK?Vz1{Miks7-DX-(7vmqq8muzs6Ynel#Q zV)=`JR-{0IqP{}rk)L1A<_n&#vR=l#TyF6kMIJ_VO;=#)iP^QH#oNF~z?l;<|-yvo~og`N#mPMVPr$?8c_$9^v zq33f5Y$t4sg82}a6HB4lF`8Zn)_Bm*?OmeBjahghLBe~E_K!={V(|8UBqQvS`ZaE_B{Bu zk>j#Yj}r$!0Ib-RaC_e_uuVJj>WqpLg#mzmLTh(QX+?a2!Q(Nb#(6$J1ki4|Z_nQQ zH%X|0K0}gHxwvmb7R1Sj0F>SzpuO?zo#jY#-hH%Yt$n3*|8&^)h(RsQl$T0$W-$?W z+zer&QeaLLbG?&NXEI)BIBgoZcPnLk@BZXMYQfQ1PacW8*Q1=nudj@MJSQ((WuN}W z0E23e0Mjboud52EZe*$qHu5{D__NZ?tIS&N6FeQnrpmc*3?86a0T@((0>m^DL#EZbd^v?3rR6Qu z6d4{zJ@)^z04AAnhzbJP{oe;|hd7Kbp8~jP+X~`buMc-ElV&dA(s4|J+5P#p%WWR| z8k4+oiDYj~3~2)8-8&S_c(&?Q={USNh^bTe2uziQXE;`w=!F5*@~VdV5~Iw(6O+G* zHv@it_igd>ZO=+{?P2OPu;!cjP?n2V91f@o8H4h(FH5HhH0A>x97W3hP=j*0r z=h`XdT|q=~G~CW0WM=9%p+n1!eaq4$*i5POTO(7K~Gv6au`GIPFX z-8_kJwCwcXF|T$8eft6czHVL+DrwF>W2t56e_{AQRn@*^n$VFX~xzR8gp9FP>#}%n*H_O=L^Br!!*r*fra1^VPLNa zUX*_hG@l%kGE8Y5jUYpDerziVRDGPt)kp(?3{i(eWboyL|27L#;rQt`;A8JnOZL0m z@a%??o(o1ei}LMBO(iH43A7B*7dbq&G!~uy_S~|gr8J@8L$$BcRBO(Ij9!4R!|rA+ z)FW}Bu66pDX;t9ENkodc0hM`0ok6rPc;m<|_QV zWvOTw3UzFLj~9{ogSv4{oxSBo{5(}RfpyppM2$u4kIY#Ojn35cq1aB|#-N=OP5Z## z;yUy%QN^x!!Iy+O)UGRW^r6=M2>IHAU|3JD!nS7<07zRsU3)uODGiW;zpAzL3@a|? z;1=?O(@$?_*A2-dUUGNN<3Ci5G+ZwKG&SdQ<)!?sX``<;q1yWCYE0T1-P1IPmdjed zqq;|o-khLr@@PJ~)^A*=z(bIvPfcd5-21u%xxnc8rcOyq=wMh&NSRuC%&B=L#r5to zDxYw~X6EA3>AYA`$4C+l7e+|Yk_DU$E4roT$WxO_2G6{BU8^j1o*(6%HoQeH*6fvD zSJe>AQt3NueVy)c#Wv~^H3d!zt}RK^t<-04lc|}zL)K-z1DoRHw;?ofulydXtL#0l zls;J0d(DtKx;5jl80AO2|dSeD||6Q92d zd>kWIK%|3>msjC8Rw@9nO*SdhNspOE;(&=xoeUm5)4Yq$U2;*K`E&immNPlfcx239 z59mDDzT66=EOvc}e&6J_$W&fMuN@;p&Os!Yr%Lr9Mv_-WE+EU|6=dtCeTUeh?e+G9 zP%Q$GWOI7#eZNNjf{EV0poMxIludar-&u!NZzBhY`R#RN?G}@Z(LIsra`mAyve!S{ zG8a7A+27R1u?zj)F9>6%_ZOjdT3@rKG(-Vl8QLdD_s@;)?0IqLF12P9yH{@Iw`S<7 zq2NC|F|v7kU3t`j-DVc~^Zbd`E#nRQipy4@_pk8$V)Cn9i-q5<%^OXu%+!)DyUF8# z@k^jR;S)zjFo4^A`ZX1ekqwcb=!ZWHW^Yloi1)+bWlHS+&`)22iQplFwLwln%SVJP=`Xxm1PJYQP1D}O*s$!R^#Fkv1kI!Z<`zpg z6NKdpRmOVl<1y1tO%X5Y3-GdcJkqk(OH(pDaH-#gsBeV79q_pvDzNtqSMRKwI{FC# z7Eyq$o0Y-}Mqd~gOv90(`Emqtdo(Z3(brACvEv~6tRQ{r_ratW&7qV?c>q*EV`N93 zh-azEXEyAouTEG+zPH6w(CG7|)9R&PnQ*e{IL>A1^Vr>ug(d!fa!4vJA7Sf$@dgju ztZr|pGDs@DD|WmFEF%HXyb1V9=S+nJitS1wM*v7Fb%xJt};k^SiTkwQ&g_66bV;+rvB9@jidt=N^1X2zWa(|me(FiO05FqAYO+e#MM zm!%Hh>e*GVR|S;VIZx# z*>1Vl>7{Pvfx+ccgpjX$P+ea^VmN3g6JIDdR)2NW!?^J#gsgK5BGOw(mTp zF)rcU;!G5R|IVrl*$($bJ>5pMrJfeh#+Tb2_s%FS zH-8Cw^^NTBrqee6630%2ZHxs8eIOz_)wc)p9l-)~eecX|SNAlozb*Og>{mX}(H73=q|M*PR3e!l+*#*_5R#pyBc>pJX@=OI>e= zixm-nd?)rWx~cPqa>j!NT`nZ6fB!}T(j*zBiKKJ;Yx=o)M7|LnFH5z3T&K4_pe;0z z?{e>IrM8hSo8|0+6jcD>&s89bo7W>TtKCMH3fgPtFwQMN#qsPGlMr+gsX-e{T+sTpJ(uMOI-}=)bi~Pw0 zUB2aGyHU^!dZb2}mbjI_{lk(z@5z6AWpm>#tQrd2>b|M=pA7qTw~fj*Fzc%T_1sEe zE>~B${Vft0&BI<(l;>Iwg$}uVN*Px_V{lX1bgG;Dq^97GlnRArRd?=={Gw9)OZ=*A zT)FM&Q_T~uaPG%eg1`p;8CI%!PQ0OON3G|va5Q`ZgC0tSRuF?$aXH56$Zsq zur}uxHLXZ(i{Eb$0VJQa-5M`GXE7?jhZUo9&dwI}ays+yQ|atgA${v!xhd3U<*b|v z6TQ(|+sjYd6I!n)$$nJxxvdQ-K~4AE>h|aMu7+>vUkk-nKHv)Yw~l-eecnhtO$!9Y zYCE`IGBInJo-IALDN2WS1=4zGvh^ASt9QnGU*Bc-dvfip>lG`iAOX^aG-d?Db|^r5 zs`!i7eWjAnA?X;bL#$6u%z0#tJ0hkk&4uUy)s7RIb%LOlFWIE^WpGqOMntBWf)#!nGtvQXUY{@#C+ zlo@66)R=&(QLR8e*goyiTK|zksHX-gAkMV%mRAVR2ee$J+1s(vY7<%VG^k>T3p@(+ zC@mF1*7M%R`fdqBe;!WB#R}S>K2d1E?`gB%=$u7dI8z#bb^@w6RqtN6>S|&a^=MXR zVD^-jQjSCx*_uGlhv?a_F8;Ca#jK5Tl|Vg}adfxawa=^;Sf1W=Sx)?oyA?M;R8i_S zfgAg7zl$oosN>uu4(}Yb;B`=;Y`3szu1rWQd67RAhNuN5f>=Zc_-$?V08q zX;xf%Yc-GcX08R3s&|SX^%L8cU?I&EVQICCp$`q)l=Q^qkCqXN*3jEU0t?ekB6|x(H3PjTl^+C#HP4n&tmS-yJ#apO zjqBVN&*SWSOa^_SE%(#4XOHLj^h577CCS^~Q4I(PA0+0Fiq);Z-!F)X#o5?~=V+uw zxxcXnoaqrl8^cgaauKF*HM$J%6+Td6dtmoXi#-|5%^iy-p@~D@VLSZsXSFsRmqpFo zUr2TDFw`%0EoC`(;Uye2;oK76RUuT9Y+&cG=8JI>aOn7ST>5-AE2fscgYaRyaIS^4 zvN8R9^(t=dSH=4{E#d7Sd;fU0!S?Ed+IT{{De>PgJ~zKJO$xVt*{09P%ZKyS`dd+}y zWNLN~g{fxpmrjfUXNBcDU1lLM{}Yt4o8`-r(6O57#I%_)RcZ|d_do%)zocnlzUS?I zB6W#kw{iLL$HIR}&YH%dYR*v8&vT!re;p-o3Dc>71D99p@cn{;AqxUMSzeqJks_%1 zCd0?eIYjV?Ez+EZwjNX38iGS5BrxyrO1f^*>zBa29@p0!Lr>ScdF4w^<*&XSs58MB zzacoRqKakzeMx0e*^7(|Bs(n~&hKB_KNZ#39ixGR5sU_<{Zp^f&kj5@B$kTnZ#X1~ zD<;2AKTTcrb7V{h_eEeCeUJ&x28Hi`&J}>sKvyQ^=OY_MdJS2Z`&Dy+D44%42FHvE zXA%?HYJ-MpCNA7^!UF)t_GXE8ISJcgIlLHfn!|hq(Z^W*{qsKMWkdjW;kH-nd#O3n z>O$G~LIzz-nloSL>9Hhe9K*u<7k83ATs@ahmvkH>->3If(0=()N#t-&gnP8{^kcy6 zhcM0rcZuzgwXi^?@F^o|pbq|B6tqnrF^wZPVe8?Jve*fs5lqBzVGGd(=obTs{Yu&l* z|7G))RWLX4f7pg7@QVlUU~WwvIGl^t-=w=y?*5FuRV8BM`qxk=e61sAvPBR{=nV%j z3FMTvk_0G0*TYNlCz3?pM&X*&^Xlf7t*!OC>v`Z+a!WTDl^RNqZlJdxEV7?@@lTP7 zT9`hRz2%Fi8~SS4k?(!PPm86CLVAXVI6_Qz1?Ij}?{;Gc%_tJD&LF3erpF&A6-s-5 zQx07`t6G+fT`v>@Y$C|6XX1|5TTepUp5NG>xUerS=7JLtbOA+}Gksd5>F7&Mw^bs5Q7s@a!bTXaj zJ0r4iMrOS%6?a;tyy*MHbFD=l zCTb_Zy8SERdohORFQ;xs4nN<|>$n9UDBd>qul8Oz4)X!k+Gk=o(V(g zoC=!vY4y`2 z+3&Q*eShdMQpNr}o}c}e(S3zzv7p!kD7?CCAN{7aF!3K}!AW5pXA_vCjgdK2Q0me9 zPP9Ygjl;G8!L0~;6aJU|J=fXxdA#k_Ey(E#hG2-rc~22 z{V!gm2#324tN%r$0;8{>wrO}l;Qghu{Aj_^=4$0{{d}>@<^9y`yp_Ts#7)00D*$LW zbE#(-74W%cZoBhA?ChISEbwj3;nif_vRm*20fJkB!j@$eDzu~CTbdrCU zM=A0{yYV(CbtG~NDH9)g!S?%{VF_kUlQuoEEm}u+xc|$f@vNlW17BusVnb)8AW}On z6a?ybk(_DgYPWcVAD-$aP0iCa8tuoYzlrKtVgUP(y1b^;vQu$pBw<^Wro{>zKzt=`CGyxv zse&=$tgj&IG===_zg1qp<}d3nNbSk(h_QPvqskhrf7hlZi_QK_7V~&q)qi>o2Aw4J z7wvwO+`_qPWIhIX(vpa-($sCMjneZ`}G+J+DPXZ zA_8*TX_>rOFxi`j&P(BfT*8dvwKyiMwI0SZOH|U`F{aIK;2MPb{t>siV4vH`zjnool_X`7XvNMddh|Q~!UPrIXk(VHh z!r&$Omn8A1j&bv5{U16)!i*+?R6GAG@F@(v9({948vbp3F6X{AEJIQ7BAkp6_Tuat z;+1RW7AYun*cu?5u-J;gxUk`kbEGXzMg`=;D0Wc2o~-|a*TzDVF^uVY05Ytf9_t9; zH3-QxNRZKN^oTDrxz3;2Y8-rTp>JyN_qYN8@s{ZFs@a`=8(v;5n-IkRRs@*la{b0( zFO+Hnqi18tDtq%nYj46~<=mBH{_9X(Ok+3wvZe8*Oi)wpJ|1cNfF*@7?!a7s3`(;b zCPN7ygJ_-zvq%B0+n?&lwW9L{;qvkBW{Vmn^j3U@OMG6%;V@4H*op6Du%qypDg%9fY3GbiTG<4( zwAAKtzo!f6p(e3Kqy8bnW#&K^RC>CbP0yfV;_pY?AhISebw;jXdEvtvd(7>#iPQywRJ&{m9nq`G5zGIfEquD40%oaqhq)@pNLYU! zpuH~VmMKb}WT@Qf^VMOcyl@8Ll^-~Fg5SV2YZ#=C3c0zN=;F+zofei|*gAaeOlcaa z5zbIDZR6r@%Y~Mn6!_-2&>t<$lp$lMgKYUat9aH6y(9{dE~5w@q#j`c`AG5VPPH@z zp7tGQ2pL<_`tHnUj0MvIwjCa<5W|i~-D-gbi$CLW;EW`ig{!7GALHA-jB>qkd2qrJ|V?TS+$|!iD!avMzA&BznR9J*HWO-)Pv=mLP z9of_%J%9k%3U~1T05HM1fmE93K&x}X;U+G_&=1N_<#K(D1z&Z z^6dp?;56~e4;FO(Be^G@w5!O79b_uFTg-h9_znoh;mlh|p||~>=@k2@Bx?B5g$Qx| z!TqmkLIa`H!7O-8q5e#084i0=syQ)!SZ=uiY?FhA;|o5)~0gyOH^ zzwHji>kOrHkdE<-X@^2Kky{GKNdr7{1T5d^`t!>9^RWwbr6g1B}Toi zDt_ARI?VWMkvS*rVf@tp|0)=(qxt_Xn|Tm1;aQ`k0ZtDX4d@(X%o$ z2&H^KV4@(s#YB%KTBGNp>#yt|ie>7LrDLiDtLS!j0Vv%u;vfTw#B6xn(zbDVy**us zJm}#6=hXiXhJQDPV92&hW#+h|zcL4gU_dT65q;Vc-98q>tZ^ln=hS+wZ<>3v5w5E4 z`9byX?$4$Ts5rD_1SM2kgi{{vC2 z&h~nxmNoZHQr`$Gi{hW0hQ6YfiE-HY!K5%4{qG$Rg%j~3mP zL<`cITymU!mv7{PcPAeIUPVRy^Y@E+FU^XQyf^qJGZMS}7f+f#HP5PSZ8*l+7E{i-Qo zU5CHzJHn_o2J$~Z0xT06!_@qe-%1q=A^iX1xO$k-Y;Bz1!vEVP0bqmY#x;h?7MK9e zli*MP5xaYZqYs%(AkrHK`O9!njmagf7Upa20e}>62&5Py`+ugY5Q6w;=lpIw6eiUF zi^!^_q4b{toZpGS-h)Hr@#g?xo}vWA|APVVQI%345tVtuLD>2Q?}czTG}n*9Gc*YU z-oc-)N($z=|HrI>aPb(V*^HJ$;c#2rnN%f$V?`C=?=DIQ04@Jjj{agR^OW3#e7! zsj?UN{svQ;=XFwtu{1HcxA2XFX}OE1jkG{xIIcO8YGLeN)APQ1;p5fEz{3fL01$PC zcU+TRHmk3@3oVd7H+3BT#%Mbg`i8LUa_}7IPCqqpSNQAeh%skp^CyjdD~)3pf|i$9 z@z{de@>E?)5zjkMlpTO)iU&y6e+RMYek#J=O#G~Xmj;uAPFUE%*}g7qX0J>kNg(D= zhEv$kT{JfVL`XqAwK^E^H7|LG5JAgh14wg#e;L1yrapt!X>18Y$ETP-`Fk@sG8kxD zqg2qulVfPJR}-m&bgraWF4SN@&wW0!RK;Q_ChRx>%{Bx~aLK(2IrcJ=j@-mL( zLIp9D3Tv}cvtfwPcSr&sruu>N`@y*K?xeE(@b}2N40tpie){6wM6Q?l^QRm``^2aa zSok`{Aqil4@&cm9e?xb4d%ZI5ha}#Mo`TqKY#C@Z4H-`nGD;CI^#A&T>d5UHpiFfB z;~YrKQ{EGkJpIqjXZbKCe-yPS4_kQI2Qy8g;C4VMN~PZGDx>Z!X*#?y)8|Qhd_E3D z*y%u-Z+xNwxpsnJj?owIAwc_p-zk9|MCJ?BgwG381q|Qfq5(M7)ij?!b%Eu~hC`|Y zF%uis%5p2ko`_2YM}n}1bJv9aHD-#q&(0=7JAC4T_y77ODxwDy@xnf9F_M1*{4C$Z z;e}JErkq4lLGR2iCVHPE-H?Tpz|6c%8^U?@Z5J!PB+RSFmdb4b)x;M0z-Bh)>h$Q^ zhY;V;fVWlYMRI-9q3zyzp97vkswwBMqZ8vp#+kJ-z4-Z^CQU=|(J&5VG=FU%`5ri!g` z>2~cWvU{n4BtuC;10lkcr7W(U)*V_eA&22m(OLLEo$dbZEC$#4%wfzAGGE-unrkJvR!ooI?KVLY*aH*hm9( z-Ik1Xl({W&iUsOM?pF&@9e)uV#lP-t zmWk7$!(s0U({Q}KkBc+2rv5*gt}?2PuImo&&=xOVic{RZP}~YF?(XgcD^QBNYjJmX zTHM{exCRfNFVDNy_hWt~S-CTF?>@HAK1wCt`-(3ipZv48?MivR$;Hu7^@4|p&axjf zx;6UEW3HuF+DJxjH=iFOhXaQhb0GdCJk(=Yp4IKgqnMkodt>w z_LqF=Iz3p;ga2>`4sfN-*d1baE{4%RMQ+2p=QWiDPzv^uFDebNKfMyH)@S61D5eognBFH|xh#=DPZ}IsHa& z+0)#|&8P7QhK+^yE(+?kf>#%t&yO!!o1(4{rUyUt?t-5gCIWwUmrn3+2MU0+yNWA2 zJ{H~7)45Q0$FyDuu`XheR6Zgd;q#JJDWXbWH+T9aZm0 zOLzJA^9!&at%x7z?i;C{j1e$ z0&5&>M1!0Tw*EAW29rm2v2(esL?~!<&qzI^x7OD?)VvD0iGTYr&eudAZk}wO?DH)z z8^^z3Zr`%5Yjs@CLm7rr-B+Z7`2`*uY|`a7d~1Fi4VDG}E>GfJ!hI|}uUx;0>Rr@# zs4Lv}ijO$(1c3J*6?H1&Uq|k7b)H0?;Q-7gKCe^$<{R%8lLVxH)$KUi$S(sbd|5a9fN_k%Q^9xQ5i@Bu4+);ndU3r?Pl} z@8e)S4#KexmZ(*1UlbAs`N3J0-_l z-hD0-9JTKk)6{hJ4yF*GI$eRiVVLLJ9mAZuLuK~2!yO2?3qM;Jdi?vX${rCYdA{tO z>*|h!C-3UoZT~oSX?kO|$RoW#M>u&4h)+2g7MrYJ`;R%Pr=%kvH-qygKS{9@zL3Mg z9Pm?)g1o4@_OtkjvvWK z{?8Aj(H#m!tqS451p;W;uWR-^K80z){5TI2Ne^A+{YcKNqNUw{dh_PWO4|sSg3!xm zXEx<8c-@f}FT0{8Q-(T`TF16#!|5cLmU4Ty50Az0_%{oG&zB`)CW==@qy93;4j#Lw zjIUjGEl@$111s}q{lUJT&3F}5q7BM0Y5)(QEHo;tTEB(4rI^S;PRtL#Z?c|YrWpVf zIF*on&r{)6kpFH(n1g}ChEKaUF39IU3OdN;8eJlHb= zVy}Oh-v7p-Tf4G-cox)OPu3MGj>5eOZ_oX!`mposNL0vqz7OKB!&YuRo@+s{G}(g3 zC(S3}nAJ|}?zPu^On@B(r;QDdX>mlXdxHP7{pdIv3yqCPW$eL(rQ&`w2@-96F-I4k zW4rh%Q^;deOe%nZg&Prgb7(n7q4eo~l?1lbqNPN`$tDw}?kXn;;iRcX^^=g-d6crc zVRUg;BM8e5pN1V-$A{kHyjozcDT@~xf7kJl((qq*!E*B-)rZ+ZG_`V3Ijk0KEKwn! zJwzMv{ej@XQW0(~U4u>pISWC6Ql{CAk8nSGL1?LZv$G5i`^SbksbIr@F)8t`bwHvx zq|XN(1!~SlH2o*!(XG}13}tq(*-7qTwD7W*K_iCI!YEhnXM*sLJcJm_Tj5Tv9{d2n zL4Mo_;i}^kH!=W#to5shd_mfu*+l%y>fNA4OCvcV;o}+pvQOF71~PDRMsuewBF%paLk_9E~8|9n# zE51A$5?b9t{kh?)j(+#B4i6&FAlH|MjAk9ICcjx6l%Q;CpoNL_;;S9e%4b-MYY?o@ zGCF{COJw!hX`t*Fd@ZNrzR&GNGDBa8Fu;@MM&RM6YvfhIJ|RK>*;yW;q5BTC&j4y6 zCR_w>uE5`)q{-KrZ?-wGWCw-{`aaG>E7Vsvs+6Iu+*`IhedhS>&g!AwqIg8yvW zQDgT|RJ&i~CUo5<>@}L!M0etTqUH4RW&eQ!JGfWvOH_1$zM8~d6Rjm^&**nJJn7$? zD>MzTLNl3&XWSo{_ypS$4|TmPab(PqZD_}zFC0az_GK`PyMY-K;r9Tg!)x^u z5)>|&6Qk*T(>BBL4_V_~L!jX#cnu5xF)K$n4GW0nGH>Fn%SP;&di*E)xMpr%gyoKEZ!Us9?bAN81@uCUsMN;FlzvOGR{nT)ccX;0in`h8j)!`+4^)9Xr%| zEmi{}>{u1olgAtC;;(qnzo1Q~hofPV2oIlU&5c*^#!%=u`H56&@x-xed3XMF3Fm6z za<{*a#Y!I%Igyw_l*n!RzzBt?LJBQ&vI2oUc zKczz&-`uz`rC$3fgposzR5;&crr(1XMqByv<8F~0skQMfK$V&%^3?OUV>aX0%%+m1 zMo|t6J!aQ`haZOVu&8$j*JG&Pzv*D7BBxAa|IB_pY4M+(T!@6wcU$lFddjX6W2wiA ztLp(>-8idBfxK-81P4l91!!-y^y0Hiy7JYLV7DjkeJ~yyf%2Js0{70?L|>p432*0R zN=0;8R@1^uh6z2Dq5Sx5VWeQK?}!;hV^!5z{MR9}>fq#cfwKM_scYkL!oZmO@tFI( zXW)M~yL~IA+U{kQ3G>?)IzV>JDj#iY`hWea8}uMx?#MH`vFf%7!^1v)KBPfSK7){tp+mZ#HI^ZNKSZukYJSrGt->_3Hybpc_k)nJbDTED%?GcROcSMJ1?V<2}(tvl~p z`qkCed|MR3Sm3);OrosmB|QeMBC^*ajx<5aMf5djWwz3KSo9K1m%FmoMX59WfPv7s z=+ySrT|s}ZAdz7&0%L+DCyCvoCs6Pg^`A`oSN9QcvuN{W7{j}`)@a_GfM6XcT-#j5 zInO}q$D=;cj<2sSPXNGo=8%&@UKRC+fQ~T7?c29YEnaT2s>*|3tUc|1{IEv3blmkt z<#scO<5<^8dH!3~#ntZ!k4e)MFk1((AB&?J z7*g1Ef5bgXsjGxoPVQuN5$;Spipu&E#i}Hp>uPxkaz2fPL{r7tbqYvf;Shgvs&!?u zFt0w^6cYqb5Hlb##1-eqps?|$4c)tNXKv`Af0#Qm(4?b(XA;}ECm66p`8#-QZl4p( zpDH+fQl_{i^Uw@R76Y~0Me^Ik5>>!ow8c#n2*3waQ?iM_Y&-PH_y!v#?aF*Dmrgz$!Kzx z?4s=Hwi$@9Wo0=psuVN*+tSX%;@eU-STTi<-V*!i%>ey}N_d4p7e&Lod9PxQnN+;` z4^3iQOcl?$`a=YoKtNCrd-F&ww_1a=>r5i8aA8hpnEE>19G3`gUwE^6q3;SIZ1DJMV^) zHw4`o$00}&>g4u`fUl4=?L;GJcyFDoEdnIj1Ub6-+l9j&VooR)MiOAoZtM!rCWEOC zw}nb2E8AQNq0nWc78PwRRV}SSf=!9S7#}~&c7ru-R4cy6sf;ZKfq!`EQGZZYuB&nM z6xbQ}wRznTGO|{8w-s#d7{UU+e7OEd0bT$}VL^{-ye~v=SHBI&9#Pb3xck%k&y@rW z*B|t}MaMIdSS`ec8!THDTwL8CWS=UK< z3Or8?ATy|^q(VSsf;M~rkY`Ny!{r~|s@ArmqIO|<3Y6)fIGM13uFVtGhh{XhYc;>? zT=r6;om&f|2ri(zW;-7#+JIc$z+ch*&+X!A^&kdS{L8<#GmG0D_N&KO?O5Bor)l@g zq!x@s5c|X z5TbWi=d`R)#H48X6Zh<$!)Kj63&z>3`ZR?_EdGg9YYBRVT>8y1 ziKgDrOZF9Tp`uE2x#FqD2kAt~&v26an^yWtjNofc2dlTBu9+ZyDUs2j1<^9$_StX{ zc5yCQpKh=(d;^ysBc|~v@oTp%@@QXjeL*u9RXkKJE*q`meEn(r;}h_Ok(_%UHM#^0 zPQNiWge~%f<_083KSFfy#GR|Dr9kH0ws@^@g9b$@g*+!*y%W-ko?mXaVQHX8b+n|k z+FRyv{(2EwVpuG-S78|9y}3K$B00URQngUT^AldK$NU9?VF|KG4JBEK5<+SI>pTf#2C zvpRs1j(6JiWI^`&>Pl5d*az=bf0O_hEYQwX5=&fOLeKeyaTFUBgQPXjVRN#&EEx*f zTn)-MVd+RqzB83E9Si#fj7Y9M(tyUNY-wlbCARSSNBv&)Yw6jl8|*hirhL7i*xi)E z%k@DOPqRfum7|?%2x0;W$7xKX?nDlpCZm+)(}mN2x+ZlOZtHGrA?GA_kN_9eVr7NzeaKDRU}vME^~}+EVKwH#_)p8-*vZb4>P?Bh$3lbn8EPB{oL+zT zh$&(s)xIG8I&h$vo3HRljF`$t1y)ks6yCj!`#v!|&LXSq<;nq8dz5-h<^K^Gpn5wT zzVzYbslS<2TroW*og{x(xgQn-*;Uw^?(k%(!-M$%G$L1 zX~7qQEXTb?@Yw1cU&Od0HRY-FU5>*oA@Y9dosFUvQU>j|`&u#PjW8>EBxio=N%fsoM8jDWfl!7J>wowzYj{$|Qq)5gM( zxA>W1lTVF?);wso*T+STn4xy^{pbZ1b+PklP`bga$a=wb>2=n^|ByN10GS=WwKO0V z4_Dmrn|mu7z{Q2u38r*pURYxVTzSF%(BvEIK`z?m`VI(2w*egDRqX<7V(^{Ubnw2e z6(pGcu2fGT!MM0kxngXt`csDbvfs#Uv2fxh8URq_LK8xYqMW(RcxcRRT@u_ES!9&& zBGsjk1GZAF^$=8QKB~XPXI2rqM)|`Jw5a*aYYoVL5=PWlsT>!O(oNAjefQsi_~Qn& ze0Lp**e1$lU}v&4T2Qi)`9^*F>w_d!C-l<3+J(LNnWAU|qCBkZe87mdYHVhlwAjPW zSJr6JUPASUn#TAEP(0D;Y@<-UN>C6LepG>sULNR_(!H(YsGZ1KG2V}ZtW5Yd>`fqF zHU^JwjNF*+=B#L(aLnM1D_Zj0{wS_&#zgk?Ln~asR28U$a}J?vev6<61Q)@BfSOwO zs0Fow>CdEDv5q8H|HM7)PON^=kFGbysZTy_ZNWJePr`IPzEUnK0S9<6i2)8WfHGse z;f2b^j1E8~MTrh@Bt^j{RdJSsF%N4c7x)#LhLW3@4u(u6S51#NK-x3vNMC_gg(@|* zgWqkYoEp++t&kBPH!p%($|!_Cho zbu=RAP4T7z4Kn8zbkSDF3m?jqw*pF(y4D$8LGv05nK}!uC+muxb3t!Zf{oiAZ#z2b zAS?BE``FF^(WYzoN1b#l+TrlBx#3z`L;hslNa5AB@eyiCTZ-5(xZx)hT)SGSHZD7% zQT*?vF|aCnY0PdGsYA5D=Oy%@qy1s^lgRB`cD!>@@7@qhmu|k@tT03|=4)s+;Xq zyQV!t;CUtqfK#htA-z>sTbEb2T55af#570SakysqMIG3bef5N9oEDTXU4_GZHBA3FLA7zQbHsT5e zm1C>L0OgOoH?kcc1P+T%!~J7RWYu9777ef)7nIiU&6GM0eEui&XG2=hhovv`(m&D9 zAX7c|I8d%CDXP@YU7|R)gh!w3qlAQ%BuEovMLX+7Q{`g)Iea+Kq`qA*RCrc`D?piSC(1td{sJvXCBcVsv`(jai`v$88-s>0E;#1^M7ry`q~$_WsRUh`&zRxp0ql2_c%es#03OX4;orJBfjMHJdi(f`=d&Sm4!sF{QX5R* z2Q5`$?^Akuqa1JH*!8#6FW~n6MNYUL=`9P=SB*g-Igp|6)+NhjRB-w0+cf2VRmr%Y zFzuyWO&pu*;IE5CD(iind5=g~O7CXcGYMchd`dv}%jfUndcvmFcozA}0<5BqHU7Fv zk=2jR27*pEf%c==Zg(g4Z$z-1_}TXdsj=O@j>lLEoku3^hoVzUSrfs0p!oAby~f)b ztNgD+nN46%|J{2hlIHSiQBTj$#ee@sN&zj&p9a9jT8dn?urwyXe9RLL4Ue?5n%zY2PT>bAA|1m{ zKfpF*ed9H5_Y?+yUBR$ACd4zit$!J%4or9JOE+qc6uA_@J0K)f?I)1dObDd9MC0AKKZ|+QKex~2Wzg;^C=kL_ zoD4lh0-~}1%~onFh0io$#SMLsElpg0y#@z!XJ>!H7UT=Zote$P@26XPUuL??Bc7|J zJ^QV}!rlKXh-yyH_Zc(|(BS9A|+^XqIfWbG%p7AZ=6kwUGk>OiX$ zz9`xyK9bOxsY(%$i1AAc3%6^6qfOCLyBW-QMSpC#@N$}#m+xC8&+4il`&cDGU2i`5 z93!VPIVNq47b+hH&|(gv zqMD&Gt#8te?AR(Iw~=Fg{Yq2)9ns;)sdESrbVYsRSa$B{wOGvUM=~I z^-K1Bdq`)K{?4YJ?z-o7rRY5~q>dwxx^=c}6 z_xa4Jj%w6rd^E-Sc8`pw>s)I2WNF!nPGTB<4ef!kvGe62DjSWxLc({d&h5#VJA?EY z!#Ki{UCaI!P$9mIVOL=d&pEYkJa69)3;h%sp32HAt|RxWG@C;}KP;&}-_^8#S;eL> zs3jD@4?eJ?pi~jE`3SqdtA{z-jkjldZTh|P>pA~S<%;s7Y@bC3gpj)MGoMy6+#;|i z52Dzb67|yCr|L`MO}MTC*W}vlL5IU4P#xLDewDPzK90h%?;2X^dBm(FIW26>`zpfE zPcq&}cgjUF{2C{V=a0If{5vhDbAhky%kM;Q_cofkYBAbA3C^jlaaNkfea^~Ivk(E7 zT`fB{-^utipGhkl8gd+q&!WZ7>>Q{$YfrK|Qz1>Obj3x4&E%c?LDypo)g5 zppu>Tvwz0&{(^Y#QCbJCavJ*m5eHHP-e_&E|1ADDD+EuGle|hXyU~jCwl=La>dNSm zSkUfvCCyFN+G^$%VpDf*KYeAPG(3Vx_nr%u0y+R;yv(+zL&9)X_qcED_kDA`P^?LmJc%s|}l zG!gX(g2&ubXeXM52{|x4$kKu+&Mw+XJ^nytA0?oqR!s{}DnAo`x@d>GSbmq@tWuE> zml{|}U3vc$3TGj+<~-Wsa-VV3WE zs>3|7)eH}1TZfHK@qy33|F!6{##t!i84%*!%1V|Tk4CZDXIrt8O1 z1wYd5(Rey$o|k|KK8yy64Ti+4XWQi?qr|{w1Se0v*mq#}D5rFzExTSfi#+r{ER>lA zzo`mRPO)Kn@&TBN#vRl++p}y8DQYyT6l+m<*ubn@#n6R=V*r-oZ~{P-mw zrzdrJV(40xp7l3GbYss~WWV9w=vdgv+ON*WY}mCz(bhRAGmxh8p#=2KL1*(y1riDQ zt>oAF=-Yd{=zpGH_5H1Qi~B~FeZ}eZnH4V+&IYuIJhOMadGTq`RQdt#8TF@EmZ+$j z!)lJTDZ)qHmwMX{Y@!DEo-Q%Mo|@cE3KU0DV2P1gnG}wJ`w2IIdm~S(?2pzk+QH6S zlzxu{`>_AwAvtxbIW_e!5xahOaMR;!IZFjpXR{N<+uzxGrxAcemh$Am!EX^(DrJcEMvVY?}giIQ_>O- zZF1LXma{EjVb??oaBSQpHt&#*vZVg76Sns%-QLIhjwK?;Oz17)2nMrT5>2q<`9gMB zlwP`ATPR2dnTs^p@B>?Ej2$Q|fob$Dvj9)=?C=ov8FACtngcBt>w6NOqrO2sg3VIa zeLpw9)()PJG@{Ee)%-*;{_ZD2ixZpGe1_%;nf=>az`zNX^ky?Is2WPzL%kDSIdY-e zZ-C~{q5Ol*^f?$ASxsLy<8`$ronL6rH?_=HnXXblN5;1-61f^|%n5w$xcim^%i~sB z6T@w%5DB8zR z>k8m|K5)~@OC5qfTFdv=Y3c0y?%VGFBGMga$o}?vRYwIhVM+x@w*tb?}U-#%WSSK%e4^ntXlg*bA z0>XN}H~k*GlK1>kr4;m|T%SkGnAF(pzamP{kHb#o>~9z*mHgTBL*?VWiR}w0Ij3(o zL%TmjkNND=so|x;N)B(sZyPRUE&nYrm+6Q($mSp;Bv{FP^=>BuXQa?|^C{QdAFg4; z9LYwFNmENku7qfNj_oo9!9G>4_tR{h^Au*&MCu8ROZohV zerVbPWo_~c8R4dU*C(a1sOzsdxaDDKQyuhEwMMQ?)$Z{>{`AsdWktQzJ?`7jD6Y~B z9^CrH-_`thbmp~**=^M$AUof5v{cm_R-gTNK$lML)z;lLaOV>n`ahtqo6% ziP-3;^fw#)ypz%a)GE*1g(DsB1q@;3tgrtJ^1x>)1K2##YLyNj_h?ej{aa=s)@w-J zbXGY1FxXoi8EMySD++1h2|GXh4;4+nbR>l}dUIrXll&?aseRbbdF|HKUZvAXS7W(U zfjt_JWQZPUWp$z&bqeax%@a1{Y3xON{Do=$nPj{;3m;vvMPr+YA3MEuBy3@a-;syiI&iQU#tup|z<=ZEAblGe2Fp|~hfX0dZyYVwl^<~n?LG$l=TF_7rz?;A1&DS4B2;#*ch?9w9*=qv-MbL3vp54kr|ib6 zI>ca?`a2o>-S-6RT5G~>{zEm0F1fAjY0*DwZWoZd-3YtSGt?5Ts=GRVT4aDmAAMbp z-D-v^_&XcQM;_)D^+^SDVT1PcM!(m8cP#j@vSMdK3iS5X-~-gvLJ$33ffv&4oh)B+ zExqQY^=NDDQar{JQ4NL&PU)2jy)I0!0dpIww4!lgI1G8 zTV5?oyJmyNUOzQ9U8I0Fl|=>V>nJ10B=6gSn}Pb9!Q|~2_b0uW?o-0J*QM&O`j)xn z%#!pAFvG<#SE=Pn2+f}M4ML^~8=;$J*QY@+eaaf|64lq770hQ_SMl|7iBZQ%zSRM# zp1vvJfOHcqIvlL~`+VTc4u{)d_fuMwv@qzmG$G}Zx<5LEXKMq9XkkaY!?`DJ`RPCHvlCnWE0+j=;Z znGK1z|5?K7(c~)oRCE2D-zz@Yx0qz>He8+3&E)&!u)VzR2ilydZj@lOxPkj${gzGD z-%v9oGnDVtTi~i>bG<;v?{b+v8?#vOzd%dj{nip&5p3TazW$NOlUPsRTPW&~(kE}N zOMU!zZ&8UYw6-i;#ls;1v-=Y7V?>&34#G+D7P+vlC^Y;q<;J2sP=NHjH03r{VU0x& zV)i^NSV^)a{>{r{aAJ%}Kk*s%{J!6nT}E#V)m;}Cb2y2c>EhZT!sG?sHy}R-SQxvq{OH=IL)N`PC;Z0oa{u!2SLzC`z1nXVoF?7Ox*` zT?gG(0yD86z@GO8WR`TLFf5_aMXE+V;Sk$TFCT^H{aXtQbB9Qf{$$vQr+Mw+#VNVR zyJ}ulgLBL6%*)RQ$}!QXBorDNb;RhRnFjdjDyioH@ZpE-rG;>cfp_6*5_%kv+epU! z2z$>V@ z6{LgL4SUoa1PylB)TogoV0eNE++<@D1v@fQ6L_5smaT<$+j`s_!F8{qE&5P%<~)?} z-le0`|Cm|a5EU8glvJ2RM#vKkYcEcUa5O(v_M%yW7`7iYTWH+KGRZI;3@!I{KI|0w zc8TB@jHFw3Y-qYz%SH%kRdEBU5zOHtXSJsTCyx4a36^iLzv#3p>IYqarGPnb0O>UJ zH?gA2yp4MV?fyUpx#xez;}mI=t`z6l*^HkjDaoVJS=nxvfM8vAO}NPaq6SeOm&wd* zFKW)ST zk{}FeFTK$MkFsSXL)fNQfW3N3Yv^rrLfs!|^)OaC(>Q^jpQ-&5%q;jMT))#}k}onb zGtQ#eU88SnRQ{FvIZCSUekm-%`kOj+V@#k*EUPk$b=T9z!bJbx*o%07PwZPl!dorh z@$ZI@D;ZCX?8PT}pl>?e*Sk;k<>?b=P4`NAqu-dm-^?#m!FL3*ztKm6ErBhMutLEO z?|`N_T@GIozvJ#_gA9v1YNXBaG)IxNVR!1n##ud4G!^q;pb>FAY>ijfq(thnr(>u1 z)hA!8HR3LQwF`Ce*H?JJ!hnd!s{wn(9Ok2^+tN2FQynm*?J{&Yr#DyuXV|!X`t_E2 z{*NJkfQFV{$6Np9^MsxH5c;tA{mmZ!zfPpv`PR;eWnfZy;P>vQ&H~KANtd#{XQ4sD zT^A=8QogF)de^Q3Y`(u7))PLA2&kyVhI@I%RyYXRMZ%c(;JYHmnBGZYN_X%*=W1}n z1vezSWV6p)evFVTef?JId5`vZ^lY50-rOw{IPD128#hQjTzq?Y}=!|ktU?SR;LjX!$O*6 zyY*k1;@yJ`l!0i^Rm7r-W9aN&n@Gxvry^#>Eq0I^AcraY*l9=qM*On5=x(~4TUpyL zeE8{CQS>LGM3bN7q)35vR55Bk@z%-ZrwMNY+E6GlDD8lyk_DGtuiY*5ANSepnx#@5OWffrN-#`EFH#Cv@uoAU_q}DO-+j8XoxmwV_6uk zzwDt#*3?lKqFPwxD*DW8^ywSH{BeGgMmvgs^!-6<)sCrVNQFpi%h7}&)HRu* zu&8WLT)X6uLg@7BUsri`+T}97!O=cwK1_1leGOV)%$I6j5)aDE1H`X$Xs(0bIMU=$ z;)&5?e?Nl6Z>kT|<$gxpmOEg0kBFEV`%h+ANUm9eFE72AK3dGqm)|Qi`K3ezt>&!# z32rn-XN2(X^-A3?TU1<)3_X>z>jTlp|C~z7FW}(-%{glh$`G@mhIQ&+_}rt-zhD2+ zA4Vn>8^}bwUqS}XQ&k;1_X?*9r9~#5J0>-F_5I4-l)XQf4Od*GnOq4pHkb=GqWHx>oZRCIU%z0WYPPtQ>kY~0yci3IoU5@WE$g$mhKalZc za2W!EbozI`cD`6lRzvE(55l$mYF$9lhL|2|3G?1w)Lu_!EnQWXXs*x@S=r5J^ezq?xgbr@Yn0tqIT&dXVG6O|s^6^Xp>^#ozB&sl#) zJK~L8xlNjWA`Z^j;rnqjZ}z9?ncJ6b9N=(<_>`hsb#u(eqog?toP2Vbq6cm7ER9f5 zF+V5#3UAiEm8(Gj(es@bH+>k%cv3UPHwzUJVlz@G&PD%I;N|v7aeUez{>@WxuIQ7| zz*6@h`3BJzQNdz>t`AD`3cMbSksi@r_G(mv-c#;6Nb1!wc{WKRdPf5yPDh+?VeA>R86*W%Ocv^|3}dM+N$HcNSKmpgqw? zcKYspYXMk;PGa4l+EfAN-es-lqbz$KXtL@XbdSHTc!G$f|7DLTn4ggedq3URXV{I| zo(N$!pZ^(CA1KZ0=`UBS zS{a)8G}v6AEz{wDoT+XvnW_+QVeKM^w$%#l4DBIUD$batN7tn>3?Ft%_bdhvqIX4} zf(`pF+C(BAf4ng~A^2_d=G1Pz9;egSt2cOoGw=9uZL$C6q!1ja^d-1ii)3O->DCc?n5gW(9#7nk7-AXT4H8RN`> zo@LFP(KLN$!oxejFh9-UP~E7H2-T^(pSS<5p!kFOSFDXvg{biJ=YuwaVirDJr?H3T zQ5$3y-AUCb?e4Xvk2pUNNPe`0j*Lo*?vM71>>Yp&whwS@5lsdDSr_#sC8^AV-kxR# zP((8#rTkOkf*$Y2*Ob|GP$o5&GInmwzq-xqz-;0cYR-4@99(Hsm5iR;fue_Ps12mx z!Vkb^M4C!dEq;uB1qd-}PM8=HF>6+Vd%%&2KS~xz0UTrC+^drXI09Ze3lx|GQlj)> z&EzHVB7`tLq^tEs=E4n^38dhaINJPfELrhJzWM8kA99fb!aH0h)@E-kHaCG-9b+%3 ztB8Ta#9-UWb89v$r`h}1^v8c3Z7l)(?x|gGJi3{uO`ysfxy&h5mf!wYTT@oXA?-)`|T(KFOMep1D%kIk8_oI-)Cj>+BpZ5m0@{ zcC)bBeY@g!;;{K%w3)^MVust$+$i-ww%##&M%Bx)|JG47HeX4B8qU9zpACQvea|_3 zY;`AQJ2B8JxR=yR0JBu?`N;wxxLu&YVSES;C}0;mGcW0Ocv-M{I_vhewjbpl%dFh5%^ymXMf@TMz=W{A64$uy{a9i-hSZmd(jTVO+Gtg{0 z>qvB1kt~o!Er)bOyAF*36}I!t|%Z_`zRYba+%Z z|I6fAvQy9hI#L}Y9&98`!J<9U3U4S|b`e)Z_=;E~*idc33tt0Y5~qEv1lO_y6ki68 z*aI>|V(If06$LnAT^6ND7W+8e??4;5Rn-xX4SNGQ|2lCzT#fI}^R~Z9JPwC$)4*7F z>t;=_7(;tKTv%A+qZp3P@I3Zqng?4{l)_||(;eo!hyfy|O1Bp1H0UqKJ{lANLeNhZ8 z*ltizild`PqnpICMA5~n`t@D!kJrMfPL(&m9j=w`V=s(h5^=uwyu)lMpeB79P&C_{ zdyD?#(gA?l?rq+4pCBT^ovqAgRsa_htA^$svi_bI>+H2!?}A!*9#hpxpBnmu8f>UG z$<${E7P!6Oe{?wjA8=s{1G?A7;1BuR{;v_hDsxXNw(<+GDt)F)|O!Yl2ro3m}mLE$8YcY#XDMmu!!T6Qd*%{0z<+BOJLBik>tX{%j<7+5)`ao z*P0D*t)7yLX5C{bv=$eoC{8=-`$11xih3GgV|s8;`es+7@RS)Uc!}`3;JJ;iIUp1y zHmMTOYS!PDydVbI7He6ljE}?A706pR{)+n*ujWcLgvUwN%@edZ^vbLO3KKH8WdC|g z05cfJ#PxRyr*Wp_;J`D?%E|gNZyi<(q*%DqZompPR!$$UlmUPsZdE1Q1-(b?QDMzX zKEnBN}Pws)OVVMD*#KM#|@kO&%Ers$fV#J8S(kBSEOx{57RxVKoE7+CtP zVG+v)o(qeqTFCYRWsA?y7|XNLDk!h#^gd<6k;5ak={gF|&CTxSPgd|rQ@OG~&rMLZ zR+%E}%bCU3VKBR{#KAW$B;*s-AvnxT_`V(yvj67-^hv{euv}dK;<@(LSL9`&W~s)?Kome^F=;07?kJFK{@THj&C11p((xaJt~D;PTL637@UrES?FTp zzs)C5F(kAYV=Yx!&=U3LzE04M16O z2egx;ROo1ndwtCGQ^jM-25qeiwDNGjq-Z7Da|rs(l#rVw20BsvCtoMFx)D%M=P+VH z?3XqYH^~$bGg%#>z7D4W<}lmtk@_tm+Or|)k(J&vOm@E=8ZYt*&EdAUm6fFP^nuno z;haN?0+8r~WuF1Fw89&1Csxt3_U83#uuk_aWjj$i;vx8ZqBz3bmw*U_mUt@h(}B7@ zwRsxchupwZRzMdv+5npLSqLCinHkK(Zg@O8P2WoAgUn}j2{(3J_TOVDrb;|n@f|Ls zdH+Kcqojw@`X916OyqEsI)8g5*}0#rgu?SWz(FVun~3HQ~ZvRCbzonO=Fd? zzFwKT>0`t60v!x}o`Ca8zV@H>Pc;aKM^=KLNeEyXd@wuc^^)%Ttj4g5NW_N5R~zJk z8tJF&mX-dYgt*3;MBc9D(Kp8z(ga#q;+~pbc%Snc5@y5%AWsDC3NFYikCVwQIO0v` zr>WrH+5;?TThS?6$Ym9RNMhJMuL!UcQNBzm;}T$NQo32?x9R~6BFk>9oeaY9@OpOJ zY1TjO)}iOJFMyJ@wE!q<&J0k1v}SR`;Dkl~PFX9Ol- zIZX=tQHf|(G{byshp?k&uZ-}tMzXs{?yFAR@70e`!# zPw;u#-r;aPQ&ff;EcwZqnbi=R{1~hCpVdLI(t*|GI#o!MM^)!+5yx%L@}MAszL4$$ z_t&g8MZv3HxTh!-#Kug?ov0YTo2(MNF%dSa@5cIhN7p$XmYDEUmm2Mg1##BKE$9Jo z9>lez5xgGJq^WchO|;#dZqC^9Ch!$fM~4B&;!tGNXxO>Y6C2+~71XElbb$7$FnEP| z%MQYF4R5>Z9UdJeyY38z$>tLnOwBQnfhQCDQA(6!bF|7zw6gmfvU-2vb8@uN+6j6UH=L6Gk5?uMb^&inb^|KQ%=CiXeI)?WKr&)#b- z2`ngY3u)SKc~^gro!#~kH+b$}3}qiZ+irl<6$Q3>b1{yG6D@t{7!o8;<_(`Nf5j}} z1j5fi-9>4R80!E9`e`^urwuzsAWvm{PkaMZh33YWt!G*uA_6zk@jvR^JkN_Ueutam z9_O1_XvU{kh?O*4m$4WxYEPz8um?&279+SqbAfJIO)jP<2xQI`z8P|P?<0+8JFh{P zb}O|M#m8R*&<&!bd4T9fHjt35yIMd-1tmP)_0hgf^ZnXZ)<_Rd>T)uhi`e@3PlgNg zbEQ9;dz^wGMXqv>#~V!oL#pRO5ufco)73YyEj#KNiqrSpYq!VBw#rP%@Fo1Y z^i5}p1KY>UuMfw6_Cbf0;%Zh#UAZns!7(Lc;~me2SM^hs?BY{&rkp9KewP6bq6@ck zw>zzKYeANE%o1C^&Ylhfg*yC54T~05_G9o!5%FC6fOn9Z$+$4vyW83Ot!o_8G<|Cn zT!tC<>W?z;j%Lk~NUJWyhVtjdqix*OV!OJ^$BsJN$AALhZEj!AbW z>m~ln@bw2n9JB(F6TX*UO^3FrydeU@E~pyx!!DIfM+*T^ZoZf8xgpzBHDEXfLA8AJ#Js94|jLe0G1k zKr-*?a)4&T0~7mFJkp-QyErjz=~87|6rI;g$f((0#P6XhHHN z|GamB7#D9Fl;{ooyWsG9A!C}|A3}ZP_ocgoKNkZzM?-TeMFMPI;WB;^MwiZxx)Hm|S8%w|?!0Vci041~w3 zEz;EcXf26_?)?2@F!%K*(%g-CE7iZ~6y;+J%C2w!NCl&q7L+BwSJ+yr58(Xgi-ir%Y~c5K_OSdyUmcno)>x76B}#KZ z$|TOvYjZce7L*YAv)^K4U<0eGg5Chn0{7^bi6yp0fzoW$L2;`Dd#SZ>4^G8!U9ojS zWZ>Yu;MZ8KU*HQb@jdaulY?kwe0~I%%rAf)qiXX(V8`|;z!9Qk2 zKfdq2y{dV71_~EsufYga+Kc)2_~e*urLFp>&#~Rrytm5-V)y%wSAjvcaH^2!sRZwVea=fm2m}8naOp5QAnp7obUYjw^UDwLw9P6Y`r2U zSy1n}-;`9n^j?uSP~PxIEQd`U9)O%ztHIiB2;h0*rXmTU>iFGqwT}DOHDmX`#INqIOR*S@lqe`WDR2ra>urduA9f2}ce+_{?@i~C~@T#>qfLg;%>YmDtB zNu+wvH=IuYns0X}nL3#=!BH{T?l?o#<7Re}OHpGw>iUYDGADO5NP(zHEbJC62}BZxFlibEgi{1^_gKHw z)4-{H3ySbZOt^yT5f4$nBDA`YYD9+h*C7@|wxvKD0n8VjqYJRQ!*&6k2aT?P7HOe6`u>zHxU0j!V`&j4zIM+6xOJA}E-cj3thKg8~?_%(RQq zp`JPd*wi{+gG3?Vz}K`X!2COtq1bHpwyMPuxk6~x9<{rHx7A<0S3Uj@FGsLqtXPf6bHeXa3v;0-GzUYYeBiDHG>Yr@ef13P*GOBcs<$PWQMF z5moE0t>p~d%RQX3yO)h_Ee}G`NCj0Z;T%ACNf&V7kZ_lz29bdsLF5%Q@6P$JY|CP68hJB_=aAnj)ap!V;A` zi70UDy7M-m6Bpon*Si`v9_rV$(S#SvbZ4@+0y6&sO$DPnoM$Va_ZA;SZ{UI!CI7He z-W)yQU(=x!_0(lApFw_b3dS*`q2kyNEjCJat#p(yjmVh1Ha1atJeQJ!HhFEC3*i16 z*x*LiBu>S~4+Hk!Q8z-KaCvZ%=#)SXhC2-yfcP^wLkx-K8H`@Oxn6Nk8VGq-d%EnY zXmcmRm7jcH+MctrFC6AI20yuO$A7rSc~_qG-f@Q=cI)(X@2GHt%nywE35;s8=8xsm z!um3Ox5d!3a?JUS2Yq}sMF>6E!D#$Q@nYL6?Rbu$H`GA;d)THD@YyI>W+q_52Z~@W z2GwD6K`}exChmW`#aAHMjkjPVdQf@?szWv!1KI8@HOc+^IrHTXkbs7%-(pp`5`8Dz!(C&x~zNBu0G#d%=WkleZI-)p?R+MWRl(oq1u8t-X`JQo#_(XC;iB4 zfWFU40@FcP5ikK5kA1F4`;KN5{D@_|3=|ncSJ`O3BkdACEC_J}gv(`36i`x}Q6r>4 ztEb%0847o!6O))sUWLM)7!t7nIu+=W2^xW%@_W<?jL&hi8YNzNrT`;&5bUJ%ET7hJ2 z->XDGe{o)%!i6*281}r}q&Ii=(DM2I%*PwNQjS6;f}F&*ku3KXMxPC0)dR8zC;W~T zvq8M~U*H#p%w6Oy{8Mn|B3^%z+YxJp5CJbZ4d|D$i&iWV`0u;v@;@RuG@;p>Hf^HJ zmf+`uUh#(@JpkheY(55Bd^C_8;RQZ?!kL95o$guXa8OrOfpP6YbaklfJY1T-kFT9f z(Xz)IoXKhKI8QIY#$U-La@SN}v||X|v7b7yudbWG=Hj&|riW46y*tV>%J3Q3I1gWK zB~vOn6ZT}K86SlPN3>bKGvK$;YJ?JLF5t-%cmK~qD?@>e-ndQH6VURx*U6FoSPiC? zC))?@pg*sMqC>6wJlrrr+uTrBomP z0tBN%D#CcTr4QWU)p=7r=!qwzRh8a^vhV2|QmpG3;@+`Cm(ZMifCSeU@ib4`G*e$i zrl4uqRq4R7YuMhi8YM~%=n|oS+JwaKih6&djdakjHjL>hVz12h@;U!Qr{CUG(JjRA zS=3%8J^mwQJS_~BlN+91jYAq7+$0P-v=jTGB+KD+ieJf-A&Mr_jHjLG$zfpzC}o4= z3ji?a^!AO!OPq%$DiTi2MhF@@2IIo@uz|!q9M_Sq ziv?Yw2G`7h#mI`wV;<2CpC~;&P&n-U=gv<*!{QiWNsdr!vf{cJN3{Ay1Phwm! zH7@d#4wf%mL8s{*`OVtb{fB$e)1lDTH=Ns#=Lg4z$QCS&160~9C>HJ;Tj{@%t6ad+ z9lgvvBgfzx&2vlz`>Jat<7aQs#YIXKA~x@09w6)z_2S6PX7;xYV`z z8xHfCm?w|yt)TC3Y~ z+)wf5E8B}3KVxC7ZaN$H=)sbi1CADeB$Ov@qxQwA0a(lm(nKMMpa<#MZhHcyxAy|i z`}6TK68s31nTKRhuT+v8jw4l(l? zv5Xnei&F>s2PKpn=!v8*`0PFQ^XvNv=n4&VP`BHU%q_k7Ys6f_uWEUr1uf<0(CEU; ze@2EaqX?Wk{uPQBWAnK|l4ucY&83(BpfTlpg9NK;@a!7O#3Gy#Yy?kCCEyTn=S)Z} zUsCD0y)}<{-mJdJISjzkrIo6N38Ix%SI| z^b&KUW8I`C5W{%2KGvZY@av4_)gg-PLbca6D{u>3Im_Lm0BxFIgsD|BZtWH3sN+4T z@W*~8lZhVM92vGc%-)Gk)JKt)qTA4Hie+9uc#LkdN;FhROjMl@_*{cCGN6cIXJPC( z?!xP5j-i~taJ+aacl)&@dg;)PMl9f(`1E?`e(l7T)7N$XU;5V6-c*E#X=GIS-D@LK z2Zz>kPB)>^pMo5g_3*D0Xx@j&J*?Sg4+3sod&Dcb{^;(uaUHeK&3@VbXVbEk65lRM z-hB2LBzSuNyio`UEYJR_ekjc6jm7^9(dx(mku7P~0#>sWvJ+K7X8Gri56RI$@mXsh z)#}i57+C`txIsz27DVJ)FCVDaAoQApojv!nUpQj(9BI25802+>TtY_&tE%`bBCQ4M zEP5$P4okNW{=3jE;;n(?i3i&mP@~+Qv-&S|+LolMFMA?;29Z$NM#C|Tb< zGtjDpe4A<7LHRgi$WK0EIti=8y|7EYm&)cv+h%_ zpL*#Q6n^eS4Qj&v-l*r?7MhZsfGLLBj!94xZf*^NC=@yRNNYWHu6S{b+LJiGz)wAW zLix%n?P{=qaVR4suZY;FJUcq930Bl49Y2P<33j!3 zM3S_FjbpK~DN{+33H{C+I9D!L*{WYzYgS7_!$D3!Y+N!g8+p#Wrv5XR6EUbU3A<9w zwo!mJYSD!j5O-BZ8pq1<*^8wQxVEOj0eLfaL_U!kkAMexB%BJ(v^N%B2{+uwb=f}% zX>c{3-IC%9yQNK_}nPPj^BWZc(fp&q`~S`eXY%(WKl;!U=PR>z^ec_o6NClLdZM_0NtctsB1> zmc^e^TNF-2UxOqu+OBcOf3O+6AiVu)`Z(`XseQx9r+icLokkV;y+j(6XYVz#ECWU! zectt^yFX;mu)3jPCaz^OZZLhO{ok;tn!ATPJT=ua%UT7^!jji=ZMC78$# zau#7+%|n3E^>n*y#<#!?CIHugx7qB*C7IxB#qAMkM>)NyS~1-k@MrE^DB)+x3?2sx z6dO6%5t#a86Ot3oRke1VW@oX3TVKY3ClO1ciH@#d8=HhZj*YJf{6kr_)uC7#MR@I& zoV;hyBg`=Xtg=!6RoWaSRMa3Gdpd5uh2_}{(spIH#l`w`IbLVR`&cVwEB^{HJ1TIn z3h6I!d_xP;(t=G8c%Gpw5Lxx&*7rP3D9ySCMlUp!-!m}hwoo;_9BaUHYW?Q#t(YCK z|AZD&_^qwh$N1m{&Y!v|y?8P4#0Q1I=i@s1pTPUXL>nvQ*?e)Q2X>3jl{fwFUY2w< z&-n^Cpw+?GeCpH`Di^hG3Zyk=Y@XWH9?0=SKHMlX9k^Nj z`)#WZ59v?xA#J$d?5;8Z9V!aqa<_EdcN-- zm9@!X#M10wqg0R_-eeVY4j3QU)K9VtXW~2}!PK&Wk0>I-l;6d4%aM{^{l0>CuvN~n zPTV5j+;Y?C>Hj46h`xHtG_bkgNGS(^ho*1&shPO1h|{8x00n9!)Fv`An&Crq?28I9 z@hTMUtBP=gUN0g>3jNM`)dNgjVJCCE-6crO86`*Z*q@HhJ z@^-V120J|8Gx{1NZ2=OJbxa+cVmWGbZMgqX1vyqE_r8{FSv*V(84V3Pz1Lo5)YX+7kI( z)j5*j2`lGWMgT1vRP?9ouR@CreA~VTLc!axIVb5cwFB<-lMa3au6DL3)FF18XzUUf z4JK9lobLaA48&#ipMfNNiY|h4t z(*6{e@Az(C3J=4dpZi>kW$|9ipyjrXFjs8Nyp+gJui+-S*riZZeT~PLNh-Mey;-&} z6o(TQvN1T~r-Ok%iM=b9!un#8)9g*vIuwBcfSZ%TZ^NF;Mreb+DT0@0Sg1nR=HC#O z4*4*j-(5?!fkdbwi&E40DO_o=^1VFx!Udnm`blgMf=a@VXGO0!dj2F-fV^qJ$=^Zy zlkTH9=Xrk0@Q}9|iWka)eGs;MId}c`Bu;R@t)=J(bRA?G-^p63cZe8&20uhEn*H}` zuWvUXAxIL?d9;Yf!7^H|&f?%-{&@B&ym~i@C!&bp`~MdgpjPsiclYmOYd=~$&@M${ zmFv8RUXOd4>dr!KhN8%J!_ACW4YQc1Ob~r`6^p7hBR=s+v+~*yb|@m!g}+$3w-uF& zDB&7StWvT{GXFBG5%=@8(L$&@BL{WY@7s$%1s0W#5ZC?C4r`6Bf=Lf+iim#9)gQt< z^Wk~!jJ8CF&mYQFXBs=lf4)?xDS6ah^fjS*%rtk+-H4 zy^zgGn>SmxNu;uUk3f)Nr|x(5VUE(vfa8jjaRJ;*u*8W9#xv>73ewft85(q%6>Ym! z4BkaqvSawF$}iOXhrU68gF&hipy&Gl+V(BmkLiT(X-E)d~Ot@uO zR)=Rd^^tu<150aDu|7>efm#itIN2|}J)_Rr(q8OI^F5iS&$7A`;`--nuJYd2JhVG; z|JdbxBCDv3c|NXc;M1s8XdM;##V#egVa3SLPe+{m)@#srXc{#;7y{G=*;39d>+3mL zf-;^tD_v;xuBppK^*(-{H!fPzQlCZdH$9{HXq(ylPkF!Q_2O zDH&<&RhUq14xbiK1=kbWYd*QFzOl-lDV62{|d_t_n_DURX zIAYRw)?K7!DpOBMUQWfY67i}OPGOU=xh=_UQthsM(fL~`+Ml<+Jv&A;`nnL}(wc91 z9ZcVATl>yEQ`yybm;zbMPxW1^0DMBcMf!5M=I>)Z)K>-i^DQC*E*)+ukOR_6QL-!( z8Xs<&U`2F(ZIn&@5Y10rO4PJ1Tx)o)c7muSY%W~sMAtd5&F4Zd4I{ozV;GY5MwfN6 zX4{&!U!OZ^NZ+loJ>m;Hy2{#sAo;brS%`TDkHW9I?g7IuZ{LAD-P3f18?M(O1@IKT z6LKME3ZzgCpqu@h!97~{Y!6}G=j5V){Y~l5=SsN4e?@ITxEHsj|qc?@;>+xqF-Kp+n>23biVhl3-hSAQmk!T-!RKB*3YQD)7cHkIu_O&xY9&$I1 z_SJ5eGKL@mCoast*mdjmbiP2TfL%4FyY<~`k1Lz8jwFZU!=S=akFEYW+h-?H*Rn{F zYsq*oK8=SPg2|PNNw)NQQ@tW3&-mG6-anP*edE^R_6yaL#i7Je0`wZN);r7VWzGXyW zDb?OS!A1kBvm042<;ZPHhPE}KxM2u<8ueYr@3_TFDf_R?u6musfg5K=W)6^9NECQ3 z>C%za*8aX&klTm7(aUi~N@jAx661SR`N{fhOx#N=I>jmXEBoZro;;&e_{CANo-U1>1YsV;ixV>MbyjUP>=J&o6x^DJ)g(l(EdV*Jn`f;>nrd$=6QSS z<3;-&TLf*@WyO?CP^J)_xLct#v&X^0Xx}i9)vWf5a>cnP6$Od9cnueg?;ANt=xuZ< zpbVb%lU3$2(?ENEa@@v~(T#U6PAM8ATT(9!cwL5e8YX|^G~NKI#|&pGP8YV0v8>sb zwRJNtu^8uJl|R~k*=9&{0+G%1I4-|&hbsw-=!=Hjwa-MKDwS()9C)QaG09@~L;Tux zoj784c?*70c)Ev6lOIoSP3x&8Wmn&4)>f5oaRbp|U5H`--EK9hczN%o=YGG8&X99m zO#X1k?M;?*T^cO&O%!7MG4u?l`Jha*c<^A57y*7s}qqao>&3)gSD&2qWFO;i%hkM#^+&<7NF0ECy zfcP|hmmZll2cM2&ZpA;RXoxjVrrzLVVoJ~?DB~+DqXWnsmgwMFtMA8-ne#a)67S!? zr}_R|)A$iP^v_Bh&)jVPOyuqU?aGR7c+RX5Kb(8G z?0v{C7-I4|!XdspUck}AYa_v$YQ6o_6_owp<60;e9nKH|#0 zBJZZouepTsz6>sTB^Vhj9Io#!vy)Ozcl8|7~OV0UO_Wcv84fyA48X9$}kEGwf zt~bfQlzEvQ60vjWs3PrN@rDTqe)+Qm7cG}5F}$R^RsExeM#0)quO(l2MZ9eKYP6I> zp>NY;UktJ03>|&x+7=2rc!5t1Uji8u9gLC>)dX?_D|nNhhIP%$HD`p>lri6+LoYqv zKNv78OEMPAYsJ=`k3XaQp5ljhd^Ak|Q9-qAp+5M5HY>vR)5yPRY#U*&gVeE;$GY{P z>u&^!0-XPrIiYQ|36F9m%dET0oD#lDDp$A~&ze`!sydCwO9dJ`G__3ZMG_^;CpLoL zPnaZ%Fb|(gJSdsubACE1wqAd2866IBgSXD%aG?K);H@26O2b6#Jv{EH^`y?}dOJdN z9~Pqeyv-kcT5u`m=E51Za`JRJOC4Ys0pYxZ8sV?HIp{V%mXd!}8H;CdXZl0-Xp^s` zQQrLm{IhuYLuBPW&HMauwe6C`mJ%o4Dc4DKgnn?cf?!Ag$?(S_*tyiZQS(dw_4|+b z^Z!JhNz>#|*FFzR-3w()Hg(MB{dnXu7FooIt6__vd%$fhpEwxCob%;R`9}c?+|VxT zKmmk%eR9-S0Sd(p=mH=>hbxRiW4a^%;cb^jaEzL>07Wz}i8lGmdvZq?yKi05fRg}4 z@2|3Ib>96Awi+3~MRWI0=Q<~MYA?sH3TTs}-N-GcYvO_nDk@ww?sw zI#)A*8!eOSD#slx3bx9)KTmhnOfl8Tb-X5=|2lQ6SLn<3HWNOBnV9ENlO-ssdpYE$ zHhZ&U(_wkAb*=O-{5twHg5_}Rr&0ZJJJXA7|2~A*U0f2VJYp$Bv^JmcT?y^kJra9<)-~RR zy&+HWeVN%U)e*#Ck&G;x=-^;$Uv0TzYIQJrsF~T&McTha!CfV(CZ@$mDn;odBhdXe z`%29J=){XHH=#bObKxi;C5S6l`_=Ml&d*Vae^{8w1SiiYC9STX~J(nEcla;rgTA1Z){LpWC zfw84Tiey%`yIzjJKmzB ze*-HlH&?O0t3?~uI$zT}QiSa<*f>30<2@jfM=%gNop^Xex5atC{;99$pv*7Kci?^z z#h6XW30J8Njyr#IrKgvD+$Owz?Eogc{8q)w6y>fzV?A~Pobk|;<-`rk1oc-fzCwt+9UBv0{MyAE?X2>Zi>Du-{$_b#iKo_h zTdrsZxeTue?Oi;4dybSFP=Hq|1{ix+wkWl6Ue$1a?KsXp_WyNXfu-k-ZN<%Ud^T2@ z<@K=Bax%!)Kb{^>J>eyPDO01F70c|&{Pa}Ybw^N&>S{CnxZNCjeXQE7$bbo4U)$uk^Vq>|j;?D1$~J!{#ra@Y#L>3>R` z$86gn-6f2>hu4l=<3*EA{e$;xI+5WE*poQ^c-ra43dDEw%-pDxoUo+@o1w{lCCe=|GWs;BmXf0bhmU`Bg2dy-xj z)kJV*jx34HVFCr08N_(MGr;+q|A~rt3^dSx$op;Rt@Nu#VV@-Wt+zK69qv^}`3bv3 zcu$VHr|`n3$Eg+CqQ&|9A3w79zmA0eR^!4P_eCu7(bB)r1N*>*mFc34;Pg3u-=7Ex z`Vs5K3&eRR>t!7AYz*X1)L?S^X7I8RBG93cE#)HH&h`}W-GGi!R7w*( zx1+um+p4_iqrKpx%RQ~ub%P`ExL}i?)lTHkbIF~J8Ql6I)?v6Wd?tjT9kP0DAM?Ot z86J)=RJ*jR5MY=qm8?1(s;}5K>N}8H=ckKWI}9=2C78jcW{=fK*}L6MYl=sI?W&(_ zJ@(%4wUo0pF_ID;g>}o$dc8vf7PrXr^(yuKCGEaj?<;086@jA#Z`p9&`~oz#lS6Fa zQ5Prd+V!eMI`mvi6v0B2_izg)!3U6H(tzm$zl0_|BPGsys+CqPK z!}cT<{uJrx5qToSIyC9BA;8DQFVU|CL{)m(zY=H$!+wKOQLNj8@$W9yJNW9cj?{~= zRw!$DpKfs?=z8-FuvZ|~GN=Ed2}<2B6-E@CZ?|qd9)a-OqaOXchhtuux1xP6m3F%0 zmiM)4~^^X+5Q^nstI)qqCf%ji3~F0rLY>4vgD*wlE$BjZZjWlt{33&JIf z{Jn3p+fHZGygasFt-$X*cbMDSGdhl`^L?MgR%X`D#@MN~c@8@?uGdxNT?Zc$H!QY@ zEPcePY{qMiD@R)iuk9b0y9;%u(5}XKT|%D-Ix4&FAX?YT%82|oS`+NN5vR7Pw~v2T zJmh3v`wKo9{29-zj1-IaY`w}JOE*0^pi$N;1 z1_GMot5+y>iQJy1i)EFFE9153i9pQkUL;jO$@pLY8620wprCKFgh zg}rt*W?nA2%5xW)J*JF3o*ny+Yb|qf##u=ffq9_+_R-I7#(EF29ty#*;@~f@$5)b0 zd^&8crNU|oBeeQLYdVB0RBdSe~?Z$6@r` zykfDwk7+|45)?7r-5>HR*ec~e7hI+#zrmTHY|jcvjEVBvLIyJAMTo4A+64R`m0@d* zev}~Nz9QlnTnGN`dVT3%&bdhQ%RkD6N7#nlm)%Shw1AZPgJTz@U(yx|Tf#DzOxhe~ zeT;y>%Z?5|-yUP$7hVj4H>x$-X(4+YwUL`1qI-H3om zZtqxoTt@!dzfM=G44d`!{`?WK$&&+{ugtxyQOY$$!wF_^Lx5KShOfP9?pbTCf--jV z)Y`Wa%@u)8$Tx8pDY@dKjl0%S#RxvP%Q|33VA)Y}F@W6~W}p82|J zwmLk*c2kwm7YfD1Sf|w(aUe0UKxgT1qlNGc4;0{~qY;+s-I8HO%Wb8jiFJFrd_K|f ze$8r9TqJ_8-6fgkB?Q*T+3pzo5cuwXy-^MDh5fU*@j)i~7dq+Y*>aZzl6Y^ORmvk$ zLo-DVym`>uB2{QGmq_;o8Vyo%Eq$jeuc{86I*4@o1o@F>D4#2inB&F8D(~$d!%lty zIU33>wZm(o7hBebjc)xr>5mF6k3Nsedc~a?ugY^Y-tD|?u1B{r00Rrd6?o!g9UZCq zZ2yF7Z&J@3jgX<;3p2g|O?OM`*uf7M(T!?;00DlIZoH5gDy&9}GK;chBus1^;vkaK z8dALiKLS+3r6bxM{PPhRwFpg}r~#PV5lf@ZV!r}YxIr~yuSztF{EGrDidDP?lnr&Z z6B064Ee6+Drn~e1-hiQLMZr>~1(5{_FPYpy?;!CDA*5Ldx6k`#M}ve2HOQ$H!l*>7 zC2XG)R0dK7`$*n|Hg~eRc;E}MY{H1E<})bky?M_%s&_~NB7v?{mkZSIp?IV_UEMNJsr>XLKnBzXCOr@|@M8i!ZmC4CPQnA~a($WpR>rBYd($<#k_RKn*dt)UU1$y}N z6CQAi(5Rf=>}F=$g)K->1hZ3IEMQn6mR~F@i2#``aTzr|e`g&`- z{{v|CI3S|(@vEH)~3eE|K*u}_hlu6UyxvXKboqohRT8b^aUV{_g5hW5f zx*@>SbWDWDabhJw%xA%qd^I5N(=Hz^=VE34d-jD9+MInPl1)NQbaiHM68=893Nmo} zuIad76A`I-5g|arWuplhqW@Tj`E={^4ueZpbW!Vz&+8;4T$h}G?Imd?O*Pu1BVal* z&`t$Hxi@OO)cZWK<|F|B&kn9&pJwkg%)KSOEpF#`G`i-bbD`xPCRV2UhKqP)Ua)ni zd{?hf*Fo&jW%3kvgS#Qq0Ffm_R1aHL`RhwpT5dLUzyjVTuGuFyn4jPh{^2ju!m_hZ zPPdRz*gsf(6A+t}e5gW5vnoA7)V;WR` z;IJ3D{X(Dbq(Cz5ZWq<=pj!3nze97n&A)%uG}veQK9B7%exjsS59O^gK0tP)Y6)cXGGJS z&WNZ>YLy~l+lkta{MqYq;ik!jGpr=Ks)qVgSEZv#rCCqrojI-R6nMl@wtpeLZ7<3b zdTN(1;zjgD6cqX+46+O$&!?F7O+5&48=XzNbm~Z&1FAL_zeOW#(zfPXgs`?4%7c4SBBT@sf@*{&;mmrw8#Lbo7Ig-fd%gh~$#ZCimK9}nFxxq6&2#3)2z$o0!%x0YVF z74l~rPP7!vT(0NE3>zpS{`eP;=k?`+U<2~7Gf=zzRQ{ERDJm9W_WJRP^06@Gx%6i) zS!gmc#6ydk9>lQmF9+D6@Mz}d)w6@cmbh7{x|n?7$*!& z@8Jb%o-uklD0_xj9oal}h%b4@C!;?bYa=>mxGI9dubN-;QC=a@qWV?UpxT=nLu8&>}c-D);atl6X0ZW z8OaHKxe)5M1fNc#52Z7wN2Ur}(W)C{{U^+Gk}pS1Ni}C}iu!4>N#~LJ`wDSOTMgT- z7t*uKl(r7tbw+$zoX^E+OlZfUmcHTU*N6EP6<~F5-=NxQHeQCB1l~Qxgd&jv-?X?*Ez@SqHaHl#Z`SN;oN9CtOyT-yC6gLmxv9JABx zDBh53YuA6f{hM(o9SJIZl!t&*riVV<9fEt?hZVeyctQl;k_iL4ZU-cm4Q>O`&IuHYxrQrdzTiDuG`C~U;c#i zm>MUVLDh-a>vmEIWN@dyj?sb8@(srb9_C|+YjuR1pRaeB<>ioCJDVb#q|39W6ap#_ zao6dFsfHs&Zdq&G)K?d+j(K;w)iF!Dyf~S7Hy;P@YL2w6cmY~ZyWY_T*)V~AHlc`G zA>Q11p^ZRhqZA763oQmIYrbq}Ml03*s#l}%FI!VF z1Q8%*|3Qc-HKxzmjH#H&$n06)P0aPr!$<08;~+nw=#z!KyTg#w=DnZS4EgT%3xY{& zRkXkxxF-44ki#4bH;7Y}N zjcky9&9*z=+Thw};x|S8rY{44cE}iS#OnIpm@H*QB#Bm-<@bB5G>}JQyNWl8Q>K41M!gz)cxBcP4G>$Fp4t0H1s7B zy%+(^T2?j_>|&m(mQ9k@PBtmC+$uzeIHN#--Cw>Owtx5VEXoB8R<>511aOFZGr>9f z=9^9e89l&OI!N$sv@lp1O%3>1ePe{hs#=$7VTyPTS0*&6pRf9@bOF$a1O0#?Hzf>O zw)$p>O#GHBng`?lYZP(tsn(%;SbotSG3@T|JsckI)S`~ z3H;ajLoCFB=UW7EE8&&+Up=_J4yP}G|94yvT=eO&IHDL2Q6salOt(oP5PducZA>9( z9Y>T^L@HzuFKmy1slX7&Ws3{e|JpJ&SN-^_ z_f4n!zqga&+9Ln^zbgHmQ2y7;3_5fK@cTb*`TxUDGe~2(06>28UygwPKi~WR^YA~=MS-_f8NaXBlD`3DE3B5o+J^8}$W@7|X(=0m2m zyacAZ2m#!}JuZ+0{n<$ufH;=p&HxSm$S^`1-9>oyi;W^~o&sbDivgV!IVYV(U`7`u z8viARaqHXNxA~W~7`MVeZ8GvvUILwNd?CvTCvXg??FJ!Y>oFk3qS0W$Fo0)ZR*7+H zfBh@Mpe2(0P7QUA%ZX1Ix4qJ!LQK~07d0ReM!dJdi+KrDb#F4Mfc7659T>18Ft7>& zuH}adfhu_rO>iXgDHRk%*Zl@?m3F(<e>!MNnD=@4_8G>Qom>bw1bXgp#B$e5|Y zB$_KB%7OUnc&nCGFGOrHkWODh-v!5d{I7sO-3K6+O_05)GSJDcM_KY;X2Q7mK?{v4 z`fGdO5c+fp0+azu&>@-=fdmo23&jUmI}7N4zC9NM#QsmPC&BX8RM62oHniUDRweW~ zImY}e1AKrcI2aH>&Pjc%4Upq_E@j|=Ugse}cR(zF8tx6(|LKE|4suV&xWe{X+F;w&G6W{CZ;&x2hHAaB; z-HtB6oAxs&!4OpAsBQ8U6N*1BHOK?D(+MDw;F_%tBmtgvg+(OMF;Ht{4*?nyJBBv| zc6);k^45Wb*2O?=Eb^9$yvy5;P#^^}hj&(AmI*2Vq%-E<(v4rCa!^W;14ErWcF$UEL3{B`i-!FY@R*?eIj zsRSz0KTs)Bi%knS5P$py%&O|{1#-@-LrMWW;~0TF{q#$pprKnSD65JBsuKo`Pu^O^ zemrSw1Ie9o34{zj1=4*!A-6;;)b|e<;!C0eR%mdRw4kZ$h4mj8t0eh6)1S!BJw%gL z(`-L#2HC7&0kO1x%fYcUzyxeQi=)b1pC2|a9lyn)Ce05JfG$yeR>EQ4Eiw%G&$63? z^;q>E?a+Dy>c-w1XO6o9$(_q}t^{L8orJ(MQkATTBkj{;)EJ4ov|VY|4;08pMp5kv z9>)AFfC@EV{RCJA8)HC`Il91Vy`O<>5PEXquUH2?AiZ;&Fi3G%DFU%UXZ=H>> z>k;-%fhltH2hJ*K$ff?@14fRQO28>4;DOao#1e7;gJc;S=FVX*&xpqgr3T&TdE$+~ zb#BmpDHA#KA?f4;CYLkOBZAOOg$G*G`*J&v~&N+%Kr4^$9=8HbpMUy7-tm?*rMzIjU{2rT&aPyDhMEiDGKf2 zGgyLs&heS^hdXiV;V;buTN3COi{lo+m;efQFT;AKA8-*!3DkUpp%9YFXH=$yIx-df zpu~0CM`uRdXI29=&TrnClS&0#y(+W6JmGTr&E4rOm{dRycyp*j}5{s-)t>;qnMsRs{ zOUej8Z_&);NAEgS0Op;l#mXYX#PUD`c0zN4{c%MBDq+Kzz^v8QjOOyaDWG{+)^D2|3lVmCR;st!P{t-=TSZP&Sei^37I5vjc#V0x?Hy+R8d z(g$DW65$>!1W+1x#rgw1@_&>%8>yk>@&UoIaNy}%dz~xFY%c@up$6ts1dWkSN~;~cL3vOp?R=2h%f3(bRs~N5RxA-^$h8JH3u@K z8eTsU1KbHDdsOA|(&aPoxo}~+yTb5h9KJMn>_ag;2yCq9H=*6rZ5x;}FIKa6`?#d3o@dtS`*{{(v!gzK=8r!cS~ z{YbETX7h4L@C5KXm=XZ6(T4M2ZBGE$^h$q;d?+r1A8A@iod%7*hC1KNGaWIuky+G z0Kk91MrHuuc|ypyR5FcQ7l`+4pe*<|n`Izs7~Wt#8hH<7mI&NLvWLm>; z=;;`MU%ykGkHvqT}P}fpShUF zZAto>0Q#DdcL#6}*nG4xnc9p1=;~bofJH{)OqbnD3Nt-oun{e(e7TAA+oF2pw^A0* zW+MP#Q+iVQGywM)k#z>!XF!n22imwkD2@OaDep%n(y_}30GKi)l`93{Y_sbZGm#H> zTm%ql#Z6Qk-UINfEZyxeF?RtrO0Yr}=adO~xdK4J8t9H@%4=+%bd;HRYi06xn~;?& z0J>wInLMIkI89)*kwU{z0A7*B|J8yxY5+$haRdOJZC3FO6#xp>gEcv<4>q4FjkDZ@ ztc#eYRQ@?L=?8(03Q6OgWWWMD z7clF0X&&#`xK5Z-06b;)vDjGq0Q)Hb(`9ldZLF+4RD=*;Fl|xF5^9AtJ{3zUg%A=d z7G6gsfX67Mr6$r506Yz5q^F~|xM72(ETiVFkC!QgZKRa$GZXJ~*||040)T%grRz)y zP)g&$3=yR~Vr4!K10lo}z!Q?7Bp43C8bH~G6-!XPB!|e-u?MeGN>j|ptN`br^x{eEA%C=D`o9>ZY{4N$Pf%OnA$`?t31OWe~CRR^~_w_ljo`j{`1=dT{v7A!6 z(_AD<={Ydl2Oa$hA^oh#*VgowotyI2UYC4CDZOk)WkGf+L%2mpUlO81yb zoU&C5@0uw?ZFm~`(+i8J1*?U?>d!gJ`4X|-+a1bQKS=M18<@>TT@oNWzirFJRbWe< zq;p)`Xf2i(NSFdPinz2;y7A31 zO6fLB;))8Zbjx9X*uGwvVg=YVoQ{QrkSHUv_CT%x)M|;a92E>VJdpQ3Yl?h_qVKGT zE0>iUK^P;BQfi4GZr!lCj$*JmFiViG(f2VbWk@#I@T^%VTNk`l666i$H=!YNhwNNQ z`7*@?$=_`WA@Uc(R-BF@k<3?iAdYcEfe9%(l?|{;dU-BO9k5;5_k*w$h zMcUguN3Af%q?Ber-%oyj6S4xOv{Z7GTbhrBT$G)EB^p21Cl@KDCFaEd=+`@deGHZ8 zBl$anO4j+CLj2fnH7jU6{lRQ0bXeO4L@T6MCx~@W+BwvK8B5j`@{zv^TPCgno8OfZ zXQQ;`FP1f$Wir?hrK@-@->=yiW_v#XKq;*tgxm&mUIGBuEa{nvq@j8^)ZLVzj6^H) z01U0^y921PBanJT`VlMwP(TQ2C7u(>|Hl57YrNsG@i3UkRV!qZWar*sMxj-Ry))^G zheRtB48U-eh0=$ri|kxpXG~$KY*$pT$N+#C(Fv3#&rbLMEmW@(=Nt~8j#T6s&5ci^r`>X1@>k^ij% z>#*s<>$(p83}zgz8}Xe@2w6%gJyQpH%iB6@I-O?GK!1+11ndK63#7{lE1=&CFbSoU z5<-$tU6I`gAuguoHbrik`CW>%cTv-L)(p#AlZTSLy?Va(Mq0l-Q2T9!1I>%n2x}TX zdCyd-9>|x|TKoLv<&mcc81?|I$s--?y)@_MR6fjnpLo<1dp$o(Sp;Te=_?5vEgm3* zq=WTPw}H)_XB(toTdb*f^7c=u-g(Qy9YFz**P)fQOs`Js5T#TgguIOE(GddReK2pE z_QtLXfC~DJh_$^`Q%DP%Y-R5UFl@{$xp1v{5u3)dhT19sHhu7Qh_87Ot8lY%dOEDF zpXQK1FKeH_e3U`y`AhF@v8A>ZK$XF*IfF-e9=5<<&(9(#r8mGvPK^0b4*|0|S_2@1 z5VB3&g4JHwy57l01+4AR*{TC5rNP%B(PrV8BxoEVWJDcgE$=wn)c!yNW}UCYnjvj- zNYky!1Cz(8RFrBsSbGl|%k@hY${a95ui9YAN6QhAKQC8BDdWiHm7c$JKG2yEqOwxa zwxmq*4#8m`Die17@r|1T?_dju@TIhno!5KAQA?WFQr^}csOn0Kz74jX7GSeG4zayv9U$Kf zMqZ!IA(vO$Tt*tE0rOyI(MD3@vch1qg3K|JlmnE~=Pb#?(V>){0`m#-y0}T%2rw_7 zqfqUc4`A=gaze;iO6l=BFQ|3s90uv;%UfC*-&%P~kPl-or*-Gi&t_0c4-!Ilp?c_l z03l==rSx|@=9y0jiH82lhtaTL#gZkcpx>iXq1ugZZIKQo5m;fkAzB_w4X83j3)O~9 zZ9f3UdcM;6XlsVr>^ZC{MOtoui2-0^CjO86gC*K~ zW#?x7s91^$hD$PR<*4Id*?CVzDP?*>-;hO~RzswvxXrMo$X7m`G9o7(8L{RA(AK<2 z74qR{Ybv~a2~r6zIoq$G zZ>QFq5Hi-7ur;W_eECaxQ|y7)7WqSe+KRYxS&P=OIykN{^th-9A*2&Tt7MU@lu~2H zInwY5OP-zhqEED>EFyA46l*?Ya_#lM4cMuXwMgr&Gl0h|i6nYYTp|lr+7L)S7y7v6 zMYGJSqG%K>eTF_@o1`>)M1LI8Yj=h1Mo8_6+)LvN7RH+Z>z$if!g;WL7j)c72fQM?6u*gp6e>esbLWWvU zs5W3ORCQFqItM3?%##)>S5HHKc=mrLWY0_fb^+Uj#T@s;IxRc{`cn;I#sn4E1Gcl7 zj)Ac5L)DP^L3aK)A;c2fi~FI!)8=W>E218h(kswc0y+~y%=X|!x+9G3e3uqV=ny&M+WSkyD?p>H2DQ+(z|5tYtY?NJ!fFjeYC-37q+ z4Yea6dfQwj32F)ZyK8?5`gUL~0Bo(P5#)cDLnx|YBUxI zU?U;K==QSW2VDMq#pMuNsteK-v}WVPa_dR0tq3n zo2r{&%Hc7|vEG_;T2O|22q7~q9pNN|Gy^b35_HDYUM7wLrL-7qow^PcfCGe(DN6E$ zkPxt~;O%MA{sr_qgo6NlZOsRa5YmYd@~q8ERx{p)zFT-}6l$vxM*;4KzWu=n0Efjk z-69Af!w4aV!8SqCNOv9j0fsw4{RTD{skeh4*s6gs;_u}E?o!%m2yEC>zQa@=STEI2 zBIgaZagclmE0fzl!f-dhrN(3x;wDStZL=cYK1sYd6LRw10HygI0Gm4^68TWDWhL@w z@R*tM5HRnJ(m1hTu46T#j0S9I?_;pJB#P?oKXr%E-2lZjK9$MGfDLI+1*?drbF$z$%69{_c!xtUZCo0+g$db?Fx)~o8ms|y zmdHf_coBx%v2M4ZJiBCZ^1#-zdq`wl0gMAP>eKCPmMw{6Zad&WFyk_5KBZurrL=|e z_Qv60@A^i`J@7S=hrM?LTqdTQ4yI)FklrJSoD*1kbVXJk#rlWZ?FRUU73IHQ7Pr3% zSvA<66;gREm^<>vA7=!I|G6#E*$|p31+J% zz{KvbHLMdxcLTH_?nkn?7C%>5xEr8Cy#J!Q4VNB!!A4d)1Mm`M377-9USP(H#|`31 z5_T6WhtkDVf_+quK!5vL-Jz%ei0QTi^DZTiBY+tgoi}np`Q{!58kPdE6#9FyQ?MbO z17L1hmG1j`04fX0G{#8$GO#td75%$x!c0QO-qR^fGr;&zo_jjGZ%w7TOK z*c#iTV)^7BLW%~c0EqIl!4zes=kqTNKdibV8bGiGu?HyDDMwu zC~EGV)g51eO$|!J?lV&#q_QRz05Q&77%IfNBUh}e2gT=*uOQ<{3V-hW4c!0{MdVnj;nDR|A+&EpY5Y*;b!R#5|-pgZ0j& z!}TY?6b7sODo{#qgH=3pTd2y*po?EYDO~`zghk1{Y6O^4G7wB@lv`V8p!RNr>jg^b z2C$EteE!%OKwl^?z1jv~C}o@Jm`gteY}2K4vY*soD{A_Qc>(NQeVI~f&E{OXd}6>x z1lPmxIlF*;5JrkJp)lkO4BM8v#MrwO47S0{IIz_bQm>0zu*TY=DN#p)GB?IU!8Uj^ zK8Mkkfp5g)L+It=VN$fwH6jl`=LDD%Aeu~|Xe=leU@ zyS4_#>$D5l$gdLd0PX=WP)~reHKZ>RLcRerM4JTTTV`GZTMqFnRWMMJrJD?32q9!P zm?ivBR5wUE1OO++i&{x7b4FAFrY%a#WGTl`?e*${DM12#PVR(OI!JJ2YN!eyd&d|SiWjTTLACPgV-K?wN;%xGpB*auLlqLzb=jO+j#IXPm9GGqn$u=4sP+?2&N zJ19hnTKSdD1kncTQH!A!hMvV5)D;EXbt)(Z$BAAq$dW5ARrV;}tlu$4qV0@zQ*p#&oSZxljE zb1kzn`09c<`089){_S2-InV*O|i_KZrw-hr#s zI&Yb#(r*J+w_LzJ9Ep@IYqL4xihxkCXIKID{E{j2h2YQ-LVUr>9tzfY-U4u|HtkzO zh7htG`pZ?rsPQGpw#ril_B{v$o3_XWt3xRkb_6*92qErZ^*9LZT`U8;mr0aT#m)H4 zDgd0CVTl63;cz&Pf~btgqk8)07Nyi4o&h-yLW5j~$>DG~9GmkJ^ldjb)mK3{bpuxb zI2;bA5kd$VVu{B+!gvV!9#{nc-`cHk9EX4_02~g7(>NImAeInvh!Ao=A*2@}#1CM* zK@vhb6GH9+GY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + compute node: single NIC + + + + + + quantum_ovs_agent + + + + peth + + + bridge + + veth + + veth + + + nova-compute + + + VMtenant-X + + ... + + + OVS + + + + + openflow + + VMtenant-Y + + VMtenant-... + + peth: physical NICveth: virtual NIC + physical host + + diff --git a/doc/source/images/filtering-broadcast.png b/doc/source/images/filtering-broadcast.png new file mode 100644 index 0000000000000000000000000000000000000000..08dd7b1c3976db2d14708032faf46ec063ceb47c GIT binary patch literal 78515 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 literal 0 HcmV?d00001 diff --git a/doc/source/images/filtering-broadcast.svg b/doc/source/images/filtering-broadcast.svg new file mode 100644 index 00000000..2b2bb3e4 --- /dev/null +++ b/doc/source/images/filtering-broadcast.svg @@ -0,0 +1,882 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + nova-compute + + VMtenant-X + + OVS + + physical host + broadcast filtering + + + + eth + + + + + tenant-Y + + mac addr + + + ryu-openflow-controller + + + tenant-X + + mac addr + + VMtenant-X + + VMtenant-Y + X:block + + + broadcast/multicast + + src addr + data + + + + + + forward + + diff --git a/doc/source/images/filtering-incoming.png b/doc/source/images/filtering-incoming.png new file mode 100644 index 0000000000000000000000000000000000000000..5151b540efdc6e128d9c1e7397575e1fb11e60aa GIT binary patch literal 81100 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 literal 0 HcmV?d00001 diff --git a/doc/source/images/filtering-incoming.svg b/doc/source/images/filtering-incoming.svg new file mode 100644 index 00000000..fad8faa7 --- /dev/null +++ b/doc/source/images/filtering-incoming.svg @@ -0,0 +1,958 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + nova-compute + + VMtenant-X + + OVS + + physical host + incoming filtering + + + + eth + + + + + + + dst addr + + src addr + data + + + tenant-Y + + mac addr + + + ryu-openflow-controller + + + tenant-X + + mac addr + + VMtenant-X + + VMtenant-Y + drop + X:block + + + dst addr + + src addr + data + pass + + + + + + forward + + diff --git a/doc/source/images/filtering-outgoing.png b/doc/source/images/filtering-outgoing.png new file mode 100644 index 0000000000000000000000000000000000000000..c7495929b9151f8324d16648f8203529b89e5a20 GIT binary patch literal 83163 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%0A1b*_*o`y-_4|I;d6UK z?9vm`XMUWw)IZL7_5H6IWA3mNNDW$W+F_vyog#u;DCA{1ca#bb1bHXbE;N2<&t%dJ zI}wpiL0U_nLJ}=aUMx{b4!F`J!XFF)g^eB2lYq_}ikEdFEIAJ&6Yka52Bs=R8rNg( zOQpnlKY<^(?u{8_sWF%G!Zne*1Gi0tRo}UmK?R(~=pnx~ylNp0#)> zp6#1wK0Ms+4lh@sP7e%R!8>2AhK3UTHoQ%d8Pq%+!&GCBV(aSt~pXdU)KdEIqrKNX#N5eNM* z`wnONYx9_b6H#ysKEq$@SmV%lLM^ngX%zqGq#8zt>(oOSg8ReAA^aOcN0Nh~7P<8C zk1tc$ci$M`{1i7^w=rPRv|0ntXu`*au0G{Vi)h98Wps+P#}tg;3{?3$UFUNWXEnQ< zh`2L3-*pD#zRGRJYxD=i4n1#A50l_WBJq|N(ZdoFOx1j8g&sJjAWYfsx{qr2mUnl# z_aeFSQ|{Fh`!`1}b-&531MK-7C425+8x^45uq`HMNyG zow8fx-Y<68Yc$SNFKZ%J(+=L1dtnQw710#?_83Nxz@=tM0Bzs`|A z-m7);F%7mZc%K>PX73d1zq-BXW;d#zcB*_>$j7ccYO>-ySw1m|AdsPy^}{ni>p<-o zAr}OHyTCum54tzpALSRtye#3M6+L&w0R@4r`@Y5_qCO{g|B{B~x?-SwvHPwdRShIp=)twen|NnXL6+T`++P+45`N*b~0$7aqRo0?q&1RIc# z2A>|dw~2kqt>%SK)USK+|9KS+3?vAomA^t?!6zH9b#O27*E4h23uBs= zZf@|-AM%m44|L%}8>wP`;ud-o6D|)#HsNjB5PxZadGP`tJ^_uR-rW`GSAn}~jGDl` zaVms4cRuWHqB;|G`>_gV-4>y!lqwZdoJ?0Q>A@NPvDx#0ce8qEpyWQKqGHT}p|Y(i zIBvhS*zVC$--pwKMkW5o`&M*ZHs@n9ee8b?ZZg#A_M3NxSE^`0?dWB)F3$F)uuo8@ zZiXO+TzK|AdAOm{GQ2=|pgqx&$Pnwq$c7E>6k?=Qb;1KX1lMLvpZ;M1I>4r6g8B81 zrLWM<{{~NtJ@6-zIk4AIH11N~u6SJWtTfw2qJn=TbX)W=q+QG?^v3u8t$-M`%Ajt> zTV}hJuOF0t%v0;*kSHmwHy2{JY?WM1_A`T2GBZNqsY zH9_AQDOI<2VKt<3|6qzRR@L&x1ZXMg+HmCQs*P^u7@zbt#tOXI`MqWfWm;&Q5a`S2 ziK+mP4(4e1foPUrgyz8V$xmn+>X(t{I}?%GP8$-n4upi$FAZ+-$^E701zeZvYkqNe z=m%O2CSCl@Mq7Wv&=7<0B1Kaed*9N}uY} zJUHFuBsqkG1YV&p3_gV-%}c$Rsbh@V#SYANw|g&-$D7{SBrK0p-@eBp%ekjy{A>Wx zWq@|&ktXy0{4+a@Kc62yHZnzmj$g0ruiCTYm*E()i4<09jp{pkj3{iJe%*9B5(RkS znp!dgsUn-{<=?d6P1b)es~5L?&^luO%tH+w7Nw>^muCI9lF@}mneYisP%wJo0R{X~G-wErK1E64%e{E6NdT$>nG?Xxy)qWIA3fAUtb5Ud*hn3M zJxW5R>sIxDxB2P?a&e<)nCJ%HSav|7#iy%1Y}tEc@!OqyI@+oJ1z6s`D~_p@*Zn&| zTGLzyymj!La<1%<zyxeR@A&B5F6Z*1(v`%y$B({%&v_B|qC_a&W};vgf9~Td8>2L*$M)m* zcuVCgDa(}O5AB+TdAa@m?tAEKIBBqj(|fGbk8e|U&m#{5o-z;?fnegsY-jfbO-Z=s-bo{ zOHYg24A=OPswSxd7#&~BOJZ^1pb$dJ+1q`jT-0~>m6eW%uxObJNtry8aw5su>ViaY9-|thDnB}r&f>#5i z{h~<`g&a$jhc*2-kh@>Z7Ef$Zs%}UGD5!#}nu($C9eB;GN+z0e`g@$Nxehvo5gytX zWMl>g8H?SGUCU+V760)CYU6;=aD>^N^ zHEL-LQ2F)iVhar&o<7|Px$l|&Fc-X{1uDjJOW`wRcK6rw z(@fm zYpq!$#1Jz1>4hh4cqiTNTmFEyK5=P3^j>~|B7v>IJ|LRo5^S${uh&Z>$B}Y3@gtfq zNN#k18#Ln%ojSdz4}_eN+3y~S!ah!=FC}=R5pZydNkW@Tm)5(}D!IWo2w?%W9k#&_ zBKxS=JsfqPL=eMYHIK^p;VEy@2LO`N_pb@g>sVGfX^+T2ct6s@0+_oQW z&^EVH!^=`%?a9F#KCix~XPVk3Gca;^?ngi}`~Ia$O>w#4W|)c!AGrI7hhDJ$Ksq&z zB0e74!2OTay>!tB+4IHj@PL2$kq=bK=>=Rmk*olIm6$m`k?xQ0NZHFYIp+W%=G zj;|judwHR1ZVWDL^Z}^4+~$mrt`PKhYoVcpWk!*KWtIcg`Yl)vm_sti={dd*q$W5u zRN|-s?%AcEJIsm_%Je4xS8gF)=ECuhre4TIQP=CSBT0Z$xe`IAzwiz`_YsoCgtC)O zq=4QDJw2@M)jDcK?U;n!I* zo-lGFboJF|%MdxyV`lm#NUdbI$W1)1353C6{ClqSxA0g0h?& zx?czJqKuXdE`Sf_RK*-07C}!W2|Zzjq3K5*f>wTy;v~OM%U!^xAH;Zu1i2d;&62Sxo>Q&}tww;AiZ&cT^sP+>j&mD=<{H zvrgMq217&%>Fh75$AD%r!})Z1&n#30*-mVaryv~&#Ed`+?17+!wOD`<`9i47t_C_1G$zIeicsRD zfayO!+7k&!ZHYmz=Plg9qnT(ktkTz+=aszVqi&I=Qxtk=Nk4#Ex3Y)4$Xjy}bwixN zR%+c_p-LCVEE^aq8L)--VtjoARPqQ$^7T1SgG$O#WM1u`vT>qLm!f(eptznQng1*u zZqwZ-Q26nv(2G9S!wH(f`fM}+_Xq410aSU2&?@Kx8!C)n`7jj|xkE9_e2mz?ob?_!4mZU$2EkA&&7g)lV)#BN zF#|v{W-eVR$_jdK8=wff0<#JYZ)om)g3Aq{bw$hRpsXA8k4LJ|f^|(8ldrH%Kb8GL z{6wSz^b6S!20$F>Zg=j_F#tH!S_CMS;;4Z z_K|_ixdC??3`{{|-wPkp0Xcf+?v#;;fgqZ%Nbv$%!F@CZmqzlKSyGiB;|VRMS-H_2 zn{co0u(LE-vbIE|Et!sfg~2{YBIT=TldZ=k?7Kt0EGIg~nZ>4oZLHBIzRDAPdda1f z`cj-EAEwGZFGl+4Z{Q_Asw6=Yf*j8!DnUxPhA|$psC>o*iWWy3Og0j8cu&OR%jNv& z4=Xql zE`3k4$;9veoU~_Ap00y}bTamq){qu2NKX_w$np)Q^IwaV2XtsCH*nZ$SsPKzezbTA zv*Zhs#2VgeZNy3s`4B?U5L!TE! z@V#9KSN0tw>KO^iU1@m^Rac@dr`JX}`GetVlHl?hoSEVxfUEsU?;wh3k3RCD0uT~K zp=6~B=|awsf@ZJigE<%}rBGN#m9ya52=adkN2X9C8mU<37pgirDFSn^j@Vo7IOqx2U%k-o=PUwYBM+DScr17HB_Uqw&)U1p+d4WrjwtZf{| zoB~$|gKr~|4-U|VnYdPU*_-?S|GfZ&>KD5akufd(w$!6YO(s~tyR4MI|62sWm1f~?KFTRkmWN{O zLqaazi&Q?lo47mPi7g`)9;Cu{dsydWbO0x7JWrV0v0HGKK&`MQxW{7b!u2NaSajI( zX&Qw*&#T*=Anon!?pQd+H2GRJ7f%zocHFKDN<_1tVn+xgH%2ZL(`uiW!0OiA&a9~t z90;pkCsn$H%-7z7ilFX4qOaf$W3h6WIHfeubAQR68SKqXpUu z9mW+JK$8Rg@*#KNrE9go;(>&msfg?A2}Eid&H@iQ1|FoBllEi zz=jQrYzgtGlIh#ir#DjHRnad3SKcc=mstGsh ze{?CJbc;bZ(hLv~q`Olm-QA27BvnEh1nKS^CEeZKFuGxk{l@ow-}5_X|7_=p``r7v z`NS}YNl;Y8@D2TtcV5J}#;~IZXzElJ7bgP!pmli(wQf|74-MmR)9dFl0->sd?S)eK z2zn7W9`ko|)%osX%*-+-CI&|AIgIJKt4CYpRwPI@`ca*Rl|&FQ_&G|i-j0@H3uPvU z(ise$D!F3Hq)dH7ij{PbG^(kGD_Bz5rDi>@XvBsG-0KG1KpM|s|-u^^N=xs zV9=C_Oy;6`Jixn)XHUL*h|APUa;;uOPMlO#10@+(LLV~)W$m|6zad8aE?`?O$C!;W zU*DQ$m0%|S_$K_vq&lx#!e%z0ycLsL%vL;FTbJCiThVl1Kqhl?fAVmYnZ2~_V|7`T zKm56FYv*H9Hel8StK~-Qbk`a>r6);_Hb||MYK{Jnv-Rs#vH4EOrR!QWrn$^3i)YB# zH4V-Y$j!f!3+>01A@y3@b$5XSj2|k+O388$pkj!W(8gPhp{Fx2{Y;8^N%ll?utxGn6%l%Nh(=! zBbXw#S=HGKvQUFu|9(0FN?^ZjY))UL^V$C`bL`x|?FAD)sS;`Cm75!MsU97wal-VX z5kiG{3u|bYU00~ueZ4TF%n^PG^)WC_89S@EFDSDvLLV^4OU7`JBQAS0RIMK zc21pCC(^;wTvqTf+t(D*tZH_KgBNPkO@*uF6HJ$2j#sr~tvS3GlJdBUnd>bXr%sOk z#@V0V29UfakS|mwJ`$FD-&4Zzg%>rK;BO-b?v*YJL%Z}hNo+LVf)iHM9JBs~$U=-V>y=MhY zTVL`$_&GVq9t5dY5CGCg3@n1qdB3#wi%h<;Kf!UxZ6Iqc-BZSvo7Uu^K+Ay+ZPI-ZD$|J>7TbU}3!GJ!?`Qz%ayY0Z;>uS-%jSr&_fGet-OP{HgmbNhJreU$*8C ztC|od^jyt%X=_&^prPl5Zz;m&A@2B%w z6Edi}^tky{BT;~pZLL1?YW!Og#vedEujeZR$~z$>NP(Jv!VM%0-89kpnS;UPLu^?Z zAHmy0JzDR|pvENNNFucBKRi6IR^VMIL`umH8IpEUIZILx>MnO9&;28F5TQ znbO!FcOTo&mvEVL2T&|feQ>E-?wZzcwM&DlMmmb(i|~BWr@ATj+<0)~#D17#zaVbMr4O<_Sz+>rvoDo0HMg`L zMxsQ#{^5n3?``f>bh{_wHx;ssp`3>CkqXVvX-Cu;rU`mvDls-cQ46RbHsLd}i5!nbyc6#rD)}2#r;GJq<-PByN)umyy?#m3a3lftP3d zkL6~MyK%#6!&=1hXtNmWnrJzy3BiuEPjHcb!da(Ycy&X&9=+g=kf4SGiPn2ZGs2NK zPyGM%#DDCbB)@i=b|d*hg<#)%)0O+*xn`k+lG1F+G7906s`ArVEGWeRe6$Pmq;oL~r|pvxzL$rrk}tEL%`8uujqlP|PyHwFy_Kk~Rad8_-N#O}BZGzSb6COHJn zk7y3btOYSm0bcQwfUqtekRwP7$^np2s<{!5$sR05L+R3XmnB6ccFg#@eu*M&gWk5C4*Udiv_N{}l&4ZU=d_ z0`t}LF?r@~{vOXLZku@ZQPekqmB|q&n8$buQb_oQV>2Kbk5u8t_w99z@#-#tE`bZ} zENf^WMMMckAq)`uVv5=xxmB+w+iyQ=7E$TnQMpWhP zH02@X@lEQ?TEL~}|1FCW*(2MrMS=*iN!reotBoqY`Ile_X?E~FK>nB5CtlN&gC3De zgfW70f1jyxCH{!!nV^p6gu0L!h|!ZYX|~*NAW;e zMeTJ=jP*mc7?~4Vw<&yLRq_)>;ZfYsC~gOo-zd8%CO@5gOpcwO1o43ZY#7Rfnybmn zGl6pt(1JIs2Z#sucNDR-^CR^DxgLi9NMb_TX0o3zYWPo2ssi7&3#N4#g2_S3A-O;A zRBLSz6288+fw;59I-!TG>oT(7{1gFBUE}iJi{SaH?c~lnHRN1(R3x=XqBWlkjW9ZAs06c=qT;yzll2Mt`E285 zwqqhdVEwXF8*mJ0MZssvC1uVvR+Ycfk|#MNg*-_FSLw-6bdbkcMo~CKHI9&LUzLinqc+ICE~wD zUrAAsToB@36}r7?ycpW&9+60x#(((FkH!KR z15zU!S2pD6$;GH!A1OJSu=#BRLh;roRnjj5-H+1N++gmW4^Fq61ms+=_LQF3d;aFh zFpZ!fF77MpUK7Vq2gZtjn<-t7+sUygr{2r^x~Ett`O}ldDY+Cs)|4mN zt#}yACu~?Ash*|sY~$85K|EAnG}$d?@k>2{D)tFfLEJrfY0*TgBUjJGoiufz|&FQ3yGRp^ZmtEoD#unr7=+Mvq)}jT{vYu3sN#;K$Qeyvj z6(REbT#epV;S_R3y5xj4Rg&xmtDOxp`>@rkaCi8;_|(NRJ`2UPtayM+;fb{YjrbIcEIka61Qe z^v4blK}(rWxFy41ZZ&Z4#5oE`5~t%8Bs(zEOS?k?jnQexFe+%0@DFk1?c}<4=iJkr z(}u2W6pss~Ks|z^;0F|=rU2I1)c0>>+6OuRWr8tBQr!-mGc~C~317ee)wv9KLH%UN z*4;2h&e~ScZ82gth6Gh{1W5`A4DnhNti1lc$E>q=+X+4zf3sBjv=!i-01Plv>d`-u z3{NXUjYWonp!QXi0ckWuH;(fnT27>Xp|$cz_e;u(=eMO}jFb0e0gKU2q^#l5?3c_J z1yCl&Ng1S@&(N0`M6L#1ClN4HRigCPw0Q{X_VG3r28hIi4^pf$oJvAs}3-|2hHrva)2qnk{ zE|6|$yIi}(*nX)2{!!sggXk^;20Gk(x$2$ZuGI?lfDovA3-}THg|U7hCsM>87=)1U zAE5_;4k_=*`1k^e^3x`Er3nw7!zD56p3?}U?;5)7N}jBA2>nK)@2Ao=F=~+x!61ti za&iuxDfw7N4A79#WPa@ZdJmQCeBeMj*#B@}LO_*OCiZbcwQIULUX45fXspFjFk3ux zdbitna^wB^#$LAqkf$7qg0@yvjQZPdngyQQl8^NKayF-OShih1k+CZ7AKBOskzm*n z^kYvFp4i>iKEm(uE;7e_RIKu?9U|SsJ<_<@{p_ml$OkvPjt#C&o@(IPi1BxxT@Tgo zUhtx8fTtQM?FhXYz)aB9_P?o@^zwl=#>pE-W6ck4%#1PYTs_Y|DJjv8<;Ti*>9u5u zj$G=I2B=$iF5*FmX0iSl=b+{jh8%ex&AljV#$WNLqV)u%@D0`${72~^s_43X2zJ#H z<9jkm^!M(@8{crXtm`!8V=-dZ(aVkkWCUlYU!KOQkNx(%t^E#JZ!${U2H^lVPo_hL7-fjIv8m4o{k5mwS=GxOp zt=3e4y-2h1@Efd~tH^TQ?RJVyEV;Or!NUa%T7*fE^L83> z5Gi}m!ZV~DeJwukY|6fo)A_`^w;DtR@$N>{BF+W5qtLrk&y97IGqppuI`gfGFp4Rt z7W3W=`w4t|P^wgagbj_%C|+#V#`r(5DJLdAoBQ+@SRuK^-jT#ph5kpK%gedJ06B%^ z7OO0v*&}SL80V)9Go*tYw)CMin>H#Y8ZkcSZU+DrxGB{ON1uzVY{w}3-CYcSROVDw z(i$<=&C%>{GfwzV7DKomXwukUP5LAfBJp)JLYTa=vq1>XcS42bqq|<~x0NAe6Lmg7 zW;$B2B(Pyo{C%59JL3h3S$A9JlpIMg{#3 z_f)u@&gxZ?Qw5s?@|n*0a#e*!{;X}4=_Fhj{&{=CEE!($>se6vTRaMEHEg67ea^i! z{5|MbkW`FMh+ed&ob&Y1YWzz*Z`0@*mJXV-JZ!ad$lc;2iG)c&$d?j<`cJj*4a;-? zL?h#eyxek*mvZ;Vh;n<+GdYzGzP&YKxgc zAK;7O6YAvR4Db*84a*Zm-NjeD+9b?~2pES@HQrs+%{AOY4b{}J@SJ^Z8*y>YGhT;a zGwy?<6(^86A;ra`gHIw^%^_cY_txHrQoXkQgK-m%1*#?OC)bPd8$=qkx1o4QBuOk+ zP_FZFp&y21SWQL67KbYOK%!)pR`${{QT7(M{B8?R0?yr4k!Aq)OlS)-MwWk0 z(M9retDXhP0pzy?TV`~^cY2kQ@q&%)K*DpV)^=LJjI*Bn3L~;XNZeC$BHSm5iEJBU zlITxd%D$AiRfnUtk(6fi2UinGK*z4%pv(H*_wSfS)Z-}n_CawmNbeb{5h1dT`ak2yI6N$6xDE0WB#XPmVA+C zp2x1xfYm-eqFjWAuDGtbY|s*zw}tM&U!9;C$9r3aMm>V#Oxmi{vWwiUp*| zr^?*z^yF>!TgkF5QB`uZsAsjWryJtc`}o*HuoJR+>3PCgpTrS9AwluKc~g~gPA;GJ z4=MeG$F`D;Qh$P4L#<$gWWpELe|_FV`-HjbKe|d~6kVu(g8B(v(X{mZHe0OauoX?H4od`oT;`bkWA+b~oP^X2CmKuA=~sr+cxpv0U$puvOC!qq z?#>{R`X`KK%$`w0htzp>4MR1`E-n_BX|sjI;3dH8KuV#j6X6 zD^uiRJ8EcRzX(tZtip(ZQV!^US7T6>3?`H$j?qSsAPAxf>r=1#DThoBo)9Tr_=_*J z9oHY9jgSjVyRdyRlrWTV!{$@rp$nnl;?@F*B(at~=xY#dSRWhu3pxK{$#_hm%}<)w zIQmbz&GQ;6S`m;yz0^vgpeK)I*rU|s7{bIwWcjXa>7Fwpm)#i!k3K@0IU0W~mh@0i z+WX+O#tboPsh0H*@FXTG{(J6EH$MqKlEm2bF}<5DBh2n|j(j5V)uiRew|A!hb3Ic& zp@bP-287|qtQW0~A_lj_PSSf7(#LFyUxHd1vHn_pzD=`Rqnz;dFRRjVWYr7To%(ff z!|S*Q?f+Y%9cAg7iph(-&kT~`rm8}_!arJd=%vSq|Gn3rK%q+Bnq`q@CUm6X(8GT! zvQQ+rkOl!7-9K)yy-VFplVP^KgRx3~z-ZAwG)3x-%}8B5Tao7hiKH}tDH`WHs>>TP z3P+;vPvP$WDDFHd&zNpuN2$a%&*#5GAso{5=zV0W-9MzWP?f*|hRu@U*@Nt2*zVLX zEi2L0?#*ya*=Zj3S!?Pvv#faD24Q5LF=tkuk;h(B(20RqW6ug|EEeYmKrI6nw%dHP zc2rccXVz3y*A!QJ+n(T73rfoLU{hqp$lUeV;Rj4v0-Q zs22^HJWZ>iPcr#l{{t|UiQe#zjCt`}S!>&94M^PBf{QZlI&ho`q-u(MiJ2)%ZG`u$ zcPSw1Ocu~HpZMs;Eu8CokxA;F^r-AK`;>!Xzp&Lq)eY9pcon9d>%}~eSUk5Mbih|? zGm7R;wElL%ti1hL!sAzZ&ZLvHYns+;8&I3?AZl|O@mZuz%x!6k5Z)k-4Y@w3UbQcT zz{7?XQx0uiOLWWr*v^)#HLlzdNrt07G0FcwS^m6i-`VI5b}5ctx#|HOP}H;{18Zi= zY3j@Oi&q+}UbEsAkA=YU8qf1`$9g$pW#};bFMS95pTx)R*lOBK*P~Jp0#AG`9`a{0 z6rlKy#%A-VBT*4p4Yx9d#Qfa8$DVD}`D&%hfY37k0DoPlkQh8|q*8_=^cu^3;p-!1 zjoRb=2dV_^FqaZ==7?pO8lU1_dRq;`wC zhLi8KO=se7jv`ye@Bj2A*=nStc&Cli;lmyRceYbRy$#^>sh!IVYPbby%cUbmD0(9j z(q&McCAZ_L9G9?t`{fpSo2ZG$HoeEiFZ#?i+b!C-HQF+)VD)@{%Uo4lkkxj)6J`>! zbn9amuYozJo;>oeAHuM94J?ncn)I0GYc)|uoX0sL6w$_6PSvYE#7e!z;zyc!TL4)} z)6UA@JUPBAbRsozIw1PtRo&HXF=vb|?d(>EOVPD3`7u8Zvi`{9Jvpb5M|*!qdNHiC zAYhqAa(qo3>bK%`{0`_%(C~R1C?akzaJ}nTFB@(;aNZ~lT@#=9{cHG<>CZhUZMDRO4k=ec-NRc$v z9BV#y(fIW(fDPDG_3+Oi(?@aHg3Zrpd~~;&xu^nyIL6(2ba#|1N91s0_|P_h?u|Yivs()}ekaU(bUm1|BHYa2SXjzECNjI={!D zE|AFhzq0^D@tI-5SVIgIjN8UNLzvaXnhq1?U#c;N@GIJ|E*t_t+QG^D@yK)PVubSapxab%Ia)D;NV>867En zg4zzpN*1*|xLDKRGcNNn6a?{D(RtDi8W9uF@-(OWE>4wW>5law zVQuP3%Y*<^DRiUc$5P|w!{1~#h zasO&72IU!qg4R#;gy&7B>%iTE!)aWbV=JvUudkTUDL1IcJU*GP+0xE-j?ic4{cPrU z1&&6)X(>pgI}d#)BTN!=fa>twlIEJ`up{R?*wQy{yL`I)eHoiPaPr)%Nr6CkavS5- zbP4RRUqXIlW%d%}fPNy#QwF6Pv9|jrkraFD8blyNefjf|?|6*$g0JSB!r5A0 zCJ%fiIGlo1+qBkQKwjKynQB-BTknkqUzsmk#A1E$)!@JRm6eLeQql>Y&R7~9zIoS z_rSAhCrWzuR5x-ch4X%L}`;Q_155-D&OLX z^9|i+O?Lm1mY8I^!Aj;UEC`U#+Ik+LHyo;addK^JhBe13E{imqJF0L<@0slf@`ac( z>y@enuDq(j9n?fmjdh5IfHtLKQ*CVPTSY>=d~v6uO*2q^Ff9>7sOEf0-C5-r=eI;< z4uDk`QyL8QjttD1f*-XrFR;Apj#k_jGV0)o#%}-8lvfq8ouadoq8G&q&pO{I7@#!R z%)H5S3lkmu9Yz3j88v&guyf-LnY;g_k0(|N0B_u+dHB5I|T~k;au3y{ye!9dBb*AlBG6~Ne@fl7_$`)Kz^dobD9MsGG@ceUZ+ zn1*Pf?M#DviY20>1nyF#vdmljCP1t8B_Ew9j?UFW_rkY=rf8wdZV~E>ciq6+$L$Qz zqA0?qr8uozmx_L%gmJcQ>akbqqKuC>-zr6bz#oHzMG&o$!5?=}M*^n7dkw#cdw! zubAXRZ7z@K>Dz*-6Zn}unY91nECREU7wCZm__z5CC1@R*LuR-#y$^+IS!*xYvt@B4U z__0L<&=aFz>;!jXlpN6BI)$bsQwIK1&8()768`CG`uGIe(rB|0yfgiqWcM4B$FnsC z#M(C;I*Vno^|%rkTH_fe*v2l1d z=4d`?8S_C)uf_#}?r4V2m#}<8Bbor0=ls1LEs)4f9tr& z^tCiI@$@&bPm0xb6mOU!?$oaCVc~YmFG9aaP3+v~2*lV?9cTU&eGRK*u#$QJQf2xt zweHB1-7L{8EKXWvpeUsXdR5TIRuAt6t1x~D#&jH+Z=_qy5qa;B@!}ySb1lByMEtK( zp0nAL1DIWG_Qp4Mp6u?v^1&gd%FL8O#;60J>I z+@Kv2-BB4+HA{0rw8fYKl-TzhW3}9~_b2G~wMK|}LFcWFe}iAgl$hhc#otz#=(W(%x4*PCm=Yv$FKDcT#67#cNe7J7EdlhYq^DSDxoq;yb zNh{60*_VVMs<8G)I2S0d+U}a5!l!;RE@d^V68WRRYG=#p=l!a7v{uPKRvL#^tBw9b zEo%c#AVEYBRqb&ue)F#zO{{RJ zFGB(*nTw7;hpVBN^^yRk(MWO)Jau_e1nz5UJk2GbAf5FXSx#3aFf-YiaUUI7@THF? zI7-6p0eu&GM#O`<_+SW5=hf(NlS(t3SBR**$<|RBx^>sB+%ntQVK z{3xUvFLRBhZ`zMlfP1u6J0r3!yI!EHxOJHEqyqwWPS>KfVL7H@J3H8RrHcQ@Ry8A@#PgBD!>Sndi^0_;+YRjb%wMs_XJ9!1^y5sL7HMExI`_gCqldOH_P-|nuER!Fju z&-3dy1bR7jFHc&mGHQWLsN zF1(0!5UXV8&}@4{^NL@U<<~(YXtWKGZIE(SxP^8zK%iqqvT29xCK1s@KY=5CspXuHDR`?IE z%g@7R>wPq69IbtFD7uX-An(#3K9D zYelGRBIaH1n}LAkexK~HGMcmSn+KO{iYw_`G3@TH_He9p6vN%L=T1(6gM4-yf63wp z^Ye3^&GHQkEZ%-1qKO8=MQ&DNjPx_=Z&UuXxxw%Mndbk`S07DMWu`O8<@aKbEZW~}(cn$%JYT7D!{QsBx8AXOqa{AMy-urVx&Z^f zS0xR@GV}&YQm>UE6gM}b9=)AbN>P9CVSf=O_> zR%&L3C9LJ3{l2@_{SjC!Z+umrdFG!3@~PJ>QLW$pS!0K{+6s%mb6A?W=o`7xD&jwC zC_mHFDKB1iTg$tpjE1!~u?9PXK^sYdsMO%O0aC2*|wXsCmkP6Y>rXt$uxH$1I$lLno z_f|Ty^6KRqMenUMhHXl5SN-lfWcH|`XTc>}xf9BPrB0xQ`O)_T59zK4*v#rU)3n{j zu?Soz6Bm!Uw)Q{Tarimf?7&&ueE*z9jAlYBPSbswdS|U4T#l|S=rAqkTuu}DR-=J# z{|?Wh4>DFxRNL?EG8ZZ>y`=(3;SS5F72u;FT*S!Z9zqZ^jcOV`m z9v=SQh_0hQnbktKla_K1l;599b2ON2O$R+_Bn14^i0b7}x0K!-V|0sUA<8(>O{3z7 z{zt8mbbIDOcdNm=cr$|mv*vi@XK+_N@o0i$v2>|Uq4A;I$UWX2W;kHi42NZxGMU6X zFWS?X$y(LZ*mTdS2@k}~sJYj~)NPjNnncCaEibU!#G3Q?FIq&CGO$_UtQG0~KJWmB zR#h3Jr|$UbvpUUw8{kf`ep}mk8OYw4Uc8(TYrAmzPnMm)!N|xCO1G-%fJD&aZA$d7 z;@Z6yAH)KN+haOhEq#V;83KekAqQE&&Kjrqou9dw>b!(1*b4UX{oI;aATwOZ|G<6S zc7;y6>DJb?o}R&3=jE&npKIz56^dmNVX#MJcgQxkw)D1KUEu7dy3`hM+^BbhqLYr-1=6TlJk^ithtl1 zvz8W_&c>{{ws=SJPBGQB6Jq&>`d)+cF;(nlcQq4rxizKZb=#}IuMgD|RalWSsblBC zdKh`bzNP{Ltj%yR?&%=KvMjbcf7hfGsvUOo_9QaB$zo<7(1Z+gR$#vO8-V0@w))06 zS>~z6&9$s7vjl*$J;7%EVtXHVj+FV^v7THKs%z>Nx~%^BS^N1m_YdjAZA$j>zyKw& zmQlz_ruc#Gv86*K-naad;_P5%J!S~Pil+=;LCN}HUdJ1xpFYHt0w%V<*eR!Fm{icbOR9VosF6fzOWl>1btDZ-8@S10=>$!$AAMCPySvFb|8V@e3~pFHAg3nHWM zz>$J!aR1c}$FUgHOktnr_Lx;Z$ad0le{HvP$5{;H1I4R_+JSvoHYocgP&_};;>S;c z3RE8P;CXy+T(~PsMYi;>yVfC2 zfXW0LhFy>OZtbF<&m3QWcCgjg8zeD1aBnqT+%aLS*A<6Dz8Ts3*(vGYm9~MGv9snI z1#J8Mk9p}HefRJ6Hm~g;?&282_}R-d8hk*xUCUIgcJR$qbA=x9UsKyNv!r}`{%3(p z3+irterdXmfYoty^CMW}NmsJTvsntr$+t^mk0{AxMaZdDd33ePBCahG=cm7i_x=bZ z*W2V)r%C0Xc+~A*g5u?%xhkwV@ZBp10ZO|GZ$$0HNTobQw3!X!j@>Nxcde$kLz|QL zQNs8@Rrn?tJ7n#u>@9i<)e?kDMjr5S||vccf>Z(fdVXK(nVi9wHgqLcRp`=ZxT zozVbKV%!P{Y2N+_32D5R7tGS)Gf#6bpXs_D4P&u3QZB42JAIZr z)~yVW?iR2?z9k(tVh7`Fx?iAc@;|exD8}}t&Nd^|dCPJItS~B0^S|BRQ2~0aio^mf z>MyPQd{FS^Q5~pMb%ObXx0KjOR~WMHk!2qg0>{7;2Cm;heD4-p->gvq=GOERV9Y~1 zakeGc5ewY4?pC>Wz-BoL9Ffrs5CyeuoIJAorTBw%M9VrS)xGvsA=cJn<+DC)dttsD9P82w!L1 zJQk;rmyV3?0;qo9)WPo0!|5w6sP_hIxdlRzUR)v%wniZ zHeRgK-ABbFTA=Fa@w!U(;8HtKjZ^Cke;t31B~?yzCHwCDUk3pS69cRAbPyaiQ9qv; zSOY(|qGURWQE6&WMrdW)!n0H5N z1>M1UBIV@dcxrd9wUk814=#VPLg3#bDl0|A$Vz?H<>_H3)XKh^8Oh|2 zne)I5)UKnU&xyYtM@W9O>8HWN;`3{AlI^8w%UU;s_8?@clR6Xr=Z0SEH~48eM6)ELv4*fm9~ zVy|!uw#08F>EhM&X|Le@z4Ccyaqmy8 z%IgTXDj{nh0<5NIjXDpc?wiJ9`Jok{G*VjzH){G6(G@qHowT-zQGvEIddYFcK*hu& zdWH`zb1~(?RR)DTt}7Lu^zeg zxaUMWU7MjlB;Qbgy+Fx|bO2kB1W;K8w{Q_f{#`{7ug%Yv3iz zK)T!TM$xb^HRfEiwLOiA^*Jsp3&YyUkjq0sEizQq2WX{w3~&!LsGYFZu^}GjS*XAd z4WA*(aQtIk(P|X=WNkEuQEqk}V?*w3-{(Fib!JzyMgL2lj#F1KpI*Q zAEv)@vm4BsNv@kDEd4cdd|Vb%?H_g4dTt%%we}ce+H1t zhW~O8pIv{;*nZxb+&8(JWe)2EgTrMNe!8rg^nP5(#6E9SBAVJveEv&UB(TU`j%h*Q zRabw%5Z;F$SUcoYiUBI?J%pDkyPG1dcmIU&ILfNeTc$0FbL&`D0T!eIH_vu!;e{7~ zEa8TmI}@J{+UKnn0F|D~dxi>QEFLA?Ei0URMOB@^6Z5ooB2~AJdrHk&MK=USD{I=y z>d>WW#R{VWM-iO=_7ShlYt4svs6}!61OR162q91$d=T6k=~w`@wGjtjOKM%Zz#F#H zW!xFh)8|-PSS8$zbmp|0?o&Z~UF9Nv5Aw+1G13Q+5X$c)JVKUlCM}G4Z0|gH59x;u zl#4ahsU7UNQIp@io_3&0e%Ig9uQz*WbT!S26>Dpv;kF(Bn=;e=h=>X;-M)KkH#Lue z=6l&f$>z$v5!OzF?06O8l!i6GWy=31!sMVd^R8oM3KRw^s@_)xwh_Gf@i^x zA55HTPm1)(TEPaJf2bnPA04o%>Cl1rKU3XbFe?Cxd$?~^=7KWn-2)G%jken9Ht{D2^L+V z>Ws+@0&8GH9w55o5%my(w#wyL`f9Vsx=Q@y`irVkyDb1_P+@|}5=dg2YqhGCWeU`c;>zFSt@(pGQbsN$V8s6iy!xr8g%&&Y8~t%@+o| z7lR%IK+22TylU6S)1jM-#`mky+tByJFaI*w>S@`-OPttItZViYG9JEUe)@ud#(t&~ z!EIk_Li?SemorO`W-Yl}-!}i-*R*NYQ>*A`+;~$<3}FL~Z9Eq&PZ+(e>Ahw#ktuIF zr!eq(IuntfJ}YJitIxkF*i`UIf3yX;-rIm!GbeM(c&=(#5n^_rcspM!;J#IPLffq2 zozM8>pt*d$n$;pN5H={d7{xs>@~K)aIaWahayDzjHSo1%hGEw|z42L=ZB)J;xWTxaRU z{A}hVD+M+fgZhX8;zamOA9T$GH$)!b8a%`Fy2t+BVl&G5~mFk@MfAE0-Hepm!vb2djwS|9MR2u?L=t2qu8!86e~6V^S; zf=w5%?48<#tv1ue3K_2t_A<6k_{vVA4om4TNbfVj`e)vdM(N&t&3u!Qb0(Xo(rMI8 zyWNzTYMiGW)`|l>@j={tq!XR z3pkx!Ik~UdxR{OTHR1joYlI59qp$FTZ?QyPRC_fc=pSjp9N27MGm$0oE*g z8uFVLY=+o;Hl0dRe@yB+$PMZ{#7$3(3p8;SY64#nNJdlY4YuBq+AiXA#(Z<4 z6Ncnq5lH^#IK9mwJZXC_xJyQU(RATGVNv0ljJ%RS)c_qyTLm{db3IB4LTwu^>~A+* zEMQ<-$JR`W$uxJ2jjL?V#w7!2Qmwy!?Dsfl1U;UbXca~U3QRsyy0GO}>&X9|1!$i% zW0stCn|)Phf6jP>{L}9UJt>n@u@rq}AS<-;PEZtGo7IDtrOw zZjo{28wDFI!FPFWjKx^Hm7|4k&x#w0rsL*cXU+F|vN8vASa z-F#{h$Z|%^l<-xF5lxtAbDd!{rWZrz`#m8~aP#XqA5U_E3vX0hux31uJ zAj1eeTIT0E+m>)$uBW;(po0X6?8|=v~?^UO8cAvoDXr8jVkljoNJO=qU(&imE zuf`Zv9h}yuw~-T(bQMmbc4Kw;=OlhG{K>rGZ8~{bw7|aJxbsFf)^oc*|1hymVO6(c za|m;H-bWj0OP_~m*Se6ZxjpQPWV|RywOgaw8mh#VU{~b}tog&^)6ZP*f|cgV#JGB8 zib!%x^&$GfPciOfAx>tEI-D>B`U1(ns4Zr+8e2q~^22K{Q9&sUycrV`Oj7-_`>mZkbrFNWtuU2CXWWl#7T_)*Z zeZK7CccSy&U8_~5flN_)>5Py`yN*y5219>0Kc9OK4%8_7-HDDhXCX+|&C+unqhvRP zIHDa+ARM^dyGhS7FyCrQe|dO>UT5N$e3hia*pZf*<-xfNji&meMdj)5Is>?F^;w%n zxE!ePo_GjuvXNiC_r3ivb3rQzkd0|SAW;@+G2Z1z^kxbI%Pnr4P)Fu;87pYqd6$G+ zOvOvaM?0dDl{sxSiQikU)vycDMM=d{op|LO4RXGZbfEs}Q7OG2XGb5b%C>G^C_z_g zi{Ty)`)6c{i%A5uJ zm0@AscJeG67h{^t^;*O_`NEG5v-(AeN_xlF9hK8%sDlZ6eiTJEWV=3b65A!y3`^0}*R;{ySH@Fpwi53X&XD)MsGaaT_MgNMJZW=pwlejQ=1acivpd4p?pyM%k=KxOf9|c!$rOwn->DSS2R&#&WCU zzWvaPV-SKumj@}h_&kh9`~c;UU*q_{@i^Lsa7=Z|To+ubzJNY=%8tPlE9`DRYtLMU z5ADEXn*JY6R~Z#Y)2tVV;O>w>aCe6Uf?II+0KtR12G`)h-QC@S1r~Q$oZzzf0*l;z zzjN-7ogXu^)7{l&PgQr<4b_%doRhc1*Php|pFTz>{cYcWQb(l3L0%i_&3#ShMK|sn z=(6IS9-l`)_ZgPFwX!XS#DazStRHU|00~X+v}Q;+Z(e@Zu>)IKwtr+uy1>CXKA(_Z zf1j%}?K{Rmo?jLQRVVcO(mz}PPRZ-@G+OOCS-f|T!F{@H!q1Np$xs!WOUt~vt~&e1 zPG5C<_4}x4_|BKWHl;`jT$55OR+71+6E;`|c8Ejx))O687m&gWLi%4qO(DH{Ft3}W`QGoj{l;fcMvzVeORo#y%I|UhE^sPh=nEq_kM82Z`N5RJ?~2ZT133aq z=%*g32N_&X#%3ZxRC4~^&isjggG}WqDLFpLx|FkH>?+*inpvc(gh4=U*tN9yklqn zR-7a@Uk!pf&ZWkm^8 zUWn#<$ok>Gk<#NiA=;oxRdu{2q@SXb)xv?wC(oO)A(R9Z1Jp6JM)iq|yD%P|IO4bT zTi%+kXmQ$pwR#c&)u056;dUG4eAd-OJhjZP(bCX72_P+U%bvD|Fp>B zM}Dg{MWDOsnq#cmgnb6d&YzuNUW1e&3su>AtD-F8Mo#(a>20A}GwIsl9aq5HRL`3B zx|hOtwND}8JK4AlmKL_uULLf*6`izy-s@tsX{d${yo*rrX&kvBzGK@}ZM{`zlxgwy znneIoiQIfT8BiDv$WhQde@c-!OoFKcu046nH*(r5dckClJcFj`=+Ex#E6LMlpOe47 z)hMd3rD`q=dYEiZADmE3_!o=?w+bDyp0VM-&#h#9FdgBAKbXm_ zhMhdJ?Y<4L{-I;#)I-_r)2Jx;i*JSP2=Wc%Df6_4(35ggsAjYo`&!~twG42gYa!_IBQCPcGFQ{v0}**uq!XxhzPZ zf6*vMM`NN#u1McPr4SKWgOEN~M!q-lL8A-(ih%ZO)0bn}0|FVP`|VO;$b56}Zro^T zb>ZSEDj;&Bgd`d37{+yg8I)0a7=#y;!l^IB0-V1jQ(Igk8&$3Yl}f~JtuPD;G&^NV zcecTu5N@u%9JnK-%-d!}#y(>EZ*^VEuUrpE8%BxxE+a=)Q+@!?bv=^N0rdK+gP8B( z03qyFlorN!zwyK9pGA5gPbg9e_hRCM+*>prGc|B!5-Y7oNv`_7!fpkat1A|htD!&* z3dx8BvXKo`+`(2iOY){UY-mbKCBxl$m7<>eCC*7Vr=-!xRI5yK@#@|CSd0zChEcV9 zucSLsDjR1hTwzT!-CR)B1L+BBZV{=98!{epOTPqZ>s|%JpD;x)E zWOO5|v}H6HBUITgVC*Lw}X2&yBt5o}yMd3VT&n=^|v|R%@KDo8d$sqLyAZ(M1 z?PF9ti16rn&POb^z00RCC4$%0wQzNJa7Fl1R<&Az6xt9wlH1fp&3!WQj*GVTbhr{Z z$}L*GI_trr4oLYEA*n|F8Igvh8Z_8GBsj=5sJ6OL*OWFg{I}zudtEw5UGJNJzV`N) zjI6Xl$7A70N~5e2u?}c}l-iLuASikL!;91w#F77Q>-)sMnwcz=O19M|{kNKNa zbiS~vVCnrO8uetk%I<6ZTX#_bW>rbh?I)7CV|UJawNN{pmOAmt{lGcS8?}G+N{&RM zZYf57b+VV{nGcT7@eh$%Wr+7H#rHh!CUFtkJ})_qT5qF9MFkidxuu^@P6Q2ukLl%m zo+};Cj@lbKf%nXWKOW!x*!_69n11IZheB;6)c0Hoq}V>LK+m_H@Oic@Ti^2fiBbpY{NQbse&MJFQ1iiV6Hf^qe<5 z)7aXmCV079i|aKu-l5B+Djo*8U3H`PE#?RZPb?g(%+j6T21eoF$dUU*yj~)y-^jY1 z0+QTa7^INv0H&!R_JLpfEmr=lz6UDK0k33mh{k#$x9-$Gflg0!6X+b2vYWU@*KV#2 zHUnh=iXr5u?%K&{ha+?yrJbR8IB)>LwB*o^4f5w5V4nY~ja@<=QFq%9xo(G$>ITpN zkxZM0=);x&9=W18?*2OOyl1Q+G_zxD5?fsDzx%C>y;N#w(~{f6IPFh8b%-j6!NmB% zPPu{9h{j5YD(cYS77H|5ijx-i9(gwfW*&!d*d`Z2K>&4N@#!PR5%!7*TpjC7j;TEc zg$Rb1H$1)xfPg-z2I0K`axU3B!|s*(@Rbz+Fdfd!6Rr*`D2H}?##lh!Zf#-I_m`Db zXTI=REqhf^PqJgTgVcIA61P8*z@YQ)Ncy_5eIthp!6HuT+;`kxGI|Qy(_X=)*~406 zKq?MtS;FDhcJHOu<*26qUjdWz@oC{(fM9#GW(hZgoPNQTBRtI(_-7n=P2W40#S{x>ov1`S{{cWP{M)qb`i(;)$~kae-<_c(=E!7zmZ z9?|(-5uZ^Jv8<$Or5;cEb3a*j7EDq*iSTZ_Jo+k=8Q2acKMqs?6N^?K7<#|&!3~t@ z64lE}kDm~|UCrk3O#yv@op1ed`7!T5@jCJR<`dzSr#P>wBqVlvbSv{X+FgH2{9$)O zQD-HjyqCTJJTXSYRHiG#HNPlDb<<4hEBdS z@(3D_jdOPw)*0V#KN2&-S~()wFh@>H)0$qihNx`(;{wR3qVSxMDpTKFjP{g@Sfn4#V1=h+$f-Eo{?&xL@fR{t<#Gp{DfmAIp@GYL zcYHvKQDr!BvG;z5$EpZH!+>`(P%I;~Ysc})KQ88o@|8R*G zSt5p8xJkIi_8(mUTTcTHbc6Rva%USw2f0LnFP_u3db#_$@%y^D`(HZqT3AP2%vFjv z?)MLDk!u$&+@~M0=Tb>WJa7IOEjVN6$NQT8Eh|tV`E$w9HQl>wv8y$@FGx1}{F6i4 zkp$xUrP4Cf^KmmU_$ZvnnU$gA(8FnFE?t7M+vOzlA-L@+PruWlVPJHe=+>}n@$C5~ zz+TM|doN27O6URIDrxi|S>B@lOGM{Jtm~~3P)FTL*0{+a5B3mq={vrhed}p@n&%L7 z;@~pQtU2vCThe+%3q4ZTzN^_m&u!r1^!oMce{u12)9Z1e$#+eUW zrJ%-&Igyt1=DIcRw}Xa~1W}KEmjz*f?s~z0y24qZr=(l4-G^kj-~VzO&;-M%Er=Y{ zUW(?H5Q7?u@EKMS7w}NNSC|#!7+{}bm}IU6oehU%&+`Z%uVVeRjqhafWj|V_m576O zNV!A98jbb#49fzMDSVE<_7!n>L_&H+&xcaxIVf|?ew|V1yY|7CoGwgWmv0d(>_H~K zb}DsNwcJkQTO%9%#e2)Z0w^S`_PLZ&VH&_i0RXDSXwdABHiz9&rTubt$JBbeT&KbB z`D=s$$thjSZ4=hcNlHX*AjK5o+1wur6-z@bpZ9qW3YO;jMhLzao}F6F{R`Y!4Pitn zWK+LXucBz#_=TE!^DxBhuJhVa9h;qHm6Vdq4#;=Oxc$ZB!c+lURIgz~PydBTrq1YX zJj4@8K%jK((wN~Gw+kWGloA%jt6f=vqysh{;eLCUKb1$GK=M@7Pg!sS{>$P zV!odCI&04;QD~m3eK5pFgx~D9P(?KZh}m!>$_OAdbdW~Hb@Yg}`HNhSKh&kvrRZ|@ zk$KRl#n1!(5XjgiTIF77W<@ZZVjg76*?K4STi;a((+?kUgV?!_;^UeXTF*>=Vi&-k~4wllZk4?SzKtgP^Oo zp3AhYHKMRg%wO(+P$b;}skU_X&9z7&HMUAW@cYdt>{ZdPP*sh?oWE<`%zO3g=WGs# zL~wtTeiIh4W_(cyVnc;Ol1pRE$Co)ly|W7>9Iw*+(dhi^{of|PMUArkT?J9Av_V); z8Wxm4^3qoc8Xh4vbfoE>!OuFXk5A)o)$MNJl}HFIS(L}3{)^JbYvXt7xx2{s4@R*%9l>iN zOS9(1n6{OssG5D5vek>%YRZ;l+10Cw#II0fxUm_^mZRPMqMv4=)g7s`&~|a%(+Dvf zM3BgU4(DqnFVkamZ@k^2fQXH%o$9KWCfdFpzwSC+NA&d$5{=v=z9;bQd3N<@Pd=66 zMQVNQ=`*Nw@!=;0z-CE9LG&=xAlvH+T_y*#`7jcJfbLT(tYaV~t<7{PP28qt~$1EelVl z_HQvw{?e`Sh=9Z~OTy~oJJc$si_3#?8Uzei;RUDBrQSnXP)RK5;bfi!TX^y8VM?ng zHg!k_r@Y9>{V^rj-Rs8KRUo49q-vK$7cewqrlhEVXz)|*esE5l(F+W!OABa9fdGKK zZ|2f*(Oa0PENBq-vT1D(0dUe*N?^=q0eBvi4b*1?+PO0WF>i-MDL7e_;kD8G?I_ck zPctw)wl_W93g-KkvB;E`Rxf=`(<-MuL!K16{s?bf<9j+W=PSmfq zS~TaYBC619ksGvi6G*%;2HNUjRxQ3T%x$=KzVV2%EJgFO9sAF(Ynr$GX6TNz_D)P& z>VwA9P%~Ebg`Yw=!mdh?$FV8fNExoUVCC9s!S+O;Kzt` zySJ70d48VOf|6Q}s2SU9pPz>CcyyJz`0;l<2N;`IsENc2GsdhwW_}d=&WU)0ZK^np zyC0rWFMYM~nZ&^?efq7!Q0H@79lLyTd^}yIAIk6xrV)BqfHNWBpPE4)GHhr1=3V=o zyMkd&ol(K=v{m|HLRxWdCQbeI`k&goz$&*40;kC3zLdo4x7*j3t`F(-Y%JMg%i&vB zvdR8v4!GAh1Mz+`d$g`S&vsyH6<(0F0-tlxz#dMeawSPWcPOt68C!UT6m@BR3%7jt@YT+GN0)qbK*-~P9Y;bZtfBC{hFmmm1=U=CuL7Ao6sBu5VG=7*>1HZ zU%@C8$@<^zrxaLtkxj)%ld5Rk4FHJKs`GXC;Yc%RncZCv%_uy}8bplJQ#a0|*0HUI zTIxVZ$p5VV)obYhWfE#Y`kqp)R$am_k4IHUpwWi|O4)@i6Y6vnWX*xD8vZgTQm612ID3D;~~dkai|(nF-cli}1aU@IL^MG94mE$y@HFR1I{KW7%iczWF&V5ZE}uu>|Rkw9snF)9W$Z6U|ynC_FhCJ>-9ieejsbUfwc(&~$Ap ziPbMA67VFiq)qW)+b25|HiC3kFqElF(|-VCSj8j@qtO&8l>m#C0q>PpB#g3QMJ?!3 z-MlhtHVIjHwZ&WkK|h%BWipKSh~d-*q{so=(j$wt0RxJxE`T64OHndSg$3_cK!1jh ztf!V+Hu4D$t!%ed09B@ob+~d zYjPv|WI}?M!R56;C{cb%9;B^gun6%>&+o^$!4O;hW2eo?(Ja1v9VWY_ z)QgkKzc4o_RHu{=*(SosST$TC#ped8)~+VB`63|dgh_}Y;3xgbhND0_SlS#CVN^FE z_-cN6`KxT+PFOyPYC$EHOz<2VkWyN#H$oc-R*8a05b+TQIm34w(TWJ9%%^FQb z@41q5qoasfbN5i;2n$O0N;e4rwXW9VH}X!33jjxVIMBjFPoAqC4_ziztB+zPbg>+^ z&5T|7!Mb&KAY1?`akkPNtOH)IiWSb>6Q>pKDqyYaQHf`H%YNMf((yQ)-AkNt?|! zjO-9TbDliZEoH+k9ojk3%pz`88bbwucK5V6e0pJQQ z3x><(y6EjCWSv&D-gn$!OUK%q=DgAlrD&&%gRcvFm3aO9`|6EsLT0HQ6WO3uJ7C)$ zd+%k5ZNXgZV=q#(HlSbNEcY!3b%HAK>Ckwqu34Z_2Yr(FqNQL2MJ!!Z{HP=6G5T4I zrL6j1V)o`={>RgQ@sey~E0R5q7@CT_Z;>s0ZwShZXD($d2*9`8Z#nB+D;z_Go?q(L z4{Vb^7#{h|wgi`npV;uRaVs7Zt=^3{Cu`KkcW^WB&%!BfY+97+Y_U@c=l>l?f3VS6 z^(Is7`-9hJV?dCYwUsjRCRQ}`66Q+=yl|gd)#o3DDZjEjz+~_E=So%&&-Z{I??(SB zIM7)hraS1YVvpnK>QU{aSjj-NJy^~(xj1SBSr)R{qQUPzeO z&L#cu318D7->{bw9wBMVbyzw$)#jgCV0UGt?i;(;;?tigMcYZk8642li_1fWs|Do+ zHu+)%IwsLzHD--{atfl=gswv%P&^{t^X*Ju@$s2KX�hxvAJJzfV%9w3r%Ah!9qv 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%0DN0&rY%IA5(1tKI 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + nova-compute + + VMtenant-X + + OVS + + physical host + unicast filtering + + + + eth + + + + + + + dst addr + + src addr + data + + + tenant-Y + + mac addr + + + ryu-openflow-controller + + + tenant-X + + mac addr + + VMtenant-X + + VMtenant-Y + drop + X:block + + + dst addr + + src addr + data + pass + + + + + + forward + forward + + diff --git a/doc/source/images/logical-view.png b/doc/source/images/logical-view.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a87bbf9827c88de34601509c5f484ce41adce8 GIT binary patch literal 64712 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 literal 0 HcmV?d00001 diff --git a/doc/source/images/logical-view.svg b/doc/source/images/logical-view.svg new file mode 100644 index 00000000..6a6a97a2 --- /dev/null +++ b/doc/source/images/logical-view.svg @@ -0,0 +1,623 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + VM + + VM + + VM + ... + + + Tenant-X + + VM + + VM + + VM + ... + + + Tenant-Y + ... + + + gateway + + + public internet + Logical network view + + L2-levelsegregation + + + + gateway + + dhcp server + + + + + gateway + + dhcp server + NAT + NAT + + diff --git a/doc/source/images/mac-learning.png b/doc/source/images/mac-learning.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd0f7b3beed6d2f46eafa6985bdd146a0f95bcd GIT binary patch literal 95849 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + ryu-openflow-controller + + + nova-compute + + VMtenant-X + + OVS + + physical host + associates mac addressto network id of OVS port + + + + eth + + + + send packet + + + + + dst addr + + src addr + data + + packet in event + + tenant-X + + mac addr + + tenant-Y + + mac addr + + associatemac address tonetwork id + + diff --git a/doc/source/images/minimul-setup.png b/doc/source/images/minimul-setup.png new file mode 100644 index 0000000000000000000000000000000000000000..67f52f78bc4fd547b7340b79b11959fc1d6980d5 GIT binary patch literal 123002 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 Dv&ICQ literal 0 HcmV?d00001 diff --git a/doc/source/images/minimul-setup.svg b/doc/source/images/minimul-setup.svg new file mode 100644 index 00000000..21319546 --- /dev/null +++ b/doc/source/images/minimul-setup.svg @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + nova-compute + + + All-in-One setup + + + + + eth + + + + + OVS + + + + + quantum_ovs_agent + + openflow + + nova-api + + nova-scheduler + + + quantum-server + + + nova-... + + + nova-network + + SNAT + + + + gw-xxx + + gw-yyy + + + + + + gateway + + public internet + physical host + + VMtenant-X + ... + + VMtenant-Y + + VMtenant-... + + + + ryu-openflow-controller + + + SNAT + + diff --git a/doc/source/images/network-creation.png b/doc/source/images/network-creation.png new file mode 100644 index 0000000000000000000000000000000000000000..d2fe033f0ad1bbd99ec7132f4395b2c9a666850e GIT binary patch literal 44004 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 z zHI={@R^{o@LOep}fQ7;&v0L~G$wgb}JkgTU)I3dEkk(!`bIKn&3?8ZQPNzKT*K?0c zp2Ed=^n7@fF(!#9fG21T%d9qinDdyd->nO5l#-2vv*UUGQbUwIHZU%TeqjHho?s28}Peo!U>T+>52)INNQAZq~aAj?<9G3`@(p$`#PJ5 zFjX_)^r(qPuDKTN4C~7K6y8yDu7Eh3&khp-4P#9bOmJTVd;`_>^-^$@0Fpgpvdv9G zZS`?DwTFA4O0$rU+nTPj3|WK-cd_3mFK4XTjE#)-vJ15fFOlv@PWYAGWK+}4jjK@^ z{21sefjfylaaQcO_pTGop%}idkz^u31*s|R7G89k?P_Z^m=EwN!(AO3!CN4>c&SYJ zyA&6J4-?AnqYcmw1Sj1*^}w4HRg|Q4${VbnTk2hrHS*y4!!0)#trEYGDLQ+u*F%EJOudaT+>@w@-M8A2~dwV*u>6We6ZL^D$j@g7>f;Y5Y2xJ4s zF)ft8UVS=SkoVidmSNx^W}+s=J=#>XCmmxaS#IW_uz3N`26HyxS}&<6Jvu<`vwd;x zRFWOPGkl00yy}ijLu%>dKo&o(t{C#DOg5EcNCM8#obqRAJ@mkxA^ojr5y!j9fL!PH z1@VvXYmZlkJ3siAqej`~oqf#9C2+*yeFMf?gQXQU*#xi^EgZ+?{q$D_Gd}~l1GTS$ zTG8Cp#-gcG9a5dZ;JcvfMLPLCH%O3;zr}`HXA<(`q6NaRjNx=Ieu7B^4H4aUK4DZ? zfv~7ohCQRjo{iWpeTGNm4{#(uNPua6g0=o6iVY6raXc4EWxA4IG$X2K$!e8qsT2b` z09(6mxq92(kQhXi@eY(BL+|?1tp!4Y16x-l-);w}I{LrgSneYbU+EK6h(exH%_VV~ z?g!t^NFN9+%IH5vzBRTnW@ETy3Lq6&tLp_DFeAd|A4-y z?SIrfMSWqE)H}(kJUNe~ugaV1s%u5R5HVohU%A2>=*q|%3_K51MU}E=KMkX>0&b*HvYDuPH4(uV)AMCFP)Zm0p z9N`=Ymbu$G>r>BX&b}U0rC#LFkA8;8OdD)!VnY5f_5%%Le*K%63=VX6+#k_4Y-xj@ zi;B`@v+<&;jjfR2l+S_)Aqf%-tn^_1W`~e###Lbg`l#(#f|gJP!-KM7p#685xM;_M zK9^6W7P8<~hD9s&R-@v;b4NRW(Y^g&Wr*68Ri*UrcLsDFiGcfWd;1;FXB$shRQ?d0 z_b7ZheY?m=H1!suy{;BzA`r2@hg)5`DV#cxuDg4CPshuyeB-n@FP-YS%3Hjw^!83b z(NW@YEdHS?+gM)(7DXJ(y$0~oA+1ZoVa?@qXE1W%+isp2eBWiu4Vjf*kOaN2Lng~T0x1#Uu3*6fjow*0{ zJf7+FZHj!m=S;_$$-4hbbM87LeWP*g!~Lzl$k1Dd0w#s|H}RYDeEfO}eO#{OW~K#! zqhEtN7TdBp_Hc&A-!q#uyUkkj@&G&PMMmKan8xCi3q4%Ap$^^ZMU?7Kf;gkK@J1>M znjCv6!h}QPBt#?;R2yUXtoz9z4|t&?EUSc`C|zMX>wJ@PnSh|Z80~C8ZU38<BOiFX_%Bh2)z%(Cthp6~?SLqiocU2uE-0#YYso&{MEq`An zJstLmLj0{S)aiW^BGF`PIlL9SXr(XnH<7>07lb%Elr6?Io$a7dI(5IYrUHM^*(K_Q zAF2GY+P9e>cD4C4DBBoM7VJhEd#3!=-lL`)CwBZxS5&T;+M>IDxbx8~T$SQ@6D@c`r4%~=F|o?55^ZcS$T24Md-&FB3>0-JLT+(SVfeEGfnyWgP!D#4DjP&`INakI^Ox<* zfiT!kz;?%5r*gO-J^aa72U5!Sl@xL8kn*WZO^AGwWse?@IFNzwYOiNHm<&Ru`^kQmD<;k{S$+NPbErN-Z45$RVNy!2Z6K z`?*_6CPi-zS``EB!iZv9)k$h?t^>JNs<4BZK_EMDUa)@~!Q%Od z)Iw8QKnAeOeIxcva`thilBd~+S~xd8rLf1~@LdLf#On`L8hVn0D_GpE&q1gICSUY% zDwjwc#h1)8&6(1WcrU2`uJ6{N>S`}SUEv!Sf}&}vl{;+rsB(3g53Q3N%qxz2RDi3n z?!|zZBfQ42%!6XGSPn!=&LS)I%k}U&;2-XHvSLBaUv+2+3mMrjLRQQv*FVT+u3?11 zx|Q=%9W8*^>x^DhJ*cX5!vUk?kFs>o;9cL^^5zZejn~%Eyof0{Q@UuFG3sW!_va#Z6KvRu>x7GP-pZm>NW}fFEk`jt}Jp# zkUbj}$0|Ci1TLRO!LOUiyA}IP$uFY;E2S6A#MDdb!o^u0=1ZChU~+U?d(vk`6$milK zRiv>7(Djp2>aXtGSOuKSKev0`pGH&Wot?P1_gfFj%G`IpvcGo?8M1u%MS&Dl)hmJP zYi@@TYbvxl!i~`9)Su}B=D#5?KSOP&pRmSmY1=mgj=jV?F9t3v}Y~E}CDCn2FEJ;%0pzk!pt^wHZi+6G`x(alCXA`BU z=IealFE%_y_t!HR3s4Yx6-ZmKE8M|M-NsHaPBQUJZH$VD5}Rfnb8U_(Sr&;Fp^b{X z7Zl+P0DOWw!$NteV}+RDsZU~sq2?R`&0yx`e)w!uLv)*Z`og}_pQZ_w^>qa3?LR&=0|BJY z?wLD3_Z%#8%Cgri1x-kkEH@KVL3mWBaZ@WMdF%cqWA>sA{Fh7ur(L1pxTUr%s^21U z;y$>;G2B~%=gPLq0CuncO$UYTWnkGL_B=|uM@fT-Jc#SaaRn0A0uhe$XCUos7056b z`BEOOV~Rt?DNod7$4TIvVW5P-np`rwKx6IcqW6n)h4KlQfrEK)^LsOMgktzrV#r4A zfx{A#(`Y=SwF2zqPJ3%YY_!zM^Y8)t)lL(gkPdTgsSkZ0hs*Soc7dlO>H~8JERf@7 z?R7|!tf*kbF<$wy#ob3V*qT|Q4SZeoAuD>ExcmJ%2)lXr21Fk8^(W;A?jjjrb@a}WmDZqQqBeg^rl5|3c2N@>3)92Jq?B^NRv?|9QE55?DRHp=*I2645*vm^PiLR%(UlZ z!7n$QZ=c4b^#Wt{dsgyhe571<92fWtY#PUWb^Fz2dyV}G&NoysqN{k;JnmZPqoz$ouT z2{+q1#Cjv5CbGOIdsZHT9ydtHOsCwEx^Z+@@>S;!NOT8cYSp$?0C;mRZ2@Dhz@VwlGc z$}47|^RgOz9a8X10kBN)?=;vl+4T76i>0ena+cdyF!iHYkE1myIE)R?uHy?RC2H-v z?8?;M?#L}UNJ@5JUd%Oli#0n@+Y7Mw+_Q^&myXiH-WF54Kz3uw_2AG=^TKI-vxsiD& z?Ea4GPkH~>8?<<_n)}S{S!%z`ne5l8=X<__eGWJG)9BE=*XPY+O=wI z<#;p?wnP~^C*jakf8$)?*wcRAq28}~tN#A*S&iDWXxD!(F^f3{r@1fkR&;tUa8h(_ z6gMcqo&HAjbnSq=3;!?MtKZfC40v%YzEglyIJQWttD{Io+qi?7>)YywmD>up*#$=} zU1q=j-2(mCW&S#eX|FbMaq%*W946>G4?Dgx@gvHnfJA&^u}UC=*7F5Kyz}m9c;R$| zO*en_!@|=?YnMxXo)#+l-@oZRNSixCbM>Zp?M>g8IqGX#OT}A}bfrNmG)ccIc1POEj%;iC+|-3Sp+2a8wC_gOw>am5I>Il?F&es_!ap(;B^R~3#{XbO=Ll)A7?1&KIobERY$hU?%h%$ zeThrxF~lxE(e^ZhZUEaSrr7OWPJNshNx$#}H-gs~oLY9>QgEjgpWko&C%iwvrqkqf z-=XX*H}}EypSKuk$2)vSX$MX67$?WFiYv@{wc#h8#yIhN-|N#OhEy6>X$CdmPtJ6e zNE|hyJ#FAk<_gf6J=Hf93|@t&cR^}^1K03!QmRARJTBicMj$Pze+766mzEFrAh==UZ%Q>}%`wrq>}=9marH%lbTwshYN%5?TZ$%mQ__-%%00T)SS^_uKaxKNm-_i5{JuseUE?na@kO{oV(ftKNlGj8;D zQI`@mz7ll+A^=rOPY8MpB`~5IeQ!yD6ldv7$p6Ga{D}iU{DqCBsl&D5mw=Hf)V~(u zHcoJ{`O7rMoZh!O1^=~t{MP~otN-gvPZGSS$B}3qZj#fU;ts4my#hi3`s zMqY!R|C#gx3MJ!n*4=aaZ(RkP9AlNztf?^ON|gAreJv+mSvr5tAwVAmF+2H5}p`g%zxSX;olLFAzPtnvO*^ zpBo-Ug%nj6@B-zquFse*j9e1V5_b9t7P;879R$bb`HqFNu2 zu;%sW0r97K3a}oTNn>?=TEgY$IyqyU+UNR@-mZ#&DUG-Rj-x4W+tDQ#{ItSyjsP{? znCDc?l)R6?^bSg^yt;3%9lb7p_;vf=q6#JFtGzv}k{@Y85!XWO&fWSf9pTEGf zSgvwpassOxU)kQRmb8zswPB}-zh5Y@!Hw{h!!EJ9{eNpIs_+*0FjiDUstXN}j$iP# z{n{}?twast{kIW6%_m7LIQ47O_64qk{;vrSVT5DyxOU1EmVEt$SoOwdNAjc>&V92#72UW}7jogFlZCnS#EqVN~=2 zY}1Q1o^IKbSoVJr&0Bk7WH!qz%^vd&F3+7bW6vE!t;sTcltH>VEq*pjiyitSptpNh z3t&(>*V!cXZxaKpC{YkKcA-@h8>4&&lD%e0=aqpDAkt3%K9U<~#@T=D!+ruArfX$S z?;E)b4A%En!D1*(zEr2BHA#t$Zi?XDC35M@1=ex6<&RSsph4D zHJo)zY_b0z`fVQs>b5(7=_1 z#x+v4zM`N*!9(5eo@MtF%^yU+&uX|7e0Al;az2M7B( zdrx%ltQ?01YxLQUnJtGKnU%;UH<@YbEex{Ge0_Pjx_+H)ekGl2ao+udlGQUpE@smH z?Z>j_A4NwEch+{clK+}J=!|6y9UV^<^pIwrl-%t74r$*`9o;-USUrWBCDFnwgL_E>YcttyR*zi$Te^##IuE8NGGN`6m3g110Qh9Nf< zJvlm4)EJKQ%5LTk-PE7dI&-7AuV$ArH5=0R3VR}trYA`NsfO4OvIz;ZSuS0(9&%55 z(IPp#)q5U|Yw?f8-8%E1u=BC~LewoT#(wj;?uW)<#yl1Au=7sHJ zM?LT7YuC`e+nzsp<2sm&M9K2=OS>+rAI#eNZ@vXRsVxybHCI6f?;Kw z(W*x0J9+#?u7;D_qaFM3kRrwpyR1gWltiQ6lQjj)?$0k%v#4?@;*(3}bQ04*e(#3d zpnu3JF2{>Tik70K*|tUJC8om8f%&tKRkjiAug7@hzrRvSI~Zf*mu!?eUk^_Uie-35 z5u*BBPV}NiLxA+;N{Ta+A%l%Z*ta|fr!^fL>2T{!kp&8T$WZbepr|y5a#tTF(;&>Ban4QWg3z{<47i7q! zEn490gg29-pw?W6wBGHXKSn(0k@~3hKNq3}kArLRtmS36md0-7)=Kqd07WSgM-gjg zCpW>%5-I8GN=di9l2&4uguM%^^fkodV%B_*Qoh_{_W_!+CJ4H50F{g?E6X!WJLsoMJJ{#H7Iz)LZ!z{Y z4sgi5i58r==zx@rTNPeN*2J;MAZdfdAF}#gx7@HLjrSEy);PS>?Auk4IkH^Q_@`yo zcyloi6tDv!`=icMmyyZ0_C)~NclpFaVBZ6@L^xl#zTFb$l&%Y zndl%!Ta6R6^*iv)X3z~ zy+3{axvY@tK|MpezB7!UpwxDC%+C|Kk}>nYU#49M)pKnua&7!ZaM(pG3@$LrrkX zMx{ux;u)$jMw?2IjMqwHs~=;kPX#;(UN^8Pfth7eFep%Qhs$XabBAO0KE4CksWtf_ z3RAz;@R7P1@`}eoo2hQJNIx1)5Tpf9fm#!+WnYjxt4at5xcM=c8x$tOAVap_K6DS! z$&X<{^E4Yn=|8I^ay*|Vy?`OuI~=m+XYpFb^;h)lC;9)@QKKwnk)Ht?SsQsu^FIq$J6~{0 z$yyzXe-LF6u5*d!bHifk2_UFs@)Ycd;rsL}KmulAH6 z9icMAQ_$^;4QY1`4<#MFn>H7>H-$YFr4o)J0SaAT>Stc(wc(Pq5}yOhp1OKV(g zyiN&cf9+-F@}{jWso587y2+ZRF#q0f<0#eZ%Wtir=CyUdN~Cd=9d>I7u^NOR8`_2!-V&W{3OC z+KxF7U#y>H7hvT8rJToyE?a^GefG(#nYjWL!xQ%uqP(ht4<@^_bZb9(zY9ElzSSVk zBVSjUQ(jvoY%DiHKJNqQ_oqS3Bxm&tbo&2F@q6kkKcRLi7|WX6GNO+VdO3D z_;0j1Y?!DOALwtzv_Aucf>43NN2d1QtmPcY0P@q)2z$V0$f!7bWQM4f0Nx?DgJ%+&*1$UNWcT^c5&zsqX-p;SNk&d11 z%}!gS_*ciVu1Hhb3j`r@)~w{u_~Ere0d^-|o_<{-vQVA@o-zwbDcH6yU;Q{H0FX*+ zvvp!IT?;?$3OD|G>{ogP89DUln{A35H>!;KIGs*!mVbILw(@zTL%?@_vhpT6`R&=j z?8+Vk+w57d%nEOXz{d+sBAAELY61}X*L=Uh!U%)DUvfMtw5)D+Q*@M?vQj#d^Nag? zpUheWd$M$zVUS^@jOC=Qer%)1jGxtm(EdsB+w+P*!>d+3GY^r32fQ;^eXPPH_xp%8 z)q(YKi>pr^NzF-`jv|-dd=2;#q!GKd)WBEi6L}06D`~1&rfRIJr4@$Q?|RP~>L*WO z?aTxh%j-C=lah;Nf9$(^53#bOUVF;Uj>@v3sM^^n_r^Xf4dawD`X6Rhl{C_dodM5JTK?& zJ0a!4xQkm%-1-Q8^~IE(oI^!lhk9@c@Fg3mSPd=$5WwsCd|jAo5B|O|$cJ(sj}HX! zdHqsQ4yHG&BcG3PtV@+e%x*17&TwQxG6MNhScn`xml44mB&u=8pTmyQJq44&w?5#_ zg&u*@kCFt_5Fk~ET;Brk_h_KLUqJbi|7f*!It(eX`$;th=lQ-t2U_JgK@`-))cP3q zfdM&Isn!h#&%cGQT;aQ%10ct! zgpH{O-@xBi7R4?fFwzhjAsf!y2?0p_c`f8)!ULQixTPVe6KFyV`QymSy9``(kLwul z6eBbt3L+z;+>?dvdvd!4zW|dW{++Ey8fzb4$vcrs^7{8RnTY|e zudV9?eq`Xh4Gxz{XK(-_hY!L?Rc+es0F>%xEu42A0IvJ%JR}m(=9CRpQ0@1=t;U*Y z8$v)|?en1f6xRxGxB&&=-`}*P&}qw~TA5{Avyg_T=s4R<(zyc+G>@%ExZw7U+{{gv z53$fW4`UBRxy6QG;Cc<+J3F<4{D;z^D67jhZ0=ge3D;(;HB3zMhD*X%x75-H9G!#y4o<%joLAk+$?gpDGZKKE9K6zNZsi%PV?EkO; zGv`Nz3_7vP6czf`lQP@Y_mCPBug7i0QkuT0F}tg$2u8#Q+~?95d_vWueA^mR z?hKm}!H2>{vc4nqktft>!5=bfms^cxSD@_A}z2i#ooeBf+IzA@yfB zY-Y0FENx`OoM7mAIBTu>!Io~?L_M_RasGAR?6mFKXQ|GMqmv)&t=lNx=(>B5>#o6s z4Hp$REB+8^Tx3yBd)C>`z!n;BHoO5VP!ztg$n1Ar`L`Genfxh|N!}nD^Y&$neW%jg8Gt&$O2Y3{qMynHK?`6FAvc^-!fJtROyf!4L} z-@d9*@`^$aaBD+-nl1toLQ(6sd8Q=1HA+4kOm%p>{k4Mr3FM&X@pWHO@*g){aFOz` z;S6D(*vOEE0`})uk|@)`v5dZ4XVfZ_4ldOVsd7*uZPEYj8^w2fb@F~2X4cTHGJ zW$4?FmT6obITDWf?MB%~3C^rY@c4ELwvz>!$hS}rrey>a9dVW7x2~WYMYS$1fwA_P z*nL9;<+9-oc=($6&LicYDZj^K2mv1F7+t)by!e1fCVPwTg6oYI8&mdJ6J8va!{n^> zB4>goMT5s#3>YsGn;ADfeK$Z1*od~fDZ^X|=SxS#-wWn<)2y6tp?*^WvFnod#u~1G zNs8rE#deAWt7}ryU=7x0+ZJD3WCVmZ%exq`TCzE2ak{DIbzx6n8hTRv>fNaLw&9Ht z;%&pOLU`l$fs}fN^WpkQG0;ls_41|-qj4ckh*cCtxyL6>oyo^KIcw`Z3_1ONyHwid zyg6F*YfYQUbo#E~C0xLA%;zVr&&_1P*J1$vO7nv&_VrXmK}x%x;b>nxB0S_|GM0yj zwV1)j4;=FTg&&+P9ypz_WEXKx>Eds}D5a;tsb9lSGaW_0r&GI0y zEcZ{+BSY5si6^iJ^E8fT!F=`2yHr=DopEwmAFmyPYboV-b+5}H(_UlV?dXI=nJ+hb zf3p>P2)k)&Vbgrz=d1PdEEupI31p8u(|`|$j!f*1?VX1gBHN}7v`db1OTuwDh+^&) zTowC7QAVq$1MJNH)Luq|+pNX`4QKryH=mKiP~rp^Yf*SshvCNY9z>vP-2Q0C#=l^g zfz8_nC%`0VMzUf1j%&lnmUx;Z3tO(-p8oj)EoDQI+S|)i_K0|FQ3r{wblL?!f8W%Y z)l9D2Si%OA&iIj|DB(eOim%gnk)604b~hwhvbxQLI%6Y8%?hQfLkqv^yi{~!S(31^ z5;wuVDYwhb2s?H$Ot|1K0TR1y_yHmPOlQwjkMFa4aMp*y2W-Zo*o{yEoqLbRv$kh+ zIJ!Dn@K@L?w%Pe4uP5!bx5ErWlWmo@4^}cq z{i+C}wkKcgELCAmIAKUnP|YVNRg){eyBUJG=0YzUOJ=U>=D9G{ zT*J@jcAywi`)m)Y>FxS)rVcwDT`Mm%J-=JYLWT-JgeX)BSL?M|rhJQx+{fmvMzvDn7<{0mbw*=O1c)P$)S9?w$xh=5DF{q8ZmGoH zvJ)Kc4EuF&yLvQ+YNC1mJ6T`j#RU8D6d9$xy6dUnDwx08MIIQAVK@=Bd(hjDDk*wc zVCJX!wMLL}GNPqiQm~Wn;o(VfeKu#;5{by0=i{cTf1cl#sh&nbHmC0nlH5NB;QDV~ zu1R8bS7t$vdb0Tod-cd}G*qD0tK-0b%T=$iCrAhDmE(*@|7S^knD*7T)t<9eXqI%o z`VrSmifJZ#QRlJ}+>ylpFHx|(ZIG;|?X)cmtV?fSrG` zZLE!a{}PqQK1?pJq5c-{dwv?hlR5j3laHi?DLc5CN54R~IO!bqH0Ey8r=y1BI;Gbx zoSBKt@kXeXS8%bFpF!&st?pFE1F;uxKhaQe3jcJ=tm~Zs#~oukG4QV0>*d z%EWE_Eh5)d)(jgDhsRWG#bN__au{ws&3M`d+cs4{b65A{zq8es`yYTjeku9u`FcV1 zCj8K&ld8#Mj9CO$KS@K`Qi#;#p1dn~8zkp=`6=$Wb0U$d(#*(0V}t>#xF~^lduQf) z?|q-7WGoCr`X))h`f85{17=ib<;B$MupC2RW#F7WRY#bv{g2Dz-7Tz#Qky0$w=^at zS2VKXkCTqINOKXiZp@AcWB?1d$EDrGac}e*W6!q~NtznRK4ZbjrsX2jPTP;vX~{aY zN#myXfuU6MJ^9Vjsh62=^>+5}#d<|FtiqL(1f1hp%djHwC<5y|6)pwKSZ`ek6e=`c zN2pKu67*6AX4K>|5J-}U3-3~egF zSY0FQaqR?Sn)-~>1BS?J(~gks#{ob@7AXbCI9sO!Xmg2>X^%CZ;mtMbsUZBgBQw`q zO~jcpCPGY+MEtt6&WKnqBb6l8a($1|;r5Y7Xn<*UhMm=OoOLxP!Zx`dy3TFxzWzJh zLG)b-!HATH{g-^JpV*@NM^FM(L#T` z(3axK$!FEV9u0LVtok?&x4H0TKy6nihBPBokIT+t)aP{RSB!E5&B|diU;kb-8z(oM z_GKo|RQTPDeIJ8$aqpClXnm*|(ZSdax%_VV=U|T2mIMw|Z$*}bvm4xMy}!vw8uRvE z+fzfR3IkzDn7>ueSo`zVW!)#sumQ1Tea)E5DfFWwqyCwy4_N<0dlXBXC%Uc?Ya^z` zrJ+eDnLn7pbs{}{vChU+gw2J(7z?Z0@Vj7vYMr>#vN0VDzR7dTA@gu~QN5ODEpxAu z8}?Q*v0u%?8ch3VnSQ;E6Ev)8B;bY_y%ejO(GO;>KanpqvWgGf6+di4T-&00odwHu z;wXraqxn9KlMP?$w}ajMt`9%2V$}D%u%M)N0s?F|qsc z#>ex9P%Lcu9S$K=WQ;bF%tX73p=p^qE z;rtblN{SI)xSH$sJYl2n8QK#tLH)+1d)cG!^W~Q?AJH_~{3fGs7-})TPU%1g8g{^T ze21cgp>r+KST78PhwQHL-oLsKWRuj2O>>N@D)5f)ruoL65?Nlh_w&|^_rZ17ocmBM zt=-k>oVfQn-1V{JZr$i+xhXdNv|ao2q$kkGeNUfg%tyFePdk<^I&$&kC5zh*nX&EF z#o(XCQ&4yLD1bp88S{y4$C3W*tWy3S`t^S?^ zb`>8D9@zOtKQTHv`zoh8*R2p$W}1l2H2ZhhSrZ`9vGK2b3wUPFRtvEKQ;wEKjw2dt zwR4VW?hALDLh-H3w4W zmgC|4mG#l#gZE!HeKoE3S_WH4+mT6E_M5rCOGLb*I^QS@u+dGDRX&k~9_+|=o^Obp zC4u5(wJdZ-#;tG8eO6;Vl0?MO=l)gojT&m&-3cb*3204%f64KC)mzO4{k7K9S0;~t zaoZ6Pop8(j^J5NAiu4vr-$X0E+mkpyHOejEt=uq>TRG`xn>?JE%b{P{PBkqo+SD<8 zC58O0Wm^tg>Eg}3!K&+l=S^~kFO-wo^TvN3ub(Y*eN5%`v!v4U@op~ye3{doM+3>5 z0&&f#6m{_}uBJOQd^(N21Oq6WsPdizuTs=KuLrvPVj~@B1VCe~im|J&E5DnGF7JWD z{FiwUtT81|Ec$!3_!!ut7d!>`PEAT%@c$4Fy&=>SH1dP8*~hfX{diNFnekvc$aZTe zT30aMg94=X*{No+a;Px^wFpd)5LbsPb)Z*Z?><|vdY7(^y$aJ#gF_^DksO(h!bOv^ zA}iGzcuva}MFJ9Acoij=+o{$e&Zn~pgfT=TiN>DRYP08mGynUH2&276R3Hj}C%VPuJ@l132ZnY~ z4_I<}hS%7%k6NdKXCx+vova$fqXa&M6wEKvAX4`@=kVa1-;%GQ61HB@91h;RsP!EC z0qAZ0DnytV;EyeT^hQv2FSCL91FR7n{Mh_39RWxV&y6U*M!2F&NCqa#)cVBmFMIs? zHE;?cYNe~st{C@%pYlLM2Qnh^oE{KS6KOxV6q+_P{cyT`tLEIXko;2zk3-YBnneVa zM;oJ0#v1`Sn%mOs2iGFNt0K-8;0uOf2U(!88|`-Y&pl}HhqbQv{KySB?m+iMGm8xE zpi!;o5ex7ZPfjHf^*4z2Dn7yfIMSYJ7>3U~Mg*E^dlPiSScQdCyx)LU)nmA*_n>l6 zrX3$en6VP39ZwMi@k-v$Iv4$rcydRiLS;qeMD9g#^CFGLCMIM^&4|ZrwyEEuDE< z|E?O$+7sS_!SGD>sVp9*pGOb*DXNLZ+z&d9G*CZok)z%06gc_iBEM-x6Yn9T74hBZ z=^Xid%Vd{+?O@ui_{YRzOWPK-{S&-LIzLI;-y;Wil+#ZbG}`5aoF&ibb_JAjXa@Q0 z6DVXYU#G1J$B}+2UQ6S2|E<4pLvy-b|C<c_T!b<+2~&198sq%t)4f3d0V8 z*)FVNY;IuMDu5gz;NS4*wb0m;2+eFmqPS36qRkLTjg>I4oi@;9)tP!gB)ck-PBFFF zQ96-<+b1o92qAW?Ln-0f-eervz1k=9;6!Fj64+9ZyS$jS*p{OuB=IMdJ z)>H~71v-Zs38sZdB|+s<4(vDKc>Bc&D5Fqz9<58ZR0rA_XWfkHG>G&e+a1`Q+`6cP zz-9)%d22HhvT0k1Tim#!NqWSI_$y7p#o|ww%K^Xk`wf7)dWz_GvN3}+K+6$0Zw+xaZZAq#SDL*T>q$x;={p&@i|YTYO#UqQP*|IZg(Y4 zv^S#jK{Q{Uko-`UtT`O|#dIfXh$U#2d;~Io zm7a`m!VG$ZWOC~LOu7Rh*|n1c#F$T?DO{eVqEh`Yski9>9-6_Id~u>O>4@kQ95Me7 z(nx9b3Kv;2u@6fhK6nx!g<;2p!#zzj{L5o}d|q4@C9OTg9Pw#htAs#@Gdhk1(-Lplx?$AMABCI7yCEkM} z5eM!4qC!R=KaM()aGn=j|C;&6&T2NO{K(~EFO&$I8CzBU+%`on=Ip|POmIkOZzRBg zXoNr*sCkf_JT?W5w1MMuem$Tg8pqzU8UZ^t&U4UL=V_M<%uZ$EYoIpJ zw{Qqf>4W1A#r-xQ6FVB&%f5^7MWLSKT;UbR+409vycBBE@4IlSWYf5IaBu?z&-hL> z_!d}7QA5Q$-nCThHPD&6KiGDd6FjoSxsI7@8zd3}>osxp?x3&O!O}SMT(t zJLu+|GHkEynoUh<23x4T|AklgiP%2-o-4^_NbPr}`iXb~x|=N~!^9E`qV(x#Su|RZ zs4VSCPy(6gtI*F5znoL>M=Jc9#W}O@Pj%?^Pl0RSjwGhzH`H{KvE#T?JbL|;PQUO$ z=~kQ{kqZ(R;0T#8_1@PHeld%CkIeLm*IlBE`8vh|iaYst(e{Bh z^jsvV<*mq7Xs8IE(lHH$Xget~0ecYX;BtH)(XY`#PV`%ju@Vr!r?9RJw)*D44Rz%@ znuM&n01{F}a{vmV_^X>Gq*ZQNrpKN)69gcjB)=6G(X=928 z)f~=u4v89E09lz6n+0O4azaxS$TMS-E2XX=e_(C*RC_y%>cs}M$ z?y9^D;}MuBwH3{8OTOINq71~JRjZ!oK#$lIy`Rf3MT#WyPtt3wRrQDIKU;Bg$A@h~ zk7v(LAr&pDOiMSD$^@)#o%V#tmx$TLrs4eZ19;QJHDH~L&RE>Y+B&@Y9dI@gr0Ijr z2aLkUM!Mw@lzb;bAQ%4z!-aYiSfjYok_24vv>4uH_i3xvIeohzmhe@HDf@kR({I~_ zdU3HE@8kE2Msxmg9cZFPEb1+OfsLFEUhKL_M{ZQHk&L?%p2ItA-%siyxEEL-H%7D> zq$a~~5fM8xYoqHkER0+Hy5t+Wk+apw(E-yb)lE9USySRk)GkIl@dth5sfsc8QpUK4 zf28TrhPO0e0C_iguBy2_U;0ZN+sv=0^^dV1Z2e!XYR^(-LJI$XaLR$N{|Bt3{)j@+ z{)dJ|DgMuM|ATP-uZbE=4RZVs^hyjuVYTKzaOXeJ?tf@mVrBgQ#SZ@m-2ES%=Kufh ze$wm`5-ZnoWIh83tqLg-zFjJ_gTRxmukwi1f=-(>4);%}3*7ij)r*e_&K={a>HuQ> zE4{Gu6RvFwLZten6$s)-x9LNyoXrVVmrSW+Ykf3%OZg9og;WJ(i}i2mktj({mN26I zSUVp`oE(ddLiW<5^O7yNxP`6{ z|Hz6GiX=~poRPE=@A&0Ll37`f_#>T1r+#pNafR+GQUUqEHoQY(D*oK^ZqjI;WpiyH zuukfN_5iSG=l8^$JOC8uLy&Z?IM9WY4RKb7VnMaknxw<_4=EJE!{^-r(kkK9dxf+y zx9xqvBEW)JO@r1&tm1-W)$DXak-i6U>A630h%!oZ8pr)QUf< zeQJYtHtG+#aPBZwv;VNrpCxp7p?{3g-u(MT)d;}2j&1fGIXvt$mq9WE@whfyGWF%I z3La@9+l5e6$->K-^Viv`>=Y(!F{L7GC3LL}K>dhwS`*Mn#Qn4}WvB=!##5BvtTPxp zvAUMRIQB;1Nb2f#i5p(1;8b3}hZ;`d@g3%ye~V1#ZMY3&spon%e2{auhr=QNX0nb+TuEV5x8}lsg}#Q zy6y(6W(%0wBOh|sqL7S=Q9(gi=y2IS=i>aER$=7W)4{@Xqq(p#|Fv$njZuM z0?2A{UQmsi?kWAF9d$qqhs7QTm-=44Pn4@{l~VE$9q_VoSfWsVjHUHgy>#=ycZT)| zYNFB(sL%CvjE8Pq4X$EkM58V6kZkd_6@aGPzheLUO+Vi-Vl5q!=vC107k)$7apHWn z-Tzk7HP9(`3IaRby#t-mC4}b)#xN%;_U(AV`)gO~ML~|`zuO;n zbMVgCcB2T@7tD!Ap7{j549#f%fs>vk&_s%?$xt}?EC0#!eA;Gw8Hv5T5r>*W>`r{a zlssE2KbWZ>{Y$B;IYAL7f$MGpDD)2pKD#AVPnlyILE^j+vET7GgqI0%q6 zdD;_r(eyzD4{anGG=Gcd@KM0yk(T|N*U9#@ni6?iGrvmn@movaO(#q97ix3lbEi=p z$;|=!kN?ml610BVzu|7^gigx4?|wAPi*qs{p3E*eD)NkJnS(Z@;zrJM?l}zaq?~tZ zT=!P-76ZkpT^|55Al}784Jbx>Zfr~)+W?my)9@Uc)~wXxn(8^Zz^kDa*w^!D7Rux`$tFxMTo}0$`U*1I;) zDnjwIn{{E2HKEW9Ts}Qjk`Gilah4>+rb4_slkT~gj?KrNlcnQ}Gaga^rLWwKF#QiU zf}-VX9LY-AI;i$-)(KDuF9VUQ?_!{Qk|wC*)Li1*wP6CuhkEtTIxb1 z*A9h|ciGLKFcy1IdXqzyDN?pdyx6YBos=+t9tl@&J!C)M;$EyQXRI%8Is1K@Dllg? zb88f2igPvSK+e^)-0(NDWV~PQo$$1Zx-jBEbCr72Xp3N9#9$|*(HKNT*MD5fIcMFx z8$meTfD=|_i`VQs27H~D590@`)4%x;T6_0BXQ`7|xflwJV4q6t_%R#=z&1wh z%~$=KNrjv#wBm)Xe@uHZW!S1I2_R)E%?^nn_JN+~G8_2mX%W~ncj?lSkPvZZg|lSO5|$UbjpBA#8H@CT+b#yAK=q?^nV+#kIQYnjI(d%H@`!eI>T*w@t^z zD|F+qs*z9yMQa+czSp}8rv>AFCvU}|4er1gOQ;7Y;Lseoic%p9`Al(@K?7F&(_3sY$l$p zg0N*N9CK@dE)n2Blr&!Li@0M}h~R$A7%^loXp`=P6AtLHN6#E^{PsS5>zht;*f4GJ zI-rx+P1NJ^CdZQx>cHUJBOA)2Fho!f*~q_H_Zt47X9W z3?pHBik(kzkSsEhI%~}qQH=c#?C&l(v_!r0{h~0nJh@Ps25OxRFm4ko%f9<3b+-pT z%#Pa$?fvO;NDpyFn%~Y4?|=eOD%kp?w{kIsQGo+2fiL^Tf0U4xU)gndYDCl}3Vws1 zSba44;E=q`ZCs&{i}q&u6FJi@N;Po|wk&?6PATcmNpNW2~b&f%w8mv zbpsdp@L@`h2LspcZ7*OYxb7qZQ6KKK!VpHYt@Y4uzK;5X)WcuJaB;x1lSiJ(nD zmrGY7J#m#|F|3%VnHx+rO!nvetH@1>24wQm!ztr$vJ?%B>hs`CP>rejl9Zt$EUdLZ z|KQCaPwNRm4^8cKP#8G#-RN|V`(1iNTmapeggQ*my#G@PbM|m-Whk^QYg>*+k*LG7 zba9h7#+saWCxiUdCn{@VL@Zz|1K}h+K{>B%=Q}9=l41)-<+bUmGML{#B$ku-Qy{iT ztV<)W1yvYWE=(%XIh$Qf@k21<<4O`!Ni-vqV!3IPKHiq~59fOP;%)*&UIu2b3e)C5 zQsl&!_V&U_ea`JwMzCbB>z)l%-u~`hgURD*Q|$bcy});rt&yhJsR+J#Wc?b~xR8fR zx^h3sr}TeCXl2w^;(F;PlAbz3&gQ78SL|UOrd@KYq{)gqiFzV~^|y?F6y88Bu~c!b zP=gam(sTl#Ty}cHZnVx!z2;B3oNEQj-A_YtC`e))z6{sj@ho~&-E*kd0zijRQZSv@ z2iGGL#sbrK;h75TVS#DJN|HO+^0ao7)g@RZfy<5tZiW>3cih%z9Tz4D0b*5EJ<86B z2n&aq-(;pi3949k%OG0wxLxhGMKf$;tczMR)7AS)gS0WY_-E-X9Y4Kg`mxXt3GK>A z-t@qPl=dnyBo@v_0+9$xb>Y1@Qi4OTI%idlkBQ$~<7W_X&@$`sVCc+xAOB>8ZV#(O zlJ2he-_LMF#08Qz4KOLfQm}~zlkzxOlhrIBxuO8$foZp=f?OsFy}fcLcKux!WZKl- zt|xr71h9>Aa|35ls6P7waeU+f^q~oa1pFMfJW)-mob~VY(L~+~;(giCyBEJ;Xoh|P za-^{EH*G5G%lB1&;uCoMvA)UtRfaNB>dT~tBIDjAzr^EE<^ngtCG3Y;XtOG|6%lc` zl62A4B?9?00-6)|gpL$4wnxf&Hv{AS)?KK?hnb1_o@cvbX z=hE@%my!%E;I+l;7H*XD2dQbFV_WjJA4BP;t7E`4DP1@PygJgDRuhW&5fp+6#3cFi zT?YNnq54%Ax=`bt2{TYK#%4jHl^wI1kDMFPa1Q~$rFz5*($E^7Nyg3=(JqJoHYHz*-p0@5X2 zBHc)Xl=RR@4=LRt-5@!@0Ma?s&KIggn**jpgIsdT~ z&zPPclhia`mvkpV@YExujZ85P{a`yGP$3OxhjU6j4Ijo}ilv%GdM-tD9b|;-5>I}5 z5LBT;c8fKG5O?a6@K=y=SB~a-0ru1z*PW0wPW^;_6E)V0V(0gXt88n0woU?wlR^`O zHPXGZ6d)7@+-18$05M!+qv%K6{!d7n#{`4sa8}^}jB(M~%ny(--6c4?WM8KGauuVzIzAb5LZ1)9&7tLPA{c^v<>@P&ScT#u- z{SP)tya=jyp9Qlu!$6R^D4DiSWTcrp+yWs_eAq>hFJMRi<8fb<)Kev?Bfw*B7TBufg4Q0-eI6Z$6cI9x}nmhSb)q*!r^ zt1y7b2{qIUJEhkpugMLLm^u%AEWfk-Ug|byY}c1ht_BW}uLq=c|EVuyY@ z&IK=kyYA((YOm$Uof`eE&6Ct?S%zlvPW{G(n#y==$1lQigH7o#vl`qMBCIe1 zC_n#qvoSe&AIJ5qb#zz0$>&1({4fiN!+B)84#2JMRctMror;F#+}V}Y?nXC^5}O(uvAl>@8OQdN}h zUI1$q1F%GCgsLEr)Fn;;2)M_bX^F>3@zu&9_lA^~fku2@*x}-EFC1Ato%WrhwFw{h9A`D(GX5ci^(g!mN$0id znE!h2uLBzNs&EkE{N~9oYvgI46c6cJeW~Lm!)CEXmkt*F|Hpj$>nloi`!{n8|DC|O zkgz7!t{=^lY)kl$uA!tr&IW1=F%;v5l+n?bt8M?Jv66qa(8f(EF8|Rx1i46sv*=aN zJKenIf2wQrTqi<8cdshKp_hTQyCHuGqF^i;sU_=xtpJzr&vgD{fd1*F>EIPIHmm(- z{}nt+Md(z7FWybEY*Fz41l)h0L**s|=JU(t>8=0iqd!aaWE#GizK{IJJq2UQN-gd7 zz6HWkJ^dT082(aJZ@USQ4fu)DY5B(?_+OiG!&2KqW}fOYNKHqAhP$D7|NXzv|K+7Z z|B1gPk*w8Py@%*h^j}5!vrp^j;$$!jWSJQiAAz2b7Q(*-7hX?j%U=O^5jR)Hf0Wq& zWv<@z1t&S`^LOy^E&O4wnP|Q89PFyM)uP$c_xn+uG-JcPINFn9$muh_R5^v2dZ>89 zd_poV>OPtLxj~~?T>Q<_l*8m@%S}R1Nq^3CtG8vgF99%HHm-QHwjTX%U~D?qTmFxk ze`bB@&&BwQ{oF*!qY9yxpO=3%_vkV-gxZt2Ni(E$NMj5-TRLcZhi^9sb8Q$kfuZD3 zcA8lvh_(#bunDPw;2BU8zs6R+ir2i8lv{-|BGS^DTbG805KO>yowdG&Hp{EHui-SFeYte!0yO~=eM9Yq`r59B;BjRJT!dqD_atr8?68+3brsL!8jg z+%gk+%vUK*MD2lfiGkEni=JK`YOT^}zKTJ+Oy7-9 zK1b~|!?(Cf)WlCpcczNA^Hx!lCF0@*lbS2IQTiwpfwaKGezteH5^E|7R z)lDJQmc^xj6x4209D+qROW!o4QLE0>*%X9U;U5UmHu&1QsUNi;4r9jd=~jrRj9p}o zu-fx>!8ppfzvrDHhrjX4%G=X3deDv!(?>Zn55H+>CIL82N+XV%N&QBM|wuOLr%~_3zN?2GIUGE9qSf~n-{=GKN&4) zZoEWjoHdh1YaOn;HUjTXQ@@+Fke%T=Geq0`fO^Zt_FQ0n?qY&|E|?{$iebG8LKpCzd!2ZRzgRnm)Y_t z3!$cvjZ_x~4Ses3YErY%^GxFHlj_{zZlSr`XGwA3pZ)G#D{wPrE7pdEQ_VfKvfOC* zr;j&maqO1Cw>Ba`GDw~K;RKeHer~??z~0s!R#~29#gJn;w{e%!aRc2m#;aJBYTDeq z-HKgs&&hFS;)b*km{bInJn7uPzBy_|RBGVwopoH_MJ^BfEr})qaM+?)zm_^lcDm8` zrE$A2AJ9C`9Py^Az8i4S`fUET&kEjaPNFCm_jKEBBrcdK_W~(hNC8F*G==j53Zt6t znTY-C6g;7lasMglBg0R1LO;qzTuwB*`7047+r}+3guFdcF$KVo(x;9KcFRg}|E*P2 zz+)X`?yGgz>K;xJYzuI4R+&I@zfvXBQ0@SEvfKHARJ0ju&J5jS@QmOGk&CnWrG%ux zHdb(S_9C)cs~XoWx_x;XNwU7clNW=r5$ff~WajcZDiri$g@J!Lziy6Q+Qarx%J;=rUb4P>vE@lsu)x+)Nb6qk2%Q&l0>$nK&VU*TS&Z*-&GmJ;DZFb1? z&xB#EgX6D(^N@$jUTHNcYGV8PmKMgXko2~mtOia}=t$G3D{bt^2YZfuKrtRF2x@?O zt!#AP+{GgEja)^I{EESQ)R#SFIsS(g0*xHDT?*RAvkpUfMbG~|B!%>I${$qOk0B_3C-tCM&y*r+WPIGG1wEF1NL>8-{XerpvbuaU* zs}Giv9xiTLm_?&Uf=4w|fC^O9rye?T4Xl0kup5R zlCu%_!z^Aq!>KfOLnehUY6jca(hr|I6xa7IZ5dNKx~Ga&FR*4$&zp*QI`#IFc5yMje2%CU&n{EEj{vb%3yyTt*xkeiDP?Of znr^iH*$-|r&KNYCiB3q8Di7mW9^=bZ~int ziBvQ5=GbHBX1t#c)Zsm#p5A?03pLq0G``6kH8Jc}Oo)A2ASSRswJSX3Oa#BRGUJ4B zgGzq%k+$upAc8FP4wFl1?9xnY^!$DbzQIq@YVf+xqAR2wXZ?l>eBnTZO1cZrCjzS` zeI?HK05{=h`BCwa&IFu=q^v1h7eAdLaT>ek0gDEBz3@ntkm7k8Q;_+tiua<(O$+;2 zi$G~{w?1aN1%ze`HqyAV#euMLPQ@RC3c`P;w}0U-`c@4YbtZT5ON7+>^>(4mC2BF< zLAwf_?c5Yzb3+bdCftetM$^G%*onZkB=ErRbaYn{Ylrb$9xMwAoWJ*346a^i+*z;# zf&iaONFk3|6HO^zrc=?Vi68Hf9hGla03z3_m0iro4>F-=W5=nDgpOU(1pE7k2KVhh zYMSnJogLdt!rUOx!QiJA{&<4-Sho!H^rh1IKc1HB+Oz7`erwl)*Jtek}j6 z6m4bwO-Ah^@<0Jg?qjuOwMsHb&VtK%T=0kv%OV8*NAIOz_V%E-JIH%$jD7rW>rIC+ zU*U8!ecSQ%RcC0rCfI(uQNH{lj(_$bX7}iBH#mI!)gQX(Xl7eIk?PeXo^P)0@{oN> z?P($JV`28A2r*|nIg>W)GjZ&i25Ws!KQsQyFxAg)|uC>V@sZ}3ZJaQT;olEeBI2m!V5%=dSqIP z1mg2s2fjaQIR^GYyGds5?8I{&7)S6VsYWq2^lt7NSR~ovzF$>sy`6QG0pK7+snG zl+7?7K-IpJv{b%lIS4;(7$i}Re<7EW^^Dan6}>ZGHMxo-@AJ%_jwn$mum5}+{GjiL zn!6|HW>vP=n#E6K(92?liHS_t5cEz}Fe$_LWXLRY@Ce2ur-)2u5>?}AL@X#!<>#II^*RUj5w^us4 z*>QUo#hw1pEVzk5Z8~>emb=DSQ2-h6^&Ay&=sydUl!jmrjx^K3?8#W5RR(oc3ekvnhTZAV$w+fR^gP)g(olt=fl_k$Jp&U<+vsQh!Xa}z|RhUe4 zDL!+er%b4}c+1u;W=r;P$gBBO_ZK7L1H~wv+m5sYI;BqMP9a}D1<#3GpYmFUt%-Ye z#UN zMa%C0K%v(2F;HGFULwEkZfH$G2Oh~o5Grq8)9$pr!8i_lJ3r&DcwK!v0bkBEzh__0 z7T@>bye5k-9X`c7j~MLo+AKMgd#+F0h8m75Q@5|;$?x#w30HNcoA%x2W2Zr52aES6l6#p^EVi%yP&7?$k~K@1RN=u& z@N`ha?ST-Fzw6R>YfXJV$fT259S*yQWY`({2^`sIC63J9h^q-?M&l^G4v(i!QP^wP93W|=kn96B&KVy5( z1$Y_MrIou+`MfNK_NFwno}ph$ zS~S*Ny46UYEVL?G<_2q~@KHR^V{6T^_0F3TCzQx~t7EDaTz+{!yd7;drg!!-8f|s9 zam~d|&BzEXb~L(Vw9+~F4V-JUylv)tSie*ql|a!Zz@`3X_LNIcN<_j&-u@4usxwK+ zN7eZbwb5Hko){3hDD}4_IjmHM`6?-QIwH1tJWBjViY<<>K=d#^d4}Nr6W-%iI(9A>t#V*K2!s^E6Q`{^F{cJLfk2vz1V? z4swEQw5pGa_GGu%MpNWJKTFQpw8}2>qt5@H+(ZK$^oj(D=x<;BK_TrJyEp9L$UEb4 z^@w%?tZhEuxU9?}!+@>KACVOg7Vq19@lxbOwJNT=^$>~bdll^b$Q(l=n7lEqPb2Yo z%<%9LPzjuHUOp6af1TpqhQxhyfo~kZDH%|BfPrwl1C7%c^J}Hnz%Ht>+N(-7`;)s&gTjA{W$@L=`$KRDF)fxL{Iis0f3+i8OnKa`bQ9scT&_)M- z&RWL+1Ag+2Mjj8G z))$kWl)|ljSAM2ns_fWCnMgbJpJ562JF%<&3L&s^__EW&U>q4wW$x^Eth-Dhm>q{PA{qH*$}JgPlzhvA=eX-(|tIj2Yf&^eVgwX%MRrL z99l|O&V&pM-;oDUqJEOTZt2duYuRhe@dNIEVXzsc8onPpL5M?(Z!1Nb2Ug15=bBo@ z{s4RB_P#{H$&5u{)VKI?NTl*P-Cb~NN?501lW(L5m>YJLbxV9HUgC7_7IMtARlx7n zLOzPb-E`>y|90nBwpjolTDTI9n6SRp6Q1TXMImj&N?R`ZRkPWelQ~%`NX~agx2NaG+>9pfh~;l~-dh&;YVWTGk^@rUM5V?zB~C*l8y9EG z#g3rt-h)@RFszYJ`Vh@|0@R#-%b({{>$%KNHZ?QU66EV(A+GCdsOb$E)zYI3t5mu| z2sGe|$`#g_zgj_|ozE-QdXI%jVBEPWjLEqMmS@#i&3$|hL1#yvK9ZaPC}e2Vch%~P zZ0HmyIX|KH4%T15U8E~03DECm44IW2xiV;s_NyapG?CSD8l+G+0pq#=!*_TsXNcv|n{26glu`4vOy%hm43vd?t`ULgA( z@xXbIgjUh!8CZvmR{%Usv1t6}w28E)15TXgZDc$z3WHq|vE%H3r1Oi_S*i80)n!kw+mB&T==S7ewiKC_ zt9@9if2;2+pW-7+ffrE`CH^|HbxHaYzkD?Zi{#VBE{t7;+FbU%Wo4H4&G(w8oO{!} zGlco-`HTt{P@_wqKOKrCV)!xj#ubPY;#%6w(-yVV!W#jq5*`aVcZG|cwLjvr(XXvh zD6(Qgc|)8tzLcGvcTOpO;l&$&xv=~`3|jv2*IjG7h3_^pk`_^*Htk{>1Ti1G%wFYE z-+Z@)`VpVu3u7OCGbYhM^_vo%ZH8v2r; z*Ds%A+U)<`%(ug*FM6<>LXl(OVoiRLC6K4K`Mke3xvjd0>s*;_=Mtr?kl=DfpuY9; z=ktCkSC`_%OgPuM7jVhy@2or&JTLE_zW5oO!^ie}*wvAk!GX^7NEWu?A**j=b-3Q2 z{=;al@yj8%a1rg*!3T2*#elq z@aijn%di@S?J{fpS1gVZIZ-T4&a%|KyCv2uV5*~3b=UrmZ(Ok+&^PkEAysedjTLYF|T z>;I#Q?f!MZG%6O){t|+fk33wtDDs+ri}r4^^p?@5!pT)y&TNFeLYIm>n?`eez4Wqv zb{;VlGt*!1Vtr#>Gj)Hsebl|R!UH>IpFK#c)mh*BW#)R~Zgkdcw3ND|>uuk16cN}Q zEE3J4Ld5WEJ&4j`M5(Pf;s*Sd!1Q<1rMpLzHo5IoXB|yz-|~ zuGB`Fm-zOeP|*mqfKo>aql?=%P39SbD?p;Lx3aDS16L^XHJct6cs2PFf7>tL$u$Og z*kU_eG6Jv}V+`oN4VISW^$2ZOKQ8pPBoS%e3!0GOpK>(ShxpB>ebiEANp_a30Y)@R z3VSelE3Qt0{f3PXNa+=V>2+lHh*+?x<{A2ung9pY5}6+e`(Z~K|BKe??|&+q=FI8R zPM5zgVK(M8*rZiE`@4QAdFv^#&7&3&40t48WGX(`tC0j2h^JQ{$*S0=yU~#iVbT^Z z)|WDrM-w;+lTBk8x4wn+K$v^m#7n26KBvS=?pC{hS;q%jdjt%cUY*$;Y2EZRHpj;D z_lX>t?};cT2ZAt-mMWG(D+Z0T%x z#n%s_NvU0LqYpLwKZu)hXAm~c6iyZqI1D3>N0o+qwmywLD56zxtY8QCG z;NApLPNK`V+g*2uc{u#Rj#~Kalk*3xmm={5tqKAH&wLhs!G8&BjnjT^SCvUC*b0Z* zk2tzKda2IfrY_x*;w0qeqX=17VS{P(9~5d%f%}vdYTIsF#`_WV%Y@Xqs#y~BZY)nK zE#9iRPNyeQ7}j{G^+B4fqKIf80a2H?8(vCkS60A|CM=LJ&|4*2wsL2?)rMVT3P3-< zDcdsQ{Y{!pa0gMq_v6|{+V{?nNgPH5txxc3B+vDIZxemLr9?X%Y`-MTeEOTCuu2RC zFbz^VggzNqI}M>wYAA>1MWF&HU#9Y}uwQT8rKeO1#v!3~!PZbbb#c?=h9`srjsBFG zno9z8oQuZOA8~j_0iG z_IzOL)Hl3SNQ>nr5vhXqF*RgIS z5{akqQL6eEuyK6*A%WJ?FH*Jg5O(sS*8$PN;oDkDNiXsK?s(+lLm^c!ozUsAgXuNe z6rnj9wX%=E;Mf0ZfZJ2nzi_x_CEoiy9E`1- zhk2g4Y{tKmQ(8^@O@sbx4}5fA!&EB%g|+IZ2ts6cKD>qyGyPW%&5Hzqe^>cO^q`)9 eS1)`q5p-eaXf6!O4w3-!BPXpaRq@t1@P7a@K`L?p literal 0 HcmV?d00001 diff --git a/doc/source/images/network-creation.svg b/doc/source/images/network-creation.svg new file mode 100644 index 00000000..3d6d1e5f --- /dev/null +++ b/doc/source/images/network-creation.svg @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + quantum-server + + + + ryu-openflow-controller + + + + tenant-X + + + nova-network + User + + tenant creation + + network creation + allocate network id + + tell network id + + diff --git a/doc/source/images/network-id.svg b/doc/source/images/network-id.svg new file mode 100644 index 00000000..ad41e97d --- /dev/null +++ b/doc/source/images/network-id.svg @@ -0,0 +1,1434 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + gateway + public internet + Physical view + + + nova-network + + + OVS + + + + + + SNAT + SNAT + + + + + + eth + + + eth + + gw-xxx + + gw-yyy + + + + eth + + + + quantum_ovs_agent + + nova-api + + nova-scheduler + + + + + eth + + + + + quantum-server + + + + ryu-openflow-controller + + + + + + + eth + + + + quantum_ovs_agent + + + + + + eth + + + ... + + nova-... + + nova-compute + + VMtenant-X + ... + + OVS + + + + openflow + + VMtenant-Y + + VMtenant-... + + + nova-compute + + + VMtenant-X + + ... + + + OVS + + + + + openflow + + VMtenant-Y + + VMtenant-... + + + + + + dnsmasq + + + + + + + physical host + physical host + physical host + + + + dnsmasq + + + + + + + diff --git a/doc/source/images/physical-view.png b/doc/source/images/physical-view.png new file mode 100644 index 0000000000000000000000000000000000000000..33354379c797d7ae67f6aaa6f8350e7177b8a099 GIT binary patch literal 187664 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

NRk>LnAe(V1Q4g)d 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + packet traverse between different tenants + + + + + OVS + + + + + + + + + eth + + + + nova-compute + + + + eth + + + + + OVS + + + + + nova-compute + + + + eth + + + + + OVS + + + + gw-xxx + + + gw-yyy + + nova-network + This path is blockedby ryu and OVS + + VMtenant-X + + VMtenant-Y + + VMtenant-X + + VMtenant-Y + + + + + + + + + + + + + + + firewalliptables + physical host + physical host + physical host + + diff --git a/doc/source/index.rst b/doc/source/index.rst new file mode 100644 index 00000000..2320e219 --- /dev/null +++ b/doc/source/index.rst @@ -0,0 +1,26 @@ +.. ryu documentation master file, created by + sphinx-quickstart on Mon Dec 5 15:38:48 2011. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +********************************** +Welcome to RYU the Network OS(NOS) +********************************** + +Contents: + +.. toctree:: + :maxdepth: 2 + + overview.rst + getting_started.rst + using_with_openstack.rst + how_l2_segregation_works.rst + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/doc/source/overview.rst b/doc/source/overview.rst new file mode 100644 index 00000000..a6210d3d --- /dev/null +++ b/doc/source/overview.rst @@ -0,0 +1 @@ +.. include:: ../../README.rst diff --git a/doc/source/using_with_openstack.rst b/doc/source/using_with_openstack.rst new file mode 100644 index 00000000..143a3042 --- /dev/null +++ b/doc/source/using_with_openstack.rst @@ -0,0 +1,251 @@ +.. _using_with_openstack: + +*************************************************************** +Using Ryu Network OS with with OpenStack as OpenFlow controller +*************************************************************** +This section describes how to setup openstack (nova, quantum) and +ryu-manager. +It is assumed that kvm with libvirt is used and each host machines that run +nova-compute/nova-network has two physical NICs. +It would be possible to deploy it with single NIC machines as described at +the last section. + +NOTE: How to use nova isn't described in this document. + +Overview +======== + +Ryu is designed/implemented with for production use in mind, so it cooperates +very well with `OpenStack `_ . +With nova and quantum OVS plugin, +Ryu provides L2 segregation of Multi-tenants without any switch feature/settings +like VLAN. So it's very easy to use/experiment/deploy this segregation as +the below figure. + + .. image:: /images/logical-view.png + + + +Physical machine setup +---------------------- +The following figure depicts how physical hosts are connected and each daemons +are deployed. + + .. image:: /images/physical-view.png + +Although the nova-api, nova-scheduler, nova-network and related openstack +daemons are installed in each own physical machines in the above picture, +they can be installed on a physical machine which also runs nova-compute. +Each host machine has two nics and one is connected to management LAN +and other is connected to deployment LAN. + + +How to install/setup +==================== +If you are not familiar with installing/setting up nova/quantum/openvswitch +from the source, please refer to OpenStack document and get back here again. +[ +`OpenStack docs `_ , +`Nova `_ , +`Quantum `_ , +`OpenvSwtich and Quantum Part 1 `_ , +`OpenvSwtich and Quantum Part 2 `_ , +`OVS Quantum Plugin Documentation `_ +] + +* Install ryu and run ryu-manager + * install ryu from the source code on the hosts on which you run + * nova-compute, + * quantum-server and + * ryu-manager. + + This is because quantum-server and ova quantum agent which runs on + nova-compute node needs ryu-client library to communicate ryu-manager. + + Type in ryu source directory:: + + % python ./setup.py install + + * edit /etc/ryu/ryu.conf on the host on which you run ryu-manager + if necessary + + No configuration is needed on hosts that runs quantum and ovs quantum + agent. + + * run ryu network os:: + + % ryu-manager [----flagfile /etc/ryu/ryu.conf] + + +* get nova source and quantum source from github + * They are a bit modified from openstack master tree. They are available + at github for convinience + + * https://github.com/osrg/nova/tree/ryu + * https://github.com/osrg/quantum/tree/ryu + + clone them by typing the followings in an appropriate directory:: + + % git clone --branch ryu git://github.com/osrg/nova.git + % git clone --branch ryu git://github.com/osrg/quantum.git + + If you prefer https, try those:: + + % git clone --branch ryu https://github.com/osrg/nova.git + % git clone --branch ryu https://github.com/osrg/quantum.git + + +* Install nova and quantum as usual. + (And other Openstack related component if necessary. e.g. glance) + + Each daemons can be installed in a single machine or in different machines. + Please refer to Openstack documentation for details. + You may want to set up multiple nova-compute nodes for interesting use case. + +* Setup nova daemons. (Edit nova.conf) + Specifically configure nova-network and nova-compute + + * configure nova-network + * --fixed_ranges= + * --network_size= + * --network_manager=nova.network.quantum.manager.QuantumManage + * --quantum_connection_host= + * --firewall_driver=nova.virt.libvirt.firewall.NopFirewallDriver + + NOP firewall driver is newly introduced for demonstrating Ryu + capability. + If you want, other existing firewall driver can be specified. + But such specification don't have any effect in fact + because ryu directly controls packets to VM instance via OVS bypassing + netfilter/iptables. + + * --linuxnet_interface_driver=nova.network.linux_net.LinuxOVSOFInterfaceDriver + * set up OVS on each nova-compute node + + If Ubuntu is used, you can install it from packages as + openvswitch-datapath-dkms, openvswitch-common, openvswitch-switch + If you already use bridge, you may need to edit /etc/modules to load + openvswitch kernel module, openvswitch_mod and brcompat_mod, before + bridge module and reboot to unload bridge module. + + And then create ovs bridge:: + + # ovs-vsctl add-br + + And if you connect NIC to OVS bridge.:: + + # ovs-vsctl add-port > + + * configure each nova-compute + * --libvirt_type=kvm + * --libvirt_ovs_integration_bridge= + * --libvirt_vif_type=ethernet + * --libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver + +* install quantum server and have quantum to use OVS pluging + * Edit [PLUGIN] section of /etc/quantum/plugins.ini + * provider = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPlugin + + * Edit [OVS] section of + /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini + + In addition to normal quantum OVS settings, add the followings. + * integration-bridge = + * plugin_driver = quantum.plugins.openvswitch.ovs_quantum_plugin.OFPRyuDriver + * agent_driver = OVSQuantumOFPRyuAgent + * openflow-controller = : + * openflow-rest-api = : + + * Run quantum server +* install quantum OVS agent on each nova-compute node + * Edit /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini + * Run ovs agent:: + + # ovs_quantum_agent.py -v ./etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini + +* Then as usual openstack nova operation, create user, project, network and + run instances. +* Enjoy! + + +Testing +======= +Yay, now you have ryu network OS set up. +You would want to really they are L2-segregated. + +* create multi projects and run instances. +* ping/traceroute between them. +* tcpdump in the instances + +The routing between gateway(gw-xxx) of each tenants are disabled +by nova.network.linux_net.LinuxOVSOFInterfaceDriver by installing iptables +rule on nova-network host:: + + # iptable -t filter -A nova-network-FORWARD --in-interface gw-+ --out-interface gw-+ + +Thus pinging/tracerouting between VMs in distinct tenants doesn't work. +If you drop the above rule by:: + + # iptable -t filter -D nova-network-FORWARD --in-interface gw-+ --out-interface gw-+ + +You will see ping/tracerout works. Please notice that the packets go through +gw-xxx and gw-yyy, not directly. + + .. image:: /images/trace-route.png + + +Caveats +======= +* Run the following daemons in this order + #. Run Ryu network OS + #. Run quantum with OVS plugin + #. Run quantum OVS agent + #. run your guest instance + + For now, ryu-manager doesn't have persistent store, so if it's rebooted, + all the necessary information must be told again from quantum server/agent. + +* nova-manage network delete doesn't work + + At this moment, quantum doesn't implement network delete fully yet. + If you issue the command, it fails. And you need to fix nova/quantum DB + by hand using SQL. + + +Appendix +======== +In the above, two physical NIC deployment is described. +Some people may want to use those settings with single NIC machine or even +with single machine. +It would be possible as the following pictures, but we haven't tested those +setting. If you success it, please report it. + +single NIC/All-in-One setting +----------------------------- +If your host machines have only single NIC, it would be possible to use +Ryu network OS with Linux bridge. However we haven't tested such setups. + + .. image:: /images/compute-node.png + + +All-in-One Setup +---------------- +You can also setup in single physical host as the following picture. + + .. image:: /images/minimul-setup.png + +You can setup the above environment quickly using DevStack. + + #. Install Ubuntu 11.10 (Oneiric) + + #. Download Ryu enabled DevStack from github + :: + + % git clone --branch ryu git://github.com/osrg/devstack.git + + #. Start the install + :: + + % cd devstack; ./stack.sh + + It will take a few minutes. diff --git a/etc/ryu/ryu.conf b/etc/ryu/ryu.conf new file mode 100644 index 00000000..604e2609 --- /dev/null +++ b/etc/ryu/ryu.conf @@ -0,0 +1,7 @@ +# Sample configuration file + +#--wsapi_host= +#--wsapi_port= +#--ofp_listen_host= +#--ofp_listen_port= +#--simple_isolation_allow_host=False diff --git a/ryu/__init__.py b/ryu/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ryu/app/__init__.py b/ryu/app/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ryu/app/client.py b/ryu/app/client.py new file mode 100644 index 00000000..1371a06e --- /dev/null +++ b/ryu/app/client.py @@ -0,0 +1,74 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import httplib +import urlparse + + +class OFPClientV1_0(object): + version = 'v1.0' + + # /{network_id}/{dpid}_{port} + network_path = '%s' + port_path = '%s/%s_%s' + + def __init__(self, address): + r = urlparse.SplitResult('', address, '', '', '') + self.host = r.hostname + self.port = r.port + self.url_prefix = '/' + self.version + '/' + + def _do_request(self, method, action): + conn = httplib.HTTPConnection(self.host, self.port) + url = self.url_prefix + action + conn.request(method, url) + res = conn.getresponse() + if res.status in (httplib.OK, + httplib.CREATED, + httplib.ACCEPTED, + httplib.NO_CONTENT): + return res + + raise httplib.HTTPException('code %d reason %s' % + (res.status, res.reason)) + + def get_networks(self): + res = self._do_request('GET', '') + return res.read() + + def create_network(self, network_id): + self._do_request('POST', self.network_path % network_id) + + def update_network(self, network_id): + self._do_request('PUT', self.network_path % network_id) + + def delete_network(self, network_id): + self._do_request('DELETE', self.network_path % network_id) + + def get_ports(self, network_id): + res = self._do_request('GET', self.network_path % network_id) + return res.read() + + def create_port(self, network_id, dpid, port): + self._do_request('POST', self.port_path % (network_id, dpid, port)) + + def update_port(self, network_id, dpid, port): + self._do_request('PUT', self.port_path % (network_id, dpid, port)) + + def delete_port(self, network_id, dpid, port): + self._do_request('DELETE', self.port_path % (network_id, dpid, port)) + + +OFPClient = OFPClientV1_0 diff --git a/ryu/app/rest.py b/ryu/app/rest.py new file mode 100644 index 00000000..2d9a81b3 --- /dev/null +++ b/ryu/app/rest.py @@ -0,0 +1,210 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License +# +# 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 . + +import json +from ryu.exception import NetworkNotFound, NetworkAlreadyExist +from ryu.exception import PortNotFound, PortAlreadyExist +from ryu.app.wsapi import * + +# REST API + +# get the list of networks +# GET /v1.0/ +# +# register a new network. +# Fail if the network is already registered. +# POST /v1.0/{network-id} +# +# update a new network. +# Success as nop even if the network is already registered. +# +# PUT /v1.0/{network-id} +# +# remove a network +# DELETE /v1.0/{network-id} +# +# get the list of sets of dpid and port +# GET /v1.0/{network-id}/ +# +# register a new set of dpid and port +# Fail if the port is already registered. +# POST /v1.0/{network-id}/{dpid}_{port-id} +# +# update a new set of dpid and port +# Success as nop even if same port already registered +# PUT /v1.0/{network-id}/{dpid}_{port-id} +# +# remove a set of dpid and port +# DELETE /v1.0/{network-id}/{dpid}_{port-id} + +# We store networks and ports like the following: +# +# {network_id: [(dpid, port), ... +# {3: [(3,4), (4,7)], 5: [(3,6)], 1: [(5,6), (4,5), (4, 10)]} +# + + +class WSPathNetwork(WSPathComponent): + """ Match a network id string """ + + def __str__(self): + return "{network-id}" + + def extract(self, pc, data): + if pc == None: + return WSPathExtractResult(error="End of requested URI") + + return WSPathExtractResult(value=pc) + + +class WSPathPort(WSPathComponent): + """ Match a {dpid}_{port-id} string """ + + def __str__(self): + return "{dpid}_{port-id}" + + def extract(self, pc, data): + if pc == None: + return WSPathExtractResult(error="End of requested URI") + + try: + dpid_str, port_str = pc.split('_') + dpid = int(dpid_str, 16) + port = int(port_str) + except ValueError: + return WSPathExtractResult(error="Invalid format: %s" % pc) + + return WSPathExtractResult(value={'dpid': dpid, 'port': port}) + + +class restapi: + + def __init__(self, *args, **kwargs): + self.ws = wsapi() + self.api = self.ws.get_version("1.0") + self.nw = kwargs['network'] + self.register() + + def list_networks_handler(self, request, data): + request.setHeader("Content-Type", 'application/json') + return json.dumps(self.nw.list_networks()) + + def create_network_handler(self, request, data): + network_id = data['{network-id}'] + + try: + self.nw.create_network(network_id) + except NetworkAlreadyExist: + request.setResponseCode(409) + + return "" + + def update_network_handler(self, request, data): + network_id = data['{network-id}'] + self.nw.update_network(network_id) + return "" + + def remove_network_handler(self, request, data): + network_id = data['{network-id}'] + + try: + self.nw.remove_network(network_id) + except NetworkNotFound: + request.setResponseCode(404) + + return "" + + def list_ports_handler(self, request, data): + network_id = data['{network-id}'] + + try: + body = json.dumps(self.nw.list_ports(network_id)) + except NetworkNotFound: + body = "" + request.setResponseCode(404) + + request.setHeader("Content-Type", 'application/json') + return body + + def create_port_handler(self, request, data): + network_id = data['{network-id}'] + dpid = data['{dpid}_{port-id}']['dpid'] + port = data['{dpid}_{port-id}']['port'] + + try: + self.nw.create_port(network_id, dpid, port) + except NetworkNotFound: + request.setResponseCode(404) + except PortAlreadyExist: + request.setResponseCode(409) + + return "" + + def update_port_handler(self, request, data): + network_id = data['{network-id}'] + dpid = data['{dpid}_{port-id}']['dpid'] + port = data['{dpid}_{port-id}']['port'] + + try: + self.nw.update_port(network_id, dpid, port) + except NetworkNotFound: + request.setResponseCode(404) + + return "" + + def remove_port_handler(self, request, data): + network_id = data['{network-id}'] + dpid = data['{dpid}_{port-id}']['dpid'] + port = data['{dpid}_{port-id}']['port'] + + try: + self.nw.remove_port(network_id, dpid, port) + except (NetworkNotFound, PortNotFound): + request.setResponseCode(404) + + return "" + + def register(self): + self.api.register_request(self.list_networks_handler, "GET", + [], + "get the list of networks") + + self.api.register_request(self.create_network_handler, "POST", + [WSPathNetwork()], + "register a new network") + + self.api.register_request(self.update_network_handler, "PUT", + [WSPathNetwork()], + "update a network") + + self.api.register_request(self.remove_network_handler, "DELETE", + [WSPathNetwork()], + "remove a network") + + self.api.register_request(self.list_ports_handler, "GET", + [WSPathNetwork()], + "get the list of sets of dpid and port") + + self.api.register_request(self.create_port_handler, "POST", + [WSPathNetwork(), WSPathPort()], + "register a new set of dpid and port") + + self.api.register_request(self.update_port_handler, "PUT", + [WSPathNetwork(), WSPathPort()], + "update a set of dpid and port") + + self.api.register_request(self.remove_port_handler, "DELETE", + (WSPathNetwork(), WSPathPort()), + "remove a set of dpid and port") diff --git a/ryu/app/rest_nw_id.py b/ryu/app/rest_nw_id.py new file mode 100644 index 00000000..5422c81d --- /dev/null +++ b/ryu/app/rest_nw_id.py @@ -0,0 +1,21 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +NW_ID_EXTERNAL = '__NW_ID_EXTERNAL__' +NW_ID_UNKNOWN = '__NW_ID_UNKNOWN__' + +# PORT_TYPE_VM = 'guestvm' +# PORT_TYPE_GW = 'gateway' +# PORT_TYPE_EXTERNAL = 'external' diff --git a/ryu/app/simple_isolation.py b/ryu/app/simple_isolation.py new file mode 100644 index 00000000..43e945c1 --- /dev/null +++ b/ryu/app/simple_isolation.py @@ -0,0 +1,242 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License +# +# 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 . + +import logging +import struct + +from ryu.app.rest_nw_id import NW_ID_UNKNOWN, NW_ID_EXTERNAL +from ryu.exception import MacAddressDuplicated +from ryu.exception import PortUnknown +from ryu.controller import event +from ryu.controller import mac_to_network +from ryu.controller import mac_to_port +from ryu.controller.handler import main_dispatcher +from ryu.controller.handler import config_dispatcher +from ryu.controller.handler import set_ev_cls +from ryu.lib.mac import haddr_to_str + +LOG = logging.getLogger('ryu.app.simple_isolation') + + +class SimpleIsolation(object): + def __init__(self, *args, **kwargs): + self.nw = kwargs['network'] + self.mac2port = mac_to_port.MacToPortTable() + self.mac2net = mac_to_network.MacToNetwork(self.nw) + + @set_ev_cls(event.EventOFPSwitchFeatures, config_dispatcher) + def switch_features_handler(self, ev): + self.mac2port.dpid_add(ev.msg.datapath_id) + self.nw.add_datapath(ev.msg) + + @set_ev_cls(event.EventOFPBarrierReply) + def barrier_reply_handler(ev): + LOG.debug('barrier reply ev %s msg %s', ev, ev.msg) + + def _modflow_and_send_packet(self, msg, src, dst, actions): + datapath = msg.datapath + + # + # install flow and then send packet + # + wildcards = datapath.ofproto.OFPFW_ALL + wildcards &= ~(datapath.ofproto.OFPFW_IN_PORT | + datapath.ofproto.OFPFW_DL_SRC | + datapath.ofproto.OFPFW_DL_DST) + match = datapath.ofproto_parser.OFPMatch(wildcards, + msg.in_port, src, dst, + 0, 0, 0, 0, 0, 0, 0, 0, 0) + + datapath.send_flow_mod( + match=match, cookie=0, command=datapath.ofproto.OFPFC_ADD, + idle_timeout=0, hard_timeout=0, priority=32768, + buffer_id=0xffffffff, out_port=datapath.ofproto.OFPP_NONE, + flags=datapath.ofproto.OFPFF_SEND_FLOW_REM, actions=actions) + + datapath.send_packet_out(msg.buffer_id, msg.in_port, actions) + + def _forward_to_nw_id(self, msg, src, dst, nw_id, out_port): + assert out_port is not None + datapath = msg.datapath + + if not self.nw.same_network(datapath.id, nw_id, out_port, + NW_ID_EXTERNAL): + LOG.debug('packet is blocked src %s dst %s ' + 'from %d to %d on datapath %d', + haddr_to_str(src), haddr_to_str(dst), + msg.in_port, out_port, datapath.id) + return + + LOG.debug("learned dpid %s in_port %d out_port %d src %s dst %s", + datapath.id, msg.in_port, out_port, + haddr_to_str(src), haddr_to_str(dst)) + actions = [datapath.ofproto_parser.OFPActionOutput(out_port)] + self._modflow_and_send_packet(msg, src, dst, actions) + + def _flood_to_nw_id(self, msg, src, dst, nw_id): + datapath = msg.datapath + actions = [] + LOG.debug("dpid %s in_port %d src %s dst %s ports %s", + datapath.id, msg.in_port, + haddr_to_str(src), haddr_to_str(dst), + self.nw.dpids.get(datapath.id, {}).items()) + for port_no in self.nw.filter_ports(datapath.id, msg.in_port, + nw_id, NW_ID_EXTERNAL): + LOG.debug("port_no %s", port_no) + actions.append(datapath.ofproto_parser.OFPActionOutput(port_no)) + self._modflow_and_send_packet(msg, src, dst, actions) + + def _learned_mac_or_flood_to_nw_id(self, msg, src, dst, + dst_nw_id, out_port): + if out_port is not None: + self._forward_to_nw_id(msg, src, dst, dst_nw_id, out_port) + else: + self._flood_to_nw_id(msg, src, dst, dst_nw_id) + + @set_ev_cls(event.EventOFPPacketIn, main_dispatcher) + def packet_in_handler(self, ev): + # LOG.debug('packet in ev %s msg %s', ev, ev.msg) + msg = ev.msg + datapath = msg.datapath + + dst, src, eth_type = struct.unpack_from('!6s6sH', buffer(msg.data), 0) + + try: + port_nw_id = self.nw.get_network(datapath.id, msg.in_port) + except PortUnknown: + port_nw_id = NW_ID_UNKNOWN + + if port_nw_id != NW_ID_UNKNOWN: + # Here it is assumed that the + # (port <-> network id)/(mac <-> network id) relationship + # is stable once the port is created. The port will be destroyed + # before assigning new network id to the given port. + # This is correct nova-network/nova-compute. + try: + # allow external -> known nw id change + self.mac2net.add_mac(src, port_nw_id, NW_ID_EXTERNAL) + except MacAddressDuplicated: + LOG.warn('mac address %s is already in use.' + ' So (dpid %s, port %s) can not use it', + haddr_to_str(src), datapath.id, msg.in_port) + # + # should we install drop action pro-actively for future? + # + return + + old_port = self.mac2port.port_add(datapath.id, msg.in_port, src) + if old_port is not None and old_port != msg.in_port: + # We really overwrite already learned mac address. + # So discard already installed stale flow entry which conflicts + # new port. + wildcards = datapath.ofproto.OFPFW_ALL + wildcards &= ~datapath.ofproto.OFPFW_DL_DST + match = datapath.ofproto_parser.OFPMatch(wildcards, + 0, 0, src, + 0, 0, 0, 0, 0, 0, 0, 0, 0) + + datapath.send_flow_mod(match=match, cookie=0, + command=datapath.ofproto.OFPFC_DELETE, idle_timeout=0, + hard_timeout=0, priority=32768, out_port=old_port) + + # to make sure the old flow entries are purged. + datapath.send_barrier() + + src_nw_id = self.mac2net.get_network(src, NW_ID_UNKNOWN) + dst_nw_id = self.mac2net.get_network(dst, NW_ID_UNKNOWN) + + # we handle multicast packet as same as broadcast + first_oct = struct.unpack_from('B', dst)[0] + broadcast = (dst == '\xff' * 6) or (first_oct & 0x01) + out_port = self.mac2port.port_get(datapath.id, dst) + + # + # there are several combinations: + # in_port: known nw_id, external, unknown nw, + # src mac: known nw_id, external, unknown nw, + # dst mac: known nw_id, external, unknown nw, and broadcast/multicast + # where known nw_id: is quantum network id + # external: means that these ports are connected to outside + # unknown nw: means that we don't know this port is bounded to + # specific nw_id or external + # broadcast: the destination mac address is broadcast address + # (or multicast address) + # + # Can the following logic be refined/shortened? + # + + if port_nw_id != NW_ID_EXTERNAL and port_nw_id != NW_ID_UNKNOWN: + if broadcast: + # flood to all ports of external or src_nw_id + self._flood_to_nw_id(msg, src, dst, src_nw_id) + elif src_nw_id != NW_ID_EXTERNAL and src_nw_id != NW_ID_UNKNOWN: + # try learned mac check if the port is net_id + # or + # flood to all ports of external or src_nw_id + self._learned_mac_or_flood_to_nw_id(msg, src, dst, + src_nw_id, out_port) + else: + # NW_ID_EXTERNAL or NW_ID_UNKNOWN + # drop packets + return + + elif port_nw_id == NW_ID_EXTERNAL: + if src_nw_id != NW_ID_EXTERNAL and src_nw_id != NW_ID_UNKNOWN: + if broadcast: + # flood to all ports of external or src_nw_id + self._flood_to_nw_id(msg, src, dst, src_nw_id) + elif (dst_nw_id != NW_ID_EXTERNAL and + dst_nw_id != NW_ID_UNKNOWN): + if src_nw_id == dst_nw_id: + # try learned mac + # check if the port is external or same net_id + # or + # flood to all ports of external or src_nw_id + self._learned_mac_or_flood_to_nw_id(msg, src, dst, + src_nw_id, + out_port) + else: + # should not occur? + LOG.debug("should this case happen?") + elif dst_nw_id == NW_ID_EXTERNAL: + # try learned mac + # or + # flood to all ports of external or src_nw_id + self._learned_mac_or_flood_to_nw_id(msg, src, dst, + src_nw_id, out_port) + else: + assert dst_nw_id == NW_ID_UNKNOWN + + elif src_nw_id == NW_ID_EXTERNAL: + # drop packet + pass + else: + # should not occur? + # drop packets + assert src_nw_id == NW_ID_UNKNOWN + else: + # drop packets? + assert port_nw_id == NW_ID_UNKNOWN + + @set_ev_cls(event.EventOFPPortStatus, main_dispatcher) + def port_status_handler(self, ev): + msg = ev.msg + datapath = msg.datapath + datapath.send_delete_all_flows() + datapath.send_barrier() + + @set_ev_cls(event.EventOFPBarrierReply, main_dispatcher) + def barrier_replay_handler(self, ev): + pass diff --git a/ryu/app/simple_switch.py b/ryu/app/simple_switch.py new file mode 100644 index 00000000..1a3084ae --- /dev/null +++ b/ryu/app/simple_switch.py @@ -0,0 +1,93 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# +# 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, version 3 of the License +# +# 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 . + +import logging +import struct + +from ryu.controller import event +from ryu.controller import mac_to_port +from ryu.controller.handler import main_dispatcher +from ryu.controller.handler import set_ev_cls +from ryu.lib.mac import haddr_to_str +from ryu.lib.mac import haddr_to_bin + + +LOG = logging.getLogger('ryu.app.simple_switch') + +# TODO: we should split the handler into two parts, protocol +# independent and dependant parts. + +# TODO: can we use dpkt python library? + +# TODO: we need to move the followings to something like db + + +class SimpleSwitch(object): + def __init__(self, *args, **kwargs): + self.mac2port = mac_to_port.MacToPortTable() + + @set_ev_cls(event.EventOFPPacketIn, main_dispatcher) + def packetInHandler(self, ev): + msg = ev.msg + datapath = msg.datapath + ofproto = datapath.ofproto + + dst, src, eth_type = struct.unpack_from('!6s6sH', buffer(msg.data), 0) + + dpid = datapath.id + self.mac2port.dpid_add(dpid) + LOG.info("packet in %s %s %s %s", + dpid, haddr_to_str(src), haddr_to_str(dst), msg.in_port) + + self.mac2port.port_add(dpid, msg.in_port, src) + out_port = self.mac2port.port_get(dpid, dst) + + if out_port == None: + LOG.info("out_port not found") + out_port = ofproto.OFPP_FLOOD + + actions = [datapath.ofproto_parser.OFPActionOutput(out_port)] + + if out_port != ofproto.OFPP_FLOOD: + wildcards = ofproto.OFPFW_ALL + wildcards &= ~(ofproto.OFPFW_IN_PORT | + ofproto.OFPFW_DL_DST | + ofproto.OFPFW_NW_TOS) + match = datapath.ofproto_parser.OFPMatch( + wildcards, msg.in_port, + haddr_to_bin('00:00:00:00:00:00'), dst, + 0, 0, 0, 0, 0, 0, 0, 0, 0) + + datapath.send_flow_mod( + match=match, cookie=0, command=ofproto.OFPFC_ADD, + idle_timeout=0, hard_timeout=0, priority=32768, + flags=ofproto.OFPFF_SEND_FLOW_REM, actions=actions) + + datapath.send_packet_out(msg.buffer_id, msg.in_port, actions) + + @set_ev_cls(event.EventOFPPortStatus, main_dispatcher) + def portStatusHandler(self, ev): + msg = ev.msg + reason = msg.reason + port_no = msg.port_no + + ofproto = msg.datapath.ofproto + if reason == ofproto.OFPPR_ADD: + LOG.info("port added %s", port_no) + elif reason == ofproto.OFPPR_DELETE: + LOG.info("port deleted %s", port_no) + elif reason == ofproto.OFPPR_MODIFY: + LOG.info("port modified %s", port_no) + else: + LOG.info("Illeagal port state %s %s", port_no, reason) diff --git a/ryu/app/wsapi.py b/ryu/app/wsapi.py new file mode 100644 index 00000000..6205565a --- /dev/null +++ b/ryu/app/wsapi.py @@ -0,0 +1,578 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License +# +# 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 . +# +# This code is based on webservice.py from NOX project: +# Copyright 2008 (C) Nicira, Inc. + +import gflags +import logging +import re +import textwrap +import simplejson +from copy import copy +from gevent.pywsgi import WSGIServer +from webob import Request, Response + +LOG = logging.getLogger('ryu.app.wsapi') + +FLAGS = gflags.FLAGS +gflags.DEFINE_string('wsapi_host', '', 'webapp listen host') +gflags.DEFINE_integer('wsapi_port', 8080, 'webapp listen port') + +### Response functions: +# +# The following functions can be used to generate various error responses. +# These should only ever be used for the web-services interface, not the +# user-facing web interface. + + +def forbidden(request, errmsg, otherInfo={}): + """Return an error code indicating client is forbidden from accessing.""" + request.setResponseCode(403) + request.setHeader("Content-Type", "application/json") + d = copy(otherInfo) + d["displayError"] = errmsg + return simplejson.dumps(d) + + +def badRequest(request, errmsg, otherInfo={}): + """Return an error indicating a problem in data from the client.""" + request.setResponseCode(400, "Bad request") + request.setHeader("Content-Type", "application/json") + d = copy(otherInfo) + d["displayError"] = "The server did not understand the request." + d["error"] = errmsg + return simplejson.dumps(d) + + +def conflictError(request, errmsg, otherURI=None, otherInfo={}): + """Return an error indicating something conflicts with the request.""" + if otherURI != None: + request.setResponseCode(409, "Conflicts with another resource") + request.setHeader("Location", otherURI.encode("utf-8")) + else: + request.setResponseCode(409, "Internal server conflict") + request.setHeader("Content-Type", "application/json") + d = copy(otherInfo) + d["displayError"] = "Request failed due to simultaneous access." + d["error"] = errmsg + d["otherURI"] = otherURI + return simplejson.dumps(d) + + +def internalError(request, errmsg, otherInfo={}): + """Return an error code indicating an error in the server.""" + request.setResponseCode(500) + request.setHeader("Content-Type", "application/json") + d = copy(otherInfo) + d["displayError"] = \ + "The server failed while attempting to perform request." + d["error"] = errmsg + return simplejson.dumps(d) + + +def notFound(request, errmsg, otherInfo={}): + """Return an error indicating a resource could not be found.""" + request.setResponseCode(404, "Resource not found") + request.setHeader("Content-Type", "application/json") + d = copy(otherInfo) + d["displayError"] = "The server does not have data for the request." + d["error"] = errmsg + return simplejson.dumps(d) + + +def methodNotAllowed(request, errmsg, valid_methods, otherInfo={}): + """Return an error indicating this request method is not allowed.""" + request.setResponseCode(405, "Method not allowed") + method_txt = ", ".join(valid_methods) + request.setHeader("Allow", method_txt) + request.setHeader("Content-Type", "application/json") + d = copy(otherInfo) + d["displayError"] = "The server can not perform this operation." + d["error"] = errmsg + d["validMethods"] = valid_methods + return simplejson.dumps(d) + + +def unauthorized(request, errmsg="", otherInfo={}): + """Return an error indicating a client was not authorized.""" + request.setResponseCode(401, "Unauthorized") + request.setHeader("Content-Type", "application/json") + if errmsg != "": + errmsg = ": " + errmsg + d = copy(otherInfo) + d["displayError"] = "Unauthorized%s\n\n" % (errmsg, ) + d["error"] = errmsg + d["loginInstructions"] = \ + "You must login using 'POST /ws.v1/login' nd pass the resulting " + \ + "cookie with\neach equest." + return simplejson.dumps(d) + + +### Message Body handling +# +def json_parse_message_body(request): + content = request.content.read() + content_type = request.getHeader("content-type") + if content_type == None or content_type.find("application/json") == -1: + e = ["The message body must have Content-Type application/json\n", + "instead of %s. " % content_type] + if content_type == "application/x-www-form-urlencoded": + e.append("The web\nserver decoded the message body as:\n\n") + e.append(str(request.args)) + else: + e.append("The message body was:\n\n") + e.append(content) + LOG.error("".join(e)) + return None + if len(content) == 0: + LOG.error("Message body was empty. " + "It should be valid JSON encoded data for this request.") + return None + try: + data = simplejson.loads(content) + except: + LOG.error("Message body is not valid json data. " + "It was:\n\n%s" % (content,)) + return None + return data + + +class WhitespaceNormalizer: + def __init__(self): + self._re = re.compile("\s+") + + def normalize_whitespace(self, s): + return self._re.sub(" ", s).strip() + + +class WSPathTreeNode: + _wsn = WhitespaceNormalizer() + + def __init__(self, parent, path_component): + self.path_component = path_component + self._handlers = {} + self._parent = parent + self._children = [] + self._tw = textwrap.TextWrapper() + self._tw.width = 78 + self._tw.initial_indent = " " * 4 + self._tw.subsequent_indent = self._tw.initial_indent + + def parent(self): + return self._parent() + + def _matching_child(self, path_component): + for c in self._children: + if str(c.path_component) == str(path_component): + return c + return None + + def has_child(self, path_component): + return self._matching_child(path_component) != None + + def add_child(self, path_component): + c = self._matching_child(path_component) + if c == None: + c = WSPathTreeNode(self, path_component) + self._children.append(c) + return c + + def path_str(self): + if self._parent == None: + return "" + return self._parent.path_str() + "/" + str(self.path_component) + + def set_handler(self, request_method, handler, doc): + if request_method in self._handlers: + raise KeyError("%s %s is already handled by '%s'" % + (request_method, self.path_str(), + repr(self._handlers[request_method][0]))) + d = self._wsn.normalize_whitespace(doc) + d = self._tw.fill(d) + self._handlers[request_method] = (handler, d) + + def interface_doc(self, base_path): + msg = [] + p = base_path + self.path_str() + for k in self._handlers: + msg.extend((k, " ", p, "\n")) + doc = self._handlers[k][1] + if doc != None: + msg.extend((doc, "\n\n")) + for c in self._children: + msg.append(c.interface_doc(base_path)) + return "".join(msg) + + def handle(self, t): + s = t.next_path_string() + if s != None: + r = None + if len(self._children) == 0: + t.request_uri_too_long() + for c in self._children: + r = c.path_component.extract(s, t.data) + if r.error == None: + t.data[str(c.path_component)] = r.value + t.failed_paths = [] + r = c.handle(t) + break + else: + t.failed_paths.append((c.path_str(), r.error)) + if len(t.failed_paths) > 0: + return t.invalid_request() + return r + else: + try: + h, d = self._handlers[t.request_method()] + except KeyError: + return t.unsupported_method(self._handlers.keys()) + return t.call_handler(h) + + +class WSPathTraversal: + + def __init__(self, request): + self._request = request + self._pathiter = iter(request.postpath) + self.data = {} + self.failed_paths = [] + + def request_method(self): + return self._request.method + + def next_path_string(self): + try: + return self._pathiter.next() + except StopIteration: + return None + + def call_handler(self, handler): + try: + return handler(self._request, self.data) + except Exception, e: + LOG.error("caught unhandled exception with path '%s' : %s" % \ + (str(self._request.postpath), e)) + internalError(self._request, "Unhandled server error") + + def _error_wrapper(self, l): + msg = [] + msg.append("You submitted the following request.\n\n") + msg.append(" %s %s\n\n" % + (self._request.method, self._request.path)) + msg.append("This request is not valid. ") + msg.extend(l) + msg.append("\n\nYou can get a list of all valid requests with the ") + msg.append("following request.\n\n ") + msg.append("GET /" + "/".join(self._request.prepath) + "/doc") + return "".join(msg) + + def request_uri_too_long(self): + e = ["The request URI path extended beyond all available URIs."] + return notFound(self._request, self._error_wrapper(e)) + + def unsupported_method(self, valid_methods): + if len(valid_methods) > 0: + e = ["This URI only supports the following methods.\n\n "] + e.append(", ".join(valid_methods)) + else: + e = ["There are no supported request methods\non this URI. "] + e.append("It is only used as part of longer URI paths.") + return methodNotAllowed(self._request, self._error_wrapper(e), + valid_methods) + + def invalid_request(self): + e = [] + if len(self.failed_paths) > 0: + e.append("The following paths were evaluated and failed\n") + e.append("for the indicated reason.") + for p, m in self.failed_paths: + e.append("\n\n - %s\n %s" % (p, m)) + return notFound(self._request, self._error_wrapper(e)) + + +### Registering for requests +# +class WSRequestHandler: + """Class to determine appropriate handler for a web services request.""" + + def __init__(self): + self._path_tree = WSPathTreeNode(None, None) + + def register(self, handler, request_method, path_components, doc=None): + """Register a web services request handler. + + The parameters are: + + - handler: a function to be called when the specified request + method and path component list are matched. It must + have the signature: + + handler(request, extracted_data) + + Here the 'request' parameter is a twisted request object + to be used to output the result and extracted_data is a + dictionary of data extracted by the WSPath subclass + instances in the 'path_components' parameter indexed + by str(path_component_instance). + + - request_method: the HTTP request method of the request to + be handled. + + - path_components: a list of 'WSPathComponent' subclasses + describing the path to be handled. + + - doc: a string describing the result of this request.""" + pn = self._path_tree + for pc in path_components: + pn = pn.add_child(pc) + pn.set_handler(request_method.upper(), handler, doc) + + def handle(self, request): + return self._path_tree.handle(WSPathTraversal(request)) + + def interface_doc(self, base_path): + """Text describing all current valid requests.""" + d = """\ +This is a RESTful web interface to NOX network applications. The applications +running on this NOX instance support the following requests.\n\n""" + + return d + self._path_tree.interface_doc(base_path) + + +class WSPathExtractResult: + def __init__(self, value=None, error=None): + self.value = value + self.error = error + + +class WSPathComponent: + """Base class for WS path component extractors""" + + def __init__(self): + """Initialize a path component extractor + + Currently this does nothing but that may change in the future. + Subclasses should call this to be sure.""" + pass + + def __str__(self): + """Get the string representation of the path component + + This is used in generating information about the available paths + and conform to the following conventions: + + - If a fixed string is being matched, it should be that string. + - In all other cases, it should be a description of what is + being extracted within angle brackets, for example, + ''. + + This string is also the key in the dictionary callbacks registered + with a WSPathParser instance receive to obtain the extracted + information.""" + err = "The '__str__' method must be implemented by subclasses." + raise NotImplementedError(err) + + def extract(self, pc, extracted_data): + """Determine if 'pc' matches this path component type + + Returns a WSPathExtractResult object with value set to the + extracted value for this path component if the extraction succeeded + or error set to an error describing why it did not succeed. + + The 'pc' parameter may have the value 'None' if all path components + have been exhausted during previous WS path parsing. This is + to allow path component types that are optional at the end + of a WS. + + The extracted_data parameter contains data extracted + from earlier path components, which can be used during the + extraction if needed. It is a dictionary keyed by the + str(path_component) for each previous path component.""" + err = "The 'extract' method must be implemented by subclasses." + raise NotImplementedError(err) + + +class WSPathStaticString(WSPathComponent): + """Match a static string in the WS path, possibly case insensitive.""" + + def __init__(self, str, case_insensitive=False): + WSPathComponent.__init__(self) + self.case_insensitive = case_insensitive + if case_insensitive: + self.str = str.lower() + else: + self.str = str + + def __str__(self): + return self.str + + def extract(self, pc, data): + if pc == None: + return WSPathExtractResult(error="End of requested URI") + + if self.case_insensitive: + if pc.lower() == self.str: + return WSPathExtractResult(value=pc) + else: + if pc == self.str: + return WSPathExtractResult(value=pc) + return WSPathExtractResult(error="'%s' != '%s'" % (pc, self.str)) + + +class WSPathRegex(WSPathComponent): + """Match a regex in the WS path. + + This can not be used directly but must be subclassed. Typically + the only thing a subclass must override is the '__str__' + method. + + The value returned from the 'extract' method is the python regular + expression match object, from subgroups in the expression can be + examined, etc.""" + def __init__(self, regexp): + WSPathComponent.__init__(self) + self.re = re.compile(regexp) + + def extract(self, pc, data): + if pc == None: + return WSPathExtractResult(error="End of requested URI") + m = re.match(pc) + if m == None: + return WSPathExtractResult(error="Regexp did not match: %s" % + self.re.pattern) + return WSPathExtractResult(value=m) + + +class WSPathTrailingSlash(WSPathComponent): + """Match a null string at a location in the WS path. + + This is typically used at the end of a WS path to require a + trailing slash.""" + + def __init__(self): + WSPathComponent.__init__(self) + + def __str__(self): + return "/" + + def extract(self, pc, data): + if pc == "": + return WSPathExtractResult(True) + else: + return WSPathExtractResult( + error="Data following expected trailing slash") + + +# match any string, and retrieve it by 'name' +# (e.g., WSPathArbitraryString('') +class WSPathArbitraryString(WSPathComponent): + def __init__(self, name): + WSPathComponent.__init__(self) + self._name = name + + def __str__(self): + return self._name + + def extract(self, pc, data): + if pc == None: + return WSPathExtractResult(error="End of requested URI") + return WSPathExtractResult(unicode(pc, 'utf-8')) + + +class WSRequest: + + def __init__(self, env, start_response): + self.env = env + self.start_response = start_response + self.version = None + + req = Request(env) + self.method = req.method + self.path = req.path + self.segs = [s for s in self.path.split('/') if s] + + self.rsp = Response(status=200) + + try: + version_str = self.segs[0] + except IndexError: + return + + p = re.compile('^v(?P.+)$') + m = p.match(version_str) + if m: + self.version = m.group('ver') + + self.prepath = [version_str] + self.postpath = self.segs[1:] + + def setHeader(self, name, value): + self.rsp.headers[name] = value + + def setResponseCode(self, code, message=None): + if not isinstance(code, (int, long)): + raise TypeError("HTTP response code must be int or long") + if message: + self.rsp.status = str(code) + " " + message + else: + self.rsp.status = code + + def sendResponse(self, body): + self.rsp.body = body + return self.rsp(self.env, self.start_response) + + +class WSRes: + + def _get_interface_doc(self, request, arg): + request.setHeader("Content-Type", "text/plain") + return self.mgr.interface_doc("/" + "/".join(request.prepath)) + + def __init__(self, version='1.0'): + self.version = version + self.mgr = WSRequestHandler() + self.register_request(self._get_interface_doc, + "GET", (WSPathStaticString("doc"),), + """Get a summary of requests supported by this + web service interface.""") + + def register_request(self, handler, request_method, path_components, doc): + self.mgr.register(handler, request_method, path_components, doc) + + def render(self, request): + return self.mgr.handle(request) + + +class wsapi: + + _versions = {'1.0': WSRes('1.0')} + + @classmethod + def get_version(cls, version): + return cls._versions[version] + + def application(self, env, start_response): + wsreq = WSRequest(env, start_response) + if wsreq.version in wsapi._versions: + body = wsapi._versions[wsreq.version].render(wsreq) + else: + body = notFound(wsreq, "") + return wsreq.sendResponse(body) + + def __call__(self): + server = WSGIServer((FLAGS.wsapi_host, FLAGS.wsapi_port), + self.application) + server.serve_forever() diff --git a/ryu/base/__init__.py b/ryu/base/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py new file mode 100644 index 00000000..39474e0e --- /dev/null +++ b/ryu/base/app_manager.py @@ -0,0 +1,45 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import itertools +import logging + +from ryu import utils +from ryu.controller.handler import register_instance + +LOG = logging.getLogger('ryu.base.app_manager') + + +class AppManager(object): + def __init__(self): + self.applications = {} + + def load(self, app_mod_name, *args, **kwargs): + # for now, only single instance of a given module + # Do we need to support multiple instances? + # Yes, maybe for slicing. + assert app_mod_name not in self.applications + + cls = utils.import_object(app_mod_name) + app = cls(*args, **kwargs) + register_instance(app) + + self.applications[app_mod_name] = app + + def load_apps(self, app_lists, *args, **kwargs): + for app in itertools.chain.from_iterable([app_list.split(',') + for app_list in app_lists]): + self.load(app, *args, **kwargs) + LOG.info('loading app %s', app) diff --git a/ryu/controller/__init__.py b/ryu/controller/__init__.py new file mode 100644 index 00000000..059122a7 --- /dev/null +++ b/ryu/controller/__init__.py @@ -0,0 +1,14 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . diff --git a/ryu/controller/controller.py b/ryu/controller/controller.py new file mode 100644 index 00000000..186f1fc1 --- /dev/null +++ b/ryu/controller/controller.py @@ -0,0 +1,201 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import gflags +import logging +import gevent +from gevent.server import StreamServer +from gevent.queue import Queue + +from ryu.ofproto import ofproto +from ryu.ofproto import ofproto_parser +from ryu.ofproto import ofproto_v1_0 +from ryu.ofproto import ofproto_v1_0_parser + +from ryu.controller import dispatcher +from ryu.controller import event +from ryu.controller import handler +from ryu.lib.mac import haddr_to_bin + +LOG = logging.getLogger('ryu.controller.controller') + +FLAGS = gflags.FLAGS +gflags.DEFINE_string('ofp_listen_host', '', 'openflow listen host') +gflags.DEFINE_integer('ofp_tcp_listen_port', ofproto.OFP_TCP_PORT, + 'openflow tcp listen port') + + +class OpenFlowController(object): + def __init__(self): + super(OpenFlowController, self).__init__() + + # entry point + def __call__(self): + #LOG.debug('call') + self.server_loop() + + def server_loop(self): + server = StreamServer((FLAGS.ofp_listen_host, + FLAGS.ofp_tcp_listen_port), + DatapathConnectionFactory) + #LOG.debug('loop') + server.serve_forever() + + +def _deactivate(method): + def deactivate(self): + try: + method(self) + finally: + self.is_active = False + return deactivate + + +class Datapath(object): + supported_ofp_version = { + ofproto_v1_0.OFP_VERSION: (ofproto_v1_0, + ofproto_v1_0_parser), + } + default_ofp_version = ofproto_v1_0.OFP_VERSION + + def __init__(self, socket, address): + super(Datapath, self).__init__() + + self.socket = socket + self.address = address + self.is_active = True + + # XIX limit queue size somehow to prevent it from eating memory up + self.recv_q = Queue() + self.send_q = Queue() + + self.ev_q = dispatcher.EventQueue(handler.handshake_dispatcher) + + self.version_sent = None + self.version_recv = None + self.version_used = None + self.set_version(self.default_ofp_version) + self.id = None # datapath_id is unknown yet + self.ports = None + + def set_version(self, version): + assert version in self.supported_ofp_version + self.ofproto, self.ofproto_parser = self.supported_ofp_version[version] + + # Low level socket handling layer + @_deactivate + def _recv_loop(self): + buf = bytearray() + required_len = ofproto.OFP_HEADER_SIZE + + while self.is_active: + ret = self.socket.recv(ofproto.OFP_MSG_SIZE_MAX) + if len(ret) == 0: + self.is_active = False + break + buf += ret + while len(buf) >= required_len: + (version, msg_type, msg_len, xid) = ofproto_parser.header(buf) + required_len = msg_len + if len(buf) < required_len: + break + + msg = ofproto_parser.msg(self, + version, msg_type, msg_len, xid, buf) + #LOG.debug('queue msg %s cls %s', msg, msg.__class__) + self.recv_q.put(msg) + + buf = buf[required_len:] + required_len = ofproto.OFP_HEADER_SIZE + + @_deactivate + def _send_loop(self): + while self.is_active: + buf = self.send_q.get() + self.socket.sendall(buf) + + def send(self, buf): + self.send_q.put(buf) + + def send_msg(self, msg): + assert isinstance(msg, self.ofproto_parser.MsgBase) + msg.serialize() + # LOG.debug('send_msg %s', msg) + self.send(msg.buf) + + def serve(self): + send_thr = gevent.spawn(self._send_loop) + ev_thr = gevent.spawn(self._event_loop) + + # send hello message immediately + self.version_sent = self.ofproto.OFP_VERSION + hello = self.ofproto_parser.OFPHello(self) + self.send_msg(hello) + + self._recv_loop() + gevent.joinall([ev_thr, send_thr]) + + @_deactivate + def _event_loop(self): + while self.is_active: + msg = self.recv_q.get() + #LOG.debug('_event_loop ev %s cls %s', msg, msg.__class__) + self.ev_q.queue(event.ofp_msg_to_ev(msg)) + + def send_ev(self, ev): + #LOG.debug('send_ev %s', ev) + self.ev_q.queue(ev) + + # + # Utility methods for convenience + # + def send_packet_out(self, buffer_id=0xffffffff, in_port=None, + actions=None, data=None): + if in_port is None: + in_port = self.ofproto.OFPP_NONE + packet_out = self.ofproto_parser.OFPPacketOut( + self, buffer_id, in_port, actions, data) + self.send_msg(packet_out) + + def send_flow_mod(self, match, cookie, command, idle_timeout, hard_timeout, + priority, buffer_id=0xffffffff, + out_port=None, flags=0, actions=None): + if out_port is None: + out_port = self.ofproto.OFPP_NONE + flow_mod = self.ofproto_parser.OFPFlowMod( + self, match, cookie, command, idle_timeout, hard_timeout, + priority, buffer_id, out_port, flags, actions) + self.send_msg(flow_mod) + + def send_delete_all_flows(self): + addr = haddr_to_bin('00:00:00:00:00:00') + match = self.ofproto_parser.OFPMatch(self.ofproto.OFPFW_ALL, + 0, addr, addr, 0, 0, + 0, 0, 0, 0, 0, 0, 0) + self.send_flow_mod( + match=match, cookie=0, command=self.ofproto.OFPFC_DELETE, + idle_timeout=0, hard_timeout=0, priority=0, buffer_id=0, + out_port=self.ofproto.OFPP_NONE, flags=0, actions=None) + + def send_barrier(self): + barrier_request = self.ofproto_parser.OFPBarrierRequest(self) + self.send_msg(barrier_request) + + +def DatapathConnectionFactory(socket, address): + LOG.debug('connected socket:%s address:%s', socket, address) + + datapath = Datapath(socket, address) + datapath.serve() diff --git a/ryu/controller/dispatcher.py b/ryu/controller/dispatcher.py new file mode 100644 index 00000000..188c41a3 --- /dev/null +++ b/ryu/controller/dispatcher.py @@ -0,0 +1,108 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import copy +import logging +from gevent import queue + +LOG = logging.getLogger('ryu.controller.dispatcher') + + +class EventQueue(object): + def __init__(self, dispatcher): + self.dispatcher = dispatcher + self.is_dispatching = False + self.ev_q = queue.Queue() + + def set_dispatcher(self, dispatcher): + self.dispatcher = dispatcher + + def queue_raw(self, ev): + self.ev_q.put(ev) + + class _EventQueueGuard(object): + def __init__(self, ev_q): + self.ev_q = ev_q + + def __enter__(self): + self.ev_q.is_dispatching = True + + def __exit__(self, type, value, traceback): + self.ev_q.is_dispatching = False + return False + + def queue(self, ev): + if self.is_dispatching: + self.queue_raw(ev) + return + + with self._EventQueueGuard(self): + assert self.ev_q.empty() + + self.dispatcher(ev) + while not self.ev_q.empty(): + ev = self.ev_q.get() + self.dispatcher(ev) + + +class EventDispatcher(object): + def __init__(self, name): + self.name = name + self.events = {} + + def register_handler(self, ev_cls, handler): + assert callable(handler) + self.events.setdefault(ev_cls, []) + self.events[ev_cls].append(handler) + + def register_handlers(self, handlers): + for ev_cls, h in handlers: + self.register_handler(ev_cls, h) + + def unregister_handler(self, ev_cls, handler): + del self.events[ev_cls][handler] + + def register_static(self, ev_cls): + '''helper decorator to statically register handler for event class''' + def register(handler): + '''helper decorator to register handler statically ''' + if isinstance(handler, staticmethod): + # class staticmethod is not callable. + handler = handler.__func__ + self.register_handler(ev_cls, handler) + return handler + return register + + def __call__(self, ev): + self.dispatch(ev) + + def dispatch(self, ev): + #LOG.debug('dispatch %s', ev) + if ev.__class__ not in self.events: + LOG.info('unhandled event %s', ev) + return + + # Is this necessary? + # + # copy handler list because the list is not stable. + # event handler may block/switch thread execution + # and un/register other handlers. + # + handlers = copy.copy(self.events[ev.__class__]) + + for h in handlers: + ret = h(ev) + if ret is False: + break diff --git a/ryu/controller/event.py b/ryu/controller/event.py new file mode 100644 index 00000000..54d135d9 --- /dev/null +++ b/ryu/controller/event.py @@ -0,0 +1,76 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import inspect + + +class EventBase(object): + # Nothing yet + pass + + +class EventOFPMsgBase(EventBase): + def __init__(self, msg): + self.msg = msg + + +# +# Create event type corresponding to OFP Msg +# + +_OFP_MSG_EVENTS = {} + + +def _ofp_msg_name_to_ev_name(msg_name): + return 'Event' + msg_name + + +def ofp_msg_to_ev(msg): + name = _ofp_msg_name_to_ev_name(msg.__class__.__name__) + return _OFP_MSG_EVENTS[name](msg) + + +def _create_ofp_msg_ev_class(msg_cls): + name = _ofp_msg_name_to_ev_name(msg_cls.__name__) + # print 'creating event %s' % name + + if name in _OFP_MSG_EVENTS: + return + + cls = type(name, (EventOFPMsgBase,), + dict(__init__=lambda self, msg: + super(self.__class__, self).__init__(msg))) + globals()[name] = cls + _OFP_MSG_EVENTS[name] = cls + + +def _create_ofp_msg_ev_from_module(modname): + (f, s, t) = modname.rpartition('.') + mod = __import__(modname, fromlist=[f]) + print mod + for k, cls in mod.__dict__.items(): + if not inspect.isclass(cls): + continue + if 'cls_msg_type' not in cls.__dict__: + continue + _create_ofp_msg_ev_class(cls) + + +# TODO:XXX +_PARSER_MODULE_LIST = ['ryu.ofproto.ofproto_v1_0_parser'] + +for m in _PARSER_MODULE_LIST: + # print 'loading module %s' % m + _create_ofp_msg_ev_from_module(m) diff --git a/ryu/controller/handler.py b/ryu/controller/handler.py new file mode 100644 index 00000000..b60b6fa6 --- /dev/null +++ b/ryu/controller/handler.py @@ -0,0 +1,219 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import copy +import inspect +import logging +import struct + +from ryu.controller import event +from ryu.controller import dispatcher +from ryu.lib.mac import haddr_to_bin + +LOG = logging.getLogger('ryu.controller.handler') + +handshake_dispatcher = dispatcher.EventDispatcher('handshake') +config_dispatcher = dispatcher.EventDispatcher('config') +main_dispatcher = dispatcher.EventDispatcher('main') + + +def set_ev_cls(ev_cls, dispatchers=None): + def _set_ev_cls_dec(handler): + handler.ev_cls = ev_cls + if dispatchers is not None: + handler.dispatchers = dispatchers + return handler + return _set_ev_cls_dec + + +def _is_ev_handler(meth): + return 'ev_cls' in meth.__dict__ + + +def _listify(may_list): + if may_list is None: + may_list = [] + if not isinstance(may_list, list): + may_list = [may_list] + return may_list + + +def _get_hnd_spec_dispatchers(handler, dispatchers): + hnd_spec_dispatchers = _listify(getattr(handler, 'dispatchers', None)) + # LOG.debug("hnd_spec_dispatchers %s", hnd_spec_dispatchers) + if hnd_spec_dispatchers: + _dispatchers = copy.copy(dispatchers) + _dispatchers.extend(hnd_spec_dispatchers) + else: + _dispatchers = dispatchers + + return _dispatchers + + +def register_cls(dispatchers=None): + dispatchers = _listify(dispatchers) + + def _register_cls_method(cls): + for k, f in inspect.getmembers(cls, inspect.isfunction): + # LOG.debug('cls %s k %s f %s', cls, k, f) + if not _is_ev_handler(f): + continue + + _dispatchers = _get_hnd_spec_dispatchers(f, dispatchers) + # LOG.debug("_dispatchers %s", _dispatchers) + for d in _dispatchers: + # LOG.debug('register dispatcher %s ev %s cls %s k %s f %s', + # d.name, f.ev_cls, cls, k, f) + d.register_handler(f.ev_cls, f) + + return _register_cls_method + + +def register_instance(i, dispatchers=None): + dispatchers = _listify(dispatchers) + + for k, m in inspect.getmembers(i, inspect.ismethod): + # LOG.debug('instance %s k %s m %s', i, k, m) + if not _is_ev_handler(m): + continue + + _dispatchers = _get_hnd_spec_dispatchers(m, dispatchers) + # LOG.debug("_dispatchers %s", _dispatchers) + for d in _dispatchers: + # LOG.debug('register dispatcher %s ev %s k %s m %s', + # d.name, m.ev_cls, k, m) + d.register_handler(m.ev_cls, m) + + +@register_cls([handshake_dispatcher, config_dispatcher, main_dispatcher]) +class EchoHandler(object): + @staticmethod + @set_ev_cls(event.EventOFPEchoRequest) + def echo_request_handler(ev): + msg = ev.msg + # LOG.debug('echo request msg %s %s', msg, str(msg.data)) + datapath = msg.datapath + echo_reply = datapath.ofproto_parser.OFPEchoReply(datapath) + echo_reply.data = msg.data + datapath.send_msg(echo_reply) + + @staticmethod + @set_ev_cls(event.EventOFPEchoReply) + def echo_reply_handler(ev): + # do nothing + # msg = ev.msg + # LOG.debug('echo reply ev %s %s', msg, str(msg.data)) + pass + + +@register_cls([handshake_dispatcher, config_dispatcher, main_dispatcher]) +class ErrorMsgHandler(object): + @staticmethod + @set_ev_cls(event.EventOFPErrorMsg) + def error_msg_handler(ev): + msg = ev.msg + LOG.debug('error msg ev %s type 0x%x code 0x%x %s', + msg, msg.type, msg.code, str(msg.data)) + msg.datapath.is_active = False + + +@register_cls(handshake_dispatcher) +class HandShakeHandler(object): + @staticmethod + @set_ev_cls(event.EventOFPHello) + def hello_handler(ev): + LOG.debug('hello ev %s', ev) + msg = ev.msg + datapath = msg.datapath + + # TODO: check if received version is supported. + # pre 1.0 is not supported + if msg.version not in datapath.supported_ofp_version: + # send the error + error_msg = datapath.ofproto_parser.OFPErrorMsg(datapath) + error_msg.type = datapath.ofproto.OFPET_HELLO_FAILED + error_msg.code = datapath.ofproto.OFPHFC_INCOMPATIBLE + error_msg.data = 'unsupported version 0x%x' % msg.version + datapath.send_msg(error_msg) + return + + datapath.version = min(datapath.version_sent, msg.version) + datapath.set_version(datapath.version) + + # now send feature + features_reqeust = datapath.ofproto_parser.OFPFeaturesRequest(datapath) + datapath.send_msg(features_reqeust) + + # now move on to config state + LOG.debug('move onto config mode') + datapath.ev_q.set_dispatcher(config_dispatcher) + + +@register_cls(config_dispatcher) +class ConfigHandler(object): + @staticmethod + @set_ev_cls(event.EventOFPSwitchFeatures) + def switch_features_handler(ev): + msg = ev.msg + datapath = msg.datapath + LOG.debug('switch features ev %s', msg) + + datapath.id = msg.datapath_id + datapath.ports = msg.ports + + ofproto = datapath.ofproto + ofproto_parser = datapath.ofproto_parser + set_config = ofproto_parser.OFPSetConfig( + datapath, ofproto.OFPC_FRAG_NORMAL, + 128 # TODO:XXX + ) + datapath.send_msg(set_config) + + # + # drop all flows in order to put datapath into unknown state + # + datapath.send_delete_all_flows() + + datapath.send_barrier() + + # The above OFPC_DELETE request may trigger flow removed event. + # Just ignore them. + @staticmethod + @set_ev_cls(event.EventOFPFlowRemoved) + def flow_removed_handler(ev): + LOG.debug("flow removed ev %s msg %s", ev, ev.msg) + + @staticmethod + @set_ev_cls(event.EventOFPBarrierReply) + def barrier_reply_handler(ev): + LOG.debug('barrier reply ev %s msg %s', ev, ev.msg) + + # move on to main state + LOG.debug('move onto main mode') + ev.msg.datapath.ev_q.set_dispatcher(main_dispatcher) + + +@register_cls(main_dispatcher) +class MainHandler(object): + @staticmethod + @set_ev_cls(event.EventOFPFlowRemoved) + def flow_removed_handler(ev): + msg = ev.msg + + @staticmethod + @set_ev_cls(event.EventOFPPortStatus) + def port_status_handler(ev): + msg = ev.msg + LOG.debug('port status %s', msg.reason) diff --git a/ryu/controller/mac_to_network.py b/ryu/controller/mac_to_network.py new file mode 100644 index 00000000..bc189296 --- /dev/null +++ b/ryu/controller/mac_to_network.py @@ -0,0 +1,56 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import logging + +from ryu.exception import MacAddressDuplicated +from ryu.lib.mac import haddr_to_str + +LOG = logging.getLogger('ryu.controller.mac_to_network') + + +class MacToNetwork(object): + def __init__(self, nw): + self.mac_to_net = {} + self.dpid = {} + self.nw = nw + + def get_network(self, mac, default=None): + return self.mac_to_net.get(mac, default) + + def add_mac(self, mac, nw_id, nw_id_external=None): + _nw_id = self.mac_to_net.get(mac) + if _nw_id == nw_id: + return + + # allow changing from nw_id_external to known nw id + if _nw_id is None or _nw_id == nw_id_external: + self.mac_to_net[mac] = nw_id + LOG.debug('overwrite nw_id: mac %s nw old %s new %s', + haddr_to_str(mac), _nw_id, nw_id) + return + + if nw_id == nw_id_external: + # this can happens when the packet traverses + # VM-> tap-> ovs-> ext-port-> wire-> ext-port-> ovs-> tap-> VM + return + + LOG.warn('duplicated nw_id: mac %s nw old %s new %s', + haddr_to_str(mac), _nw_id, nw_id) + + raise MacAddressDuplicated(mac=mac) + + def del_mac(self, mac): + del self.mac_to_net[mac] diff --git a/ryu/controller/mac_to_port.py b/ryu/controller/mac_to_port.py new file mode 100644 index 00000000..32e61f49 --- /dev/null +++ b/ryu/controller/mac_to_port.py @@ -0,0 +1,48 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License +# +# 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 . + +import logging +from ryu.lib.mac import haddr_to_str + +LOG = logging.getLogger('ryu.controller.mac_to_port') + + +class MacToPortTable(object): + """MAC addr <-> (dpid, port name)""" + + def __init__(self): + self.mac_to_port = {} + + def dpid_add(self, dpid): + LOG.debug('dpid_add: 0x%016x', dpid) + self.mac_to_port.setdefault(dpid, {}) + + def port_add(self, dpid, port, mac): + """ + :returns: old port if learned. (this may be = port) + None otherwise + """ + old_port = self.mac_to_port[dpid].get(mac, None) + self.mac_to_port[dpid][mac] = port + + if old_port is not None and old_port != port: + LOG.debug('port_add: 0x%016x 0x%04x %s', + dpid, port, haddr_to_str(mac)) + + return old_port + + def port_get(self, dpid, mac): + # LOG.debug('dpid 0x%016x mac %s', dpid, haddr_to_str(mac)) + return self.mac_to_port[dpid].get(mac) diff --git a/ryu/controller/network.py b/ryu/controller/network.py new file mode 100644 index 00000000..db8c8960 --- /dev/null +++ b/ryu/controller/network.py @@ -0,0 +1,155 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License +# +# 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 . + +import logging + +from ryu.exception import NetworkNotFound, NetworkAlreadyExist +from ryu.exception import PortAlreadyExist, PortNotFound, PortUnknown +from ryu.app.rest_nw_id import NW_ID_UNKNOWN + +LOG = logging.getLogger('ryu.controller.network') + + +class network(object): + def __init__(self, nw_id_unknown=NW_ID_UNKNOWN): + self.nw_id_unknown = nw_id_unknown + self.networks = {} + self.dpids = {} + + def _check_nw_id_unknown(self, network_id): + if network_id == self.nw_id_unknown: + raise NetworkAlreadyExist(network_id=network_id) + + def list_networks(self): + return self.networks.keys() + + def update_network(self, network_id): + self._check_nw_id_unknown(network_id) + self.networks.setdefault(network_id, set()) + + def create_network(self, network_id): + self._check_nw_id_unknown(network_id) + if network_id in self.networks: + raise NetworkAlreadyExist(network_id=network_id) + + self.networks[network_id] = set() + + def remove_network(self, network_id): + try: + del(self.networks[network_id]) + except KeyError: + raise NetworkNotFound(network_id=network_id) + + def list_ports(self, network_id): + try: + # use list() to keep compatibility for output + # set() isn't json serializable + return list(self.networks[network_id]) + except KeyError: + raise NetworkNotFound(network_id=network_id) + + def _update_port(self, network_id, dpid, port, port_may_exist): + def _known_nw_id(nw_id): + return nw_id is not None and nw_id != self.nw_id_unknown + + self._check_nw_id_unknown(network_id) + try: + old_network_id = self.dpids.get(dpid, {}).get(port, None) + if ((dpid, port) in self.networks[network_id] or + _known_nw_id(old_network_id)): + if not port_may_exist: + raise PortAlreadyExist(network_id=network_id, + dpid=dpid, port=port) + + if old_network_id != network_id: + self.networks[network_id].add((dpid, port)) + if _known_nw_id(old_network_id): + self.networks[old_network_id].remove((dpid, port)) + except KeyError: + raise NetworkNotFound(network_id=network_id) + + self.dpids.setdefault(dpid, {}) + self.dpids[dpid][port] = network_id + + def create_port(self, network_id, dpid, port): + self._update_port(network_id, dpid, port, False) + + def update_port(self, network_id, dpid, port): + self._update_port(network_id, dpid, port, True) + + def remove_port(self, network_id, dpid, port): + try: + self.networks[network_id].remove((dpid, port)) + except KeyError: + raise NetworkNotFound(network_id=network_id) + except ValueError: + raise PortNotFound(network_id=network_id, dpid=dpid, port=port) + + del self.dpids[dpid][port] + + def same_network(self, dpid, nw_id, out_port, allow_nw_id_external=None): + assert nw_id != self.nw_id_unknown + dp = self.dpids.get(dpid, {}) + out_nw = dp.get(out_port) + + if nw_id == out_nw: + return True + + if (allow_nw_id_external is not None and + (allow_nw_id_external == nw_id or allow_nw_id_external == out_nw)): + # allow external network -> known network id + return True + + LOG.debug('blocked dpid %s nw_id %s out_port %d out_nw %s' + 'external %s', + dpid, nw_id, out_port, out_nw, allow_nw_id_external) + return False + + def get_network(self, dpid, port): + try: + return self.dpids[dpid][port] + except KeyError: + raise PortUnknown(dpid=dpid, port=port) + + def add_datapath(self, ofp_switch_features): + datapath = ofp_switch_features.datapath + dpid = ofp_switch_features.datapath_id + ports = ofp_switch_features.ports + self.dpids.setdefault(dpid, {}) + dp = self.dpids[dpid] + for port_no in ports: + if port_no == 0 or port_no >= datapath.ofproto.OFPP_MAX: + # skip fake output ports + continue + + if port_no not in dp: + dp[port_no] = self.nw_id_unknown + + def filter_ports(self, dpid, in_port, nw_id, allow_nw_id_external=None): + assert nw_id != self.nw_id_unknown + ret = [] + + ports = self.dpids.get(dpid, {}) + for port_no, _nw_id in ports.items(): + if port_no == in_port: + continue + + if _nw_id == nw_id: + ret.append(port_no) + elif (allow_nw_id_external is not None and + _nw_id == allow_nw_id_external): + ret.append(port_no) + + return ret diff --git a/ryu/exception.py b/ryu/exception.py new file mode 100644 index 00000000..4ced457d --- /dev/null +++ b/ryu/exception.py @@ -0,0 +1,63 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + + +class RyuException(Exception): + message = 'An unknown exception' + + def __init__(self, msg=None, **kwargs): + self.kwargs = kwargs + if msg is None: + msg = self.message + + try: + msg = msg % kwargs + except Exception as e: + msg = self.message + + super(RyuException, self).__init__(msg) + + +class OFPUnknownVersion(RyuException): + message = 'unknown version %(version)x' + + +class OFPMalformedMessage: + message = 'malformed message' + + +class NetworkNotFound(RyuException): + message = 'no such network id %(network_id)s' + + +class NetworkAlreadyExist(RyuException): + message = 'network id %(network_id)s already exists' + + +class PortNotFound(RyuException): + message = 'no such port (%(dpid)s, %(port)s) in network %(network_id)s' + + +class PortAlreadyExist(RyuException): + message = 'port (%(dpid)s, %(port)s) in network %(network_id)s ' \ + 'already exists' + + +class PortUnknown(RyuException): + message = 'unknown network id for port (%(dpid)s %(port)s)' + + +class MacAddressDuplicated(RyuException): + message = 'MAC address %(mac)s is duplicated' diff --git a/ryu/flags.py b/ryu/flags.py new file mode 100644 index 00000000..c3ad4062 --- /dev/null +++ b/ryu/flags.py @@ -0,0 +1,24 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . +""" +global flags +""" + +import gflags + +FLAGS = gflags.FLAGS + +# GLOBAL flags +gflags.DEFINE_boolean('monkey_patch', False, 'do monkey patch') diff --git a/ryu/lib/__init__.py b/ryu/lib/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ryu/lib/mac.py b/ryu/lib/mac.py new file mode 100644 index 00000000..2dbf6e80 --- /dev/null +++ b/ryu/lib/mac.py @@ -0,0 +1,23 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License +# +# 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 . + + +def haddr_to_str(addr): + return ''.join(['%02x:' % ord(char) for char in addr[0:6]])[:-1] + + +def haddr_to_bin(string): + return ''.join(['%c' % chr(int(i, 16)) for i in + string.split(':')]) diff --git a/ryu/log.py b/ryu/log.py new file mode 100644 index 00000000..4c3159b5 --- /dev/null +++ b/ryu/log.py @@ -0,0 +1,82 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import gflags +import inspect +import logging +import os +import sys + + +FLAGS = gflags.FLAGS + +gflags.DEFINE_integer('default_log_level', None, 'default log level') +gflags.DEFINE_bool('verbose', False, 'show debug output') + +gflags.DEFINE_bool('use_stderr', True, 'log to standard error') +gflags.DEFINE_string('use_syslog', False, 'output to syslog') +gflags.DEFINE_string('log_dir', None, 'log file directory') +gflags.DEFINE_string('log_file', None, 'log file name') +gflags.DEFINE_string('log_file_mode', '0644', 'default log file permission') + + +_early_log_handler = None + + +def earlyInitLog(level=None): + global _early_log_handler + _early_log_handler = logging.StreamHandler(sys.stderr) + + log = logging.getLogger() + log.addHandler(_early_log_handler) + if level is not None: + log.setLevel(level) + + +def _get_log_file(): + if FLAGS.log_file: + return FLAGS.log_file + if FLAGS.log_dir: + return os.path.join(FLAGS.logdir, + os.path.basename(inspect.stack()[-1][1])) + '.log' + return None + + +def initLog(): + global _early_log_handler + + log = logging.getLogger() + if FLAGS.use_stderr: + log.addHandler(logging.StreamHandler(sys.stderr)) + if _early_log_handler is not None: + log.removeHandler(_early_log_handler) + _early_log_handler = None + + if FLAGS.use_syslog: + syslog = logging.handlers.SysLogHandler(address='/dev/log') + log.addHandler(syslog) + + log_file = _get_log_file() + if log_file is not None: + logging.addHandler(logging.handlers.WatchedFileHandler(log_file)) + mode = int(FLAGS.log_file_mnode, 8) + os.chmod(log_file, mode) + + if FLAGS.verbose: + log.setLevel(logging.DEBUG) + elif FLAGS.default_log_level is not None: + log.setLevel(FLAGS.default_log_level) + else: + log.setLevel(logging.INFO) diff --git a/ryu/ofproto/__init__.py b/ryu/ofproto/__init__.py new file mode 100644 index 00000000..58736d4a --- /dev/null +++ b/ryu/ofproto/__init__.py @@ -0,0 +1,16 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +from . import ofproto_v1_0 as ofproto diff --git a/ryu/ofproto/ofproto_parser.py b/ryu/ofproto/ofproto_parser.py new file mode 100644 index 00000000..4bc31f87 --- /dev/null +++ b/ryu/ofproto/ofproto_parser.py @@ -0,0 +1,49 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import logging +import struct + +from ryu import exception + +from . import ofproto + +LOG = logging.getLogger('ryu.ofproto.ofproto_parser') + + +def header(buf): + assert len(buf) >= ofproto.OFP_HEADER_SIZE + #LOG.debug('len %d bufsize %d', len(buf), ofproto.OFP_HEADER_SIZE) + return struct.unpack_from(ofproto.OFP_HEADER_PACK_STR, buffer(buf)) + + +_MSG_PARSERS = {} + + +def register_msg_parser(version): + def register(msg_parser): + _MSG_PARSERS[version] = msg_parser + return msg_parser + return register + + +def msg(datapath, version, msg_type, msg_len, xid, buf): + assert len(buf) >= msg_len + + msg_parser = _MSG_PARSERS.get(version) + if msg_parser is None: + raise exception.OFPUnknownVersion(version=version) + + return msg_parser(datapath, version, msg_type, msg_len, xid, buf) diff --git a/ryu/ofproto/ofproto_v1_0.py b/ryu/ofproto/ofproto_v1_0.py new file mode 100644 index 00000000..9ac3b957 --- /dev/null +++ b/ryu/ofproto/ofproto_v1_0.py @@ -0,0 +1,437 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +from struct import calcsize + +# define constants +OFP_VERSION = 0x01 +OFP_MAX_TABLE_NAME_LEN = 32 +OFP_MAX_TABLE_NAME_LEN_STR = str(OFP_MAX_TABLE_NAME_LEN) +OFP_MAX_PORT_NAME_LEN = 16 +OFP_TCP_PORT = 6633 +OFP_SSL_PORT = 6633 +OFP_ETH_ALEN = 6 +OFP_ETH_ALEN_STR = str(OFP_ETH_ALEN) + +# enum ofp_port +OFPP_MAX = 0xff00 +OFPP_IN_PORT = 0xfff8 # Send the packet out the input port. This + # virtual port must be explicitly used + # in order to send back out of the input + # port. +OFPP_TABLE = 0xfff9 # Perform actions in flow table. + # NB: This can only be the destination + # port for packet-out messages. +OFPP_NORMAL = 0xfffa # Process with normal L2/L3 switching. +OFPP_FLOOD = 0xfffb # All physical ports except input port and + # those disabled by STP. +OFPP_ALL = 0xfffc # All physical ports except input port. +OFPP_CONTROLLER = 0xfffd # Send to controller. +OFPP_LOCAL = 0xfffe # Local openflow "port". +OFPP_NONE = 0xffff # Not associated with a physical port. + +# enum ofp_type +OFPT_HELLO = 0 # Symmetric message +OFPT_ERROR = 1 # Symmetric message +OFPT_ECHO_REQUEST = 2 # Symmetric message +OFPT_ECHO_REPLY = 3 # Symmetric message +OFPT_VENDOR = 4 # Symmetric message +OFPT_FEATURES_REQUEST = 5 # Controller/switch message +OFPT_FEATURES_REPLY = 6 # Controller/switch message +OFPT_GET_CONFIG_REQUEST = 7 # Controller/switch message +OFPT_GET_CONFIG_REPLY = 8 # Controller/switch message +OFPT_SET_CONFIG = 9 # Controller/switch message +OFPT_PACKET_IN = 10 # Async message +OFPT_FLOW_REMOVED = 11 # Async message +OFPT_PORT_STATUS = 12 # Async message +OFPT_PACKET_OUT = 13 # Controller/switch message +OFPT_FLOW_MOD = 14 # Controller/switch message +OFPT_PORT_MOD = 15 # Controller/switch message +OFPT_STATS_REQUEST = 16 # Controller/switch message +OFPT_STATS_REPLY = 17 # Controller/switch message +OFPT_BARRIER_REQUEST = 18 # Controller/switch message +OFPT_BARRIER_REPLY = 19 # Controller/switch message +OFPT_QUEUE_GET_CONFIG_REQUEST = 20 # Controller/switch message +OFPT_QUEUE_GET_CONFIG_REPLY = 21 # Controller/switch message + +OFP_HEADER_PACK_STR = '!BBHI' +OFP_HEADER_SIZE = 8 +OFP_MSG_SIZE_MAX = 65535 +assert calcsize(OFP_HEADER_PACK_STR) == OFP_HEADER_SIZE + +# define constants +OFP_DEFAULT_MISS_SEND_LEN = 128 + +# enum ofp_config_flags +OFPC_FRAG_NORMAL = 0 # No special handling for fragments. +OFPC_FRAG_DROP = 1 # Drop fragments. +OFPC_FRAG_REASM = 2 # Reassemble (only if OFPC_IP_REASM set). +OFPC_FRAG_NX_MATCH = 3 # Make first fragments available for matching. +OFPC_FRAG_MASK = 3 + +OFP_SWITCH_CONFIG_PACK_STR = '!HH' +OFP_SWITCH_CONFIG_SIZE = 12 +assert (calcsize(OFP_SWITCH_CONFIG_PACK_STR) + OFP_HEADER_SIZE == + OFP_SWITCH_CONFIG_SIZE) + +# enum ofp_capabilities +OFPC_FLOW_STATS = 1 << 0 # Flow statistics. +OFPC_TABLE_STATS = 1 << 1 # Table statistics. +OFPC_PORT_STATS = 1 << 2 # Port statistics. +OFPC_STP = 1 << 3 # 802.1d spanning tree. +OFPC_RESERVED = 1 << 4 # Reserved, must not be set. +OFPC_IP_REASM = 1 << 5 # Can reassemble IP fragments. +OFPC_QUEUE_STATS = 1 << 6 # Queue statistics. +OFPC_ARP_MATCH_IP = 1 << 7 # Match IP addresses in ARP pkts. + +# enum ofp_port_config +OFPPC_PORT_DOWN = 1 << 0 # Port is administratively down. +OFPPC_NO_STP = 1 << 1 # Disable 802.1D spanning tree on port. +OFPPC_NO_RECV = 1 << 2 # Drop all packets except 802.1D + # spanning tree packets +OFPPC_NO_RECV_STP = 1 << 3 # Drop received 802.1D STP packets. +OFPPC_NO_FLOOD = 1 << 4 # Do not include this port when flooding. +OFPPC_NO_FWD = 1 << 5 # Drop packets forwarded to port. +OFPPC_NO_PACKET_IN = 1 << 6 # Do not send packet-in msgs for port. + +# enum ofp_port_state +OFPPS_LINK_DOWN = 1 << 0 # No physical link present. +OFPPS_STP_LISTEN = 0 << 8 # Not learning or relaying frames. +OFPPS_STP_LEARN = 1 << 8 # Learning but not relaying frames. +OFPPS_STP_FORWARD = 2 << 8 # Learning and relaying frames. +OFPPS_STP_BLOCK = 3 << 8 # Not part of spanning tree. +OFPPS_STP_MASK = 3 << 8 # Bit mask for OFPPS_STP_* values. + +# enum ofp_port_features +OFPPF_10MB_HD = 1 << 0 # 10 Mb half-duplex rate support. +OFPPF_10MB_FD = 1 << 1 # 10 Mb full-duplex rate support. +OFPPF_100MB_HD = 1 << 2 # 100 Mb half-duplex rate support. +OFPPF_100MB_FD = 1 << 3 # 100 Mb full-duplex rate support. +OFPPF_1GB_HD = 1 << 4 # 1 Gb half-duplex rate support. +OFPPF_1GB_FD = 1 << 5 # 1 Gb full-duplex rate support. +OFPPF_10GB_FD = 1 << 6 # 10 Gb full-duplex rate support. +OFPPF_COPPER = 1 << 7 # Copper medium. +OFPPF_FIBER = 1 << 8 # Fiber medium. +OFPPF_AUTONEG = 1 << 9 # Auto-negotiation. +OFPPF_PAUSE = 1 << 10 # Pause. +OFPPF_PAUSE_ASYM = 1 << 11 # Asymmetric pause. + +_OFP_PHY_PORT_PACK_STR = 'H' + OFP_ETH_ALEN_STR + 's' + str(OFP_MAX_PORT_NAME_LEN) + 'sIIIIII' +OFP_PHY_PORT_PACK_STR = '!' + _OFP_PHY_PORT_PACK_STR +OFP_PHY_PORT_SIZE = 48 +assert calcsize(OFP_PHY_PORT_PACK_STR) == OFP_PHY_PORT_SIZE + +OFP_SWITCH_FEATURES_PACK_STR = '!QIB3xII' +OFP_SWITCH_FEATURES_SIZE = 32 +assert (calcsize(OFP_SWITCH_FEATURES_PACK_STR) + OFP_HEADER_SIZE == + OFP_SWITCH_FEATURES_SIZE) + +# enum ofp_port_reason +OFPPR_ADD = 0 # The port was added. +OFPPR_DELETE = 1 # The port was removed. +OFPPR_MODIFY = 2 # Some attribute of the port has changed. + +OFP_PORT_STATUS_PACK_STR = '!B7x' + _OFP_PHY_PORT_PACK_STR +OFP_PORT_STATUS_DESC_OFFSET = OFP_HEADER_SIZE + 8 +OFP_PORT_STATUS_SIZE = 64 +assert (calcsize(OFP_PORT_STATUS_PACK_STR) + OFP_HEADER_SIZE == + OFP_PORT_STATUS_SIZE) + +OFP_PORT_MOD_PACK_STR = '!H' + OFP_ETH_ALEN_STR + 'BIII4x' +OFP_PORT_MOD_SIZE = 32 +assert calcsize(OFP_PORT_MOD_PACK_STR) + OFP_HEADER_SIZE == OFP_PORT_MOD_SIZE + +# enum ofp_packet_in_reason +OFPR_NO_MATCH = 0 # No matching flow. +OFPR_ACTION = 1 # Action explicitly output to controller. + +OFP_PACKET_IN_PACK_STR = '!IHHBx2x' # the last 2x is for ofp_packet_in::data +OFP_PACKET_IN_SIZE = 20 +OFP_PACKET_IN_DATA_OFFSET = 18 +assert calcsize(OFP_PACKET_IN_PACK_STR) + OFP_HEADER_SIZE == OFP_PACKET_IN_SIZE + +# enum ofp_action_type +OFPAT_OUTPUT = 0 # Output to switch port. +OFPAT_SET_VLAN_VID = 1 # Set the 802.1q VLAN id. +OFPAT_SET_VLAN_PCP = 2 # Set the 802.1q priority. +OFPAT_STRIP_VLAN = 3 # Strip the 802.1q header. +OFPAT_SET_DL_SRC = 4 # Ethernet source address. +OFPAT_SET_DL_DST = 5 # Ethernet destination address. +OFPAT_SET_NW_SRC = 6 # IP source address. +OFPAT_SET_NW_DST = 7 # IP destination address. +OFPAT_SET_NW_TOS = 8 # IP ToS (DSCP field, 6 bits). +OFPAT_SET_TP_SRC = 9 # TCP/UDP source port. +OFPAT_SET_TP_DST = 10 # TCP/UDP destination port. +OFPAT_ENQUEUE = 11 # Output to queue. +OFPAT_VENDOR = 0xffff + +OFP_ACTION_OUTPUT_PACK_STR = '!HHHH' +OFP_ACTION_OUTPUT_SIZE = 8 +assert calcsize(OFP_ACTION_OUTPUT_PACK_STR) == OFP_ACTION_OUTPUT_SIZE +OFP_ACTION_OUTPUT_LEN = 8 + +# define constants +OFP_VLAN_NONE = 0xffff + +OFP_ACTION_VLAN_VID_PACK_STR = '!HHH2x' +OFP_ACTION_VLAN_VID_SIZE = 8 +assert calcsize(OFP_ACTION_VLAN_VID_PACK_STR) == OFP_ACTION_VLAN_VID_SIZE + +OFP_ACTION_VLAN_PCP_PACK_STR = '!HHB3x' +OFP_ACTION_VLAN_PCP_SIZE = 8 +assert calcsize(OFP_ACTION_VLAN_PCP_PACK_STR) == OFP_ACTION_VLAN_PCP_SIZE + +OFP_ACTION_DL_ADDR_PACK_STR = '!HH' + OFP_ETH_ALEN_STR + 'B6x' +OFP_ACTION_DL_ADDR_SIZE = 16 +assert calcsize(OFP_ACTION_DL_ADDR_PACK_STR) == OFP_ACTION_DL_ADDR_SIZE + +OFP_ACTION_NW_ADDR_PACK_STR = '!HHI' +OFP_ACTION_NW_ADDR_SIZE = 8 +assert calcsize(OFP_ACTION_NW_ADDR_PACK_STR) == OFP_ACTION_NW_ADDR_SIZE + +OFP_ACTION_NW_TOS_PACK_STR = '!HHB3x' +OFP_ACTION_NW_TOS_SIZE = 8 +assert calcsize(OFP_ACTION_NW_TOS_PACK_STR) == OFP_ACTION_NW_TOS_SIZE + +OFP_ACTION_TP_PORT_PACK_STR = '!HHH2x' +OFP_ACTION_TP_PORT_SIZE = 8 +assert calcsize(OFP_ACTION_TP_PORT_PACK_STR) == OFP_ACTION_TP_PORT_SIZE + +OFP_ACTION_VENDOR_HEADER_PACK_STR = '!HHI' +OFP_ACTION_VENDOR_HEADER_SIZE = 8 +assert (calcsize(OFP_ACTION_VENDOR_HEADER_PACK_STR) == + OFP_ACTION_VENDOR_HEADER_SIZE) + +OFP_ACTION_HEADER_PACK_STR = '!HH4x' +OFP_ACTION_HEADER_SIZE = 8 +assert calcsize(OFP_ACTION_HEADER_PACK_STR) == OFP_ACTION_HEADER_SIZE + +OFP_ACTION_QUEUE_PACK_STR = '!HHH6xI' +OFP_ACTION_QUEUE_SIZE = 16 +assert calcsize(OFP_ACTION_QUEUE_PACK_STR) == OFP_ACTION_QUEUE_SIZE + +OFP_ACTION_PACK_STR = '!H' +# because of union ofp_action +# OFP_ACTION_SIZE = 8 +# assert calcsize(OFP_ACTION_PACK_STR) == OFP_ACTION_SIZE + +OFP_PACKET_OUT_PACK_STR = '!IHH' +OFP_PACKET_OUT_SIZE = 16 +assert (calcsize(OFP_PACKET_OUT_PACK_STR) + OFP_HEADER_SIZE == + OFP_PACKET_OUT_SIZE) + +# enum ofp_flow_mod_command +OFPFC_ADD = 0 # New flow. +OFPFC_MODIFY = 1 # Modify all matching flows. +OFPFC_MODIFY_STRICT = 2 # Modify entry strictly matching wildcards +OFPFC_DELETE = 3 # Delete all matching flows. +OFPFC_DELETE_STRICT = 4 # Strictly match wildcards and priority. + +# enum ofp_flow_wildcards +OFPFW_IN_PORT = 1 << 0 # Switch input port. +OFPFW_DL_VLAN = 1 << 1 # VLAN vid. +OFPFW_DL_SRC = 1 << 2 # Ethernet source address. +OFPFW_DL_DST = 1 << 3 # Ethernet destination address. +OFPFW_DL_TYPE = 1 << 4 # Ethernet frame type. +OFPFW_NW_PROTO = 1 << 5 # IP protocol. +OFPFW_TP_SRC = 1 << 6 # TCP/UDP source port. +OFPFW_TP_DST = 1 << 7 # TCP/UDP destination port. +OFPFW_NW_SRC_SHIFT = 8 +OFPFW_NW_SRC_BITS = 6 +OFPFW_NW_SRC_MASK = ((1 << OFPFW_NW_SRC_BITS) - 1) << OFPFW_NW_SRC_SHIFT +OFPFW_NW_SRC_ALL = 32 << OFPFW_NW_SRC_SHIFT +OFPFW_NW_DST_SHIFT = 14 +OFPFW_NW_DST_BITS = 6 +OFPFW_NW_DST_MASK = ((1 << OFPFW_NW_DST_BITS) - 1) << OFPFW_NW_DST_SHIFT +OFPFW_NW_DST_ALL = 32 << OFPFW_NW_DST_SHIFT +OFPFW_DL_VLAN_PCP = 1 << 20 # VLAN priority. +OFPFW_NW_TOS = 1 << 21 # IP ToS (DSCP field, 6 bits). +OFPFW_ALL = ((1 << 22) - 1) + +# define constants +OFPFW_ICMP_TYPE = OFPFW_TP_SRC +OFPFW_ICMP_CODE = OFPFW_TP_DST +OFP_DL_TYPE_ETH2_CUTOFF = 0x0600 +OFP_DL_TYPE_NOT_ETH_TYPE = 0x05ff +OFP_VLAN_NONE = 0xffff + +_OFP_MATCH_PACK_STR = 'IH' + OFP_ETH_ALEN_STR + 's' + OFP_ETH_ALEN_STR + 'sHBxHBB2xIIHH' +OFP_MATCH_PACK_STR = '!' + _OFP_MATCH_PACK_STR +OFP_MATCH_SIZE = 40 +assert calcsize(OFP_MATCH_PACK_STR) == OFP_MATCH_SIZE + +OFP_FLOW_PERMANENT = 0 +OFP_DEFAULT_PRIORITY = 0x8000 + +# enum ofp_flow_mod_flags +OFPFF_SEND_FLOW_REM = 1 << 0 # Send flow removed message when flow + # expires or is deleted. +OFPFF_CHECK_OVERLAP = 1 << 1 # Check for overlapping entries first. +OFPFF_EMERG = 1 << 2 # Ramark this is for emergency. + +_OFP_FLOW_MOD_PACK_STR0 = 'QHHHHIHH' +OFP_FLOW_MOD_PACK_STR = '!' + _OFP_MATCH_PACK_STR + _OFP_FLOW_MOD_PACK_STR0 +OFP_FLOW_MOD_PACK_STR0 = '!' + _OFP_FLOW_MOD_PACK_STR0 +OFP_FLOW_MOD_SIZE = 72 +assert calcsize(OFP_FLOW_MOD_PACK_STR) + OFP_HEADER_SIZE == OFP_FLOW_MOD_SIZE + +# enum ofp_flow_removed_reason +OFPRR_IDLE_TIMEOUT = 0 # Flow idle time exceeded idle_timeout. +OFPRR_HARD_TIMEOUT = 1 # Time exceeded hard_timeout. +OFPRR_DELETE = 2 # Evicted by a DELETE flow mod. + +_OFP_FLOW_REMOVED_PACK_STR0 = 'QHBxIIH2xQQ' +OFP_FLOW_REMOVED_PACK_STR = '!' + _OFP_MATCH_PACK_STR + \ + _OFP_FLOW_REMOVED_PACK_STR0 +OFP_FLOW_REMOVED_PACK_STR0 = '!' + _OFP_FLOW_REMOVED_PACK_STR0 +OFP_FLOW_REMOVED_SIZE = 88 +assert (calcsize(OFP_FLOW_REMOVED_PACK_STR) + OFP_HEADER_SIZE == + OFP_FLOW_REMOVED_SIZE) + + +# enum ofp_error_type +OFPET_HELLO_FAILED = 0 # Hello protocol failed. +OFPET_BAD_REQUEST = 1 # Request was not understood. +OFPET_BAD_ACTION = 2 # Error in action description. +OFPET_FLOW_MOD_FAILED = 3 # Problem modifying flow entry. +OFPET_PORT_MOD_FAILED = 4 # OFPT_PORT_MOD failed. +OFPET_QUEUE_OP_FAILED = 5 # Queue operation failed. + +# enum ofp_hello_failed_code +OFPHFC_INCOMPATIBLE = 0 # No compatible version. +OFPHFC_EPERM = 1 # Permissions error. + +# enum ofp_bad_request_code +OFPBRC_BAD_VERSION = 0 # ofp_header.version not supported. +OFPBRC_BAD_TYPE = 1 # ofp_header.type not supported. +OFPBRC_BAD_STAT = 2 # ofp_stats_msg.type not supported. +OFPBRC_BAD_VENDOR = 3 # Vendor not supported (in ofp_vendor_header + # or ofp_stats_msg). +OFPBRC_BAD_SUBTYPE = 4 # Vendor subtype not supported. +OFPBRC_EPERM = 5 # Permissions error. +OFPBRC_BAD_LEN = 6 # Wrong request length for type. +OFPBRC_BUFFER_EMPTY = 7 # Specified buffer has already been used. +OFPBRC_BUFFER_UNKNOWN = 8 # Specified buffer does not exist. + +# enum ofp_bad_action_code +OFPBAC_BAD_TYPE = 0 # Unknown action type. +OFPBAC_BAD_LEN = 1 # Length problem in actions. +OFPBAC_BAD_VENDOR = 2 # Unknown vendor id specified. +OFPBAC_BAD_VENDOR_TYPE = 3 # Unknown action type for vendor id. +OFPBAC_BAD_OUT_PORT = 4 # Problem validating output action. +OFPBAC_BAD_ARGUMENT = 5 # Bad action argument. +OFPBAC_EPERM = 6 # Permissions error. +OFPBAC_TOO_MANY = 7 # Can't handle this many actions. +OFPBAC_BAD_QUEUE = 8 # Problem validating output queue. + +# enum ofp_flow_mod_failed_code +OFPFMFC_ALL_TABLES_FULL = 0 # Flow not added because of full tables. +OFPFMFC_OVERLAP = 1 # Attempted to add overlapping flow with + # CHECK_OVERLAP flags set. +OFPFMFC_EPERM = 2 # Permissions error. +OFPFMFC_BAD_EMERG_TIMEOUT = 3 # Flow not added because of non-zero idle/hard + # timeout. +OFPFMFC_BAD_COMMAND = 4 # Unknown command. +OFPFMFC_UNSUPPORTED = 5 # Unsupported action list - cannot process in + # the order specified. + +# enum ofp_port_mod_failed_code +OFPPMFC_BAD_PORT = 0 # Specified port does not exist. +OFPPMFC_BAD_HW_ADDR = 1 # Specified hardware address is wrong. + +# enum ofp_queue_op_failed_code +OFPQOFC_BAD_PORT = 0 # Invalid port (or port does not exist). +OFPQOFC_BAD_QUEUE = 1 # Queue does not exist. +OFPQOFC_EPERM = 2 # Permissions error. + +OFP_ERROR_MSG_PACK_STR = '!HH' +OFP_ERROR_MSG_SIZE = 12 +assert calcsize(OFP_ERROR_MSG_PACK_STR) + OFP_HEADER_SIZE == OFP_ERROR_MSG_SIZE + +# enum ofp_stats_types +OFPST_DESC = 1 +OFPST_FLOW = 2 +OFPST_AGGREGATE = 3 +OFPST_TABLE = 4 +OFPST_PORT = 5 +OFPST_QUEUE = 6 +OFPST_VENDOR = 0xffff + +_OFP_STATS_MSG_PACK_STR = 'HH' +OFP_STATS_MSG_PACK_STR = '!' + _OFP_STATS_MSG_PACK_STR +OFP_STATS_MSG_SIZE = 12 +assert calcsize(OFP_STATS_MSG_PACK_STR) + OFP_HEADER_SIZE == OFP_STATS_MSG_SIZE + +# enum ofp_stats_reply_flags +OFPSF_REPLY_MORE = 1 << 0 # More replies to follow. + +# define constants +DESC_STR_LEN = 256 +DESC_STR_LEN_STR = str(DESC_STR_LEN) +SERIAL_NUM_LEN = 32 +SERIAL_NUM_LEN_STR = str(SERIAL_NUM_LEN) + +OFP_DESC_STATS_PACK_STR = '!' + \ + DESC_STR_LEN_STR + 'c' + \ + DESC_STR_LEN_STR + 'c' + \ + DESC_STR_LEN_STR + 'c' + \ + SERIAL_NUM_LEN_STR + 'c' + \ + DESC_STR_LEN_STR + 'c' +OFP_DESC_STATS_SIZE = 1068 +assert (calcsize(OFP_DESC_STATS_PACK_STR) + OFP_STATS_MSG_SIZE == + OFP_DESC_STATS_SIZE) + +OFP_FLOW_STATS_REQUEST_PACK_STR = '!' + _OFP_MATCH_PACK_STR + 'BxH' +OFP_FLOW_STATS_REQUEST_SIZE = 56 +assert (calcsize(OFP_FLOW_STATS_REQUEST_PACK_STR) + OFP_STATS_MSG_SIZE == + OFP_FLOW_STATS_REQUEST_SIZE) + +OFP_FLOW_STATS_PACK_STR = '!HBx' + _OFP_MATCH_PACK_STR + 'IIHHH6xQQQ' +OFP_FLOW_STATS_SIZE = 88 +assert calcsize(OFP_FLOW_STATS_PACK_STR) == OFP_FLOW_STATS_SIZE + +OFP_AGGREGATE_STATS_REPLY_PACK_STR = '!QQI4x' +OFP_AGGREGATE_STATS_REPLY_SIZE = 36 +assert (calcsize(OFP_AGGREGATE_STATS_REPLY_PACK_STR) + + OFP_STATS_MSG_SIZE == OFP_AGGREGATE_STATS_REPLY_SIZE) + +OFP_TABLE_STATS_PACK_STR = '!B3x' + OFP_MAX_TABLE_NAME_LEN_STR + 'cIIIQQ' +OFP_TABLE_STATS_SIZE = 64 +assert calcsize(OFP_TABLE_STATS_PACK_STR) == OFP_TABLE_STATS_SIZE + +OFP_PORT_STATS_REQUEST_PACK_STR = '!H6x' +OFP_PORT_STATS_REQUEST_SIZE = 20 +assert (calcsize(OFP_PORT_STATS_REQUEST_PACK_STR) + OFP_STATS_MSG_SIZE == + OFP_PORT_STATS_REQUEST_SIZE) + +OFP_PORT_STATS_PACK_STR = '!H6xQQQQQQQQQQQQ' +OFP_PORT_STATS_SIZE = 104 +assert calcsize(OFP_PORT_STATS_PACK_STR) == OFP_PORT_STATS_SIZE + +OFPQ_ALL = 0xffffffff + +OFP_QUEUE_STATS_PACK_STR = '!H2xIQQQ' +OFP_QUEUE_STATS_SIZE = 32 +assert calcsize(OFP_QUEUE_STATS_PACK_STR) == OFP_QUEUE_STATS_SIZE + +OFP_VENDOR_STATS_MSG_PACK_STR = '!I' +OFP_VENDOR_STATS_MSG_SIZE = 16 +assert (calcsize(OFP_VENDOR_STATS_MSG_PACK_STR) + OFP_STATS_MSG_SIZE == + OFP_VENDOR_STATS_MSG_SIZE) + +OFP_VENDOR_HEADER_PACK_STR = '!I' +OFP_VENDOR_HEADER_SIZE = 12 +assert (calcsize(OFP_VENDOR_HEADER_PACK_STR) + OFP_HEADER_SIZE == + OFP_VENDOR_HEADER_SIZE) diff --git a/ryu/ofproto/ofproto_v1_0_parser.py b/ryu/ofproto/ofproto_v1_0_parser.py new file mode 100644 index 00000000..e1fdc6a9 --- /dev/null +++ b/ryu/ofproto/ofproto_v1_0_parser.py @@ -0,0 +1,542 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import collections +import struct + +from . import ofproto_parser +from . import ofproto_v1_0 + +import logging +LOG = logging.getLogger('ryu.ofproto.ofproto_v1_0_parser') + +_MSG_PARSERS = {} + + +def _set_msg_type(msg_type): + def _set_cls_msg_type(cls): + cls.cls_msg_type = msg_type + return cls + return _set_cls_msg_type + + +def _register_parser(cls): + '''class decorator to register msg parser''' + assert cls.cls_msg_type is not None + assert cls.cls_msg_type not in _MSG_PARSERS + _MSG_PARSERS[cls.cls_msg_type] = cls.parser + return cls + + +@ofproto_parser.register_msg_parser(ofproto_v1_0.OFP_VERSION) +def msg_parser(datapath, version, msg_type, msg_len, xid, buf): + parser = _MSG_PARSERS.get(msg_type) + return parser(datapath, version, msg_type, msg_len, xid, buf) + + +class MsgBase(object): + def __init__(self, datapath): + self.datapath = datapath + self.version = None + self.msg_type = None + self.msg_len = None + self.xid = None + self.buf = None + + def set_headers(self, version, msg_type, msg_len, xid): + assert msg_type == self.cls_msg_type + + self.version = version + self.msg_type = msg_type + self.msg_len = msg_len + self.xid = xid + + def set_buf(self, buf): + self.buf = buffer(buf) + + def __str__(self): + return 'version: 0x%x msg_type 0x%x xid 0x%x' % (self.version, + self.msg_type, + self.xid) + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = cls(datapath) + msg.set_headers(version, msg_type, msg_len, xid) + msg.set_buf(buf) + return msg + + def _serialize_pre(self): + assert self.version is None + assert self.msg_type is None + assert self.buf is None + + self.version = ofproto_v1_0.OFP_VERSION + self.msg_type = self.cls_msg_type + self.buf = bytearray().zfill(ofproto_v1_0.OFP_HEADER_SIZE) + + def _serialize_header(self): + # buffer length is determined after trailing data is formated. + assert self.version is not None + assert self.msg_type is not None + assert self.msg_len is None + assert self.xid is None + assert self.buf is not None + assert len(self.buf) >= ofproto_v1_0.OFP_HEADER_SIZE + + self.msg_len = len(self.buf) + self.xid = 0 # TODO:XXX + + struct.pack_into(ofproto_v1_0.OFP_HEADER_PACK_STR, self.buf, 0, + self.version, self.msg_type, self.msg_len, self.xid) + + def _serialize_body(self): + pass + + def serialize(self): + self._serialize_pre() + self._serialize_body() + self._serialize_header() + + +def _pack_into(fmt, buf, offset, *args): + if len(buf) < offset: + buf += bytearray().zfill(offset - len(buf)) + + if len(buf) == offset: + buf += struct.pack(fmt, *args) + return + + needed_len = offset + struct.calcsize(fmt) + if len(buf) < needed_len: + buf += bytearray().zfill(needed_len - len(buf)) + + struct.pack_into(fmt, buf, offset, *args) + + +def _str_attr(msg, buf, attr_list): + for attr in attr_list: + val = getattr(msg, attr, None) + if val is not None: + buf += ' %s %s' % (attr, val) + + return buf + + +# +# common structures +# + +class OFPPhyPort(collections.namedtuple('OFPPhyPort', ( + 'port_no', 'hw_addr', 'name', 'config', 'state', 'curr', 'advertised', + 'supported', 'peer'))): + + @classmethod + def parser(cls, buf, offset): + port = struct.unpack_from(ofproto_v1_0.OFP_PHY_PORT_PACK_STR, + buf, offset) + return cls(*port) + + +class OFPMatch(collections.namedtuple('OFPMatchBase', ( + 'wildcards', 'in_port', 'dl_src', 'dl_dst', 'dl_vlan', + 'dl_vlan_pcp', 'dl_type', 'nw_tos', 'nw_proto', + 'nw_src', 'nw_dst', 'tp_src', 'tp_dst'))): + + def serialize(self, buf, offset): + _pack_into(ofproto_v1_0.OFP_MATCH_PACK_STR, buf, offset, *self) + + @classmethod + def parse(cls, buf, offset): + match = struct.unpack_from(ofproto_v1_0.OFP_MATCH_PACK_STR, + buf, offset) + return cls(*match) + + +class OFPActionHeader(object): + def __init__(self, type, len): + self.type = type + self.len = len + + def serlize(self, buf, offset): + _pack_into(ofproto_v1_0.OFP_ACTION_HEADER_PACK_STR, + buf, offset, self.type, self.len) + + +class OFPActionOutput(OFPActionHeader): + def __init__(self, port, max_len=0): + super(OFPActionOutput, + self).__init__(ofproto_v1_0.OFPAT_OUTPUT, + ofproto_v1_0.OFP_ACTION_OUTPUT_LEN) + self.port = port + self.max_len = max_len + + def serialize(self, buf, offset): + _pack_into(ofproto_v1_0.OFP_ACTION_OUTPUT_PACK_STR, + buf, offset, self.type, self.len, self.port, self.max_len) + + +# TODO:XXX more actions + + +# +# Symmetric messages +# parser + serializer +# + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_HELLO) +class OFPHello(MsgBase): + def __init__(self, datapath): + super(OFPHello, self).__init__(datapath) + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_ERROR) +class OFPErrorMsg(MsgBase): + def __init__(self, datapath): + super(OFPErrorMsg, self).__init__(datapath) + self.type = None + self.code = None + self.data = None + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPErrorMsg, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + msg.type, msg.code = struct.unpack_from( + ofproto_v1_0.OFP_ERROR_MSG_PACK_STR, msg.buf, + ofproto_v1_0.OFP_HEADER_SIZE) + msg.data = msg.buf[ofproto_v1_0.OFP_ERROR_MSG_SIZE:] + return msg + + def _serialize_body(self): + assert self.data is not None + _pack_into(ofproto_v1_0.OFP_ERROR_MSG_PACK_STR, self.buf, + ofproto_v1_0.OFP_HEADER_SIZE, self.type, self.code) + self.buf += self.data + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_ECHO_REQUEST) +class OFPEchoRequest(MsgBase): + def __init__(self, datapath): + super(OFPEchoRequest, self).__init__(datapath) + self.data = None + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPEchoRequest, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + msg.data = msg.buf[ofproto_v1_0.OFP_HEADER_SIZE:] + return msg + + def _serialize_body(self): + assert self.data is not None + self.buf += self.data + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_ECHO_REPLY) +class OFPEchoReply(MsgBase): + def __init__(self, datapath): + super(OFPEchoReply, self).__init__(datapath) + self.data = None + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPEchoReply, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + msg.data = msg.buf[ofproto_v1_0.OFP_HEADER_SIZE:] + return msg + + def _serialize_body(self): + assert self.data is not None + self.buf += self.data + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_VENDOR) +class OFPVendor(MsgBase): + def __init__(self, datapath): + super(OFPVendor, self).__init__(datapath) + self.data = None + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPVendor, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + msg.vendor = struct.unpack_from( + ofproto_v1_0.OFP_VENDOR_HEADER_PACK_STR, msg.buf, + ofproto_v1_0.OFP_HEADER_SIZE) + msg.data = msg.buf[ofproto_v1_0.OFP_VENDOR_HEADER_SIZE:] + return msg + + def _serialize_body(self): + assert self.data is not None + _pack_into(ofproto_v1_0.OFP_VENDOR_HEADER_PACK_STR, + self.buf, ofproto_v1_0.OFP_HEADER_SIZE, self.vendor) + self.buf += self.data + + +# +# asymmetric message (datapath -> controller) +# parser only +# + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_FEATURES_REPLY) +class OFPSwitchFeatures(MsgBase): + def __init__(self, datapath): + super(OFPSwitchFeatures, self).__init__(datapath) + + def __str__(self): + buf = super(OFPSwitchFeatures, self).__str__() + ' port' + for port_no, p in getattr(self, 'ports', {}).items(): + buf += ' ' + str(p) + return buf + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPSwitchFeatures, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + (msg.datapath_id, + msg.n_buffers, + msg.n_tables, + msg.capabilities, + msg.actions) = struct.unpack_from( + ofproto_v1_0.OFP_SWITCH_FEATURES_PACK_STR, msg.buf, + ofproto_v1_0.OFP_HEADER_SIZE) + + msg.ports = {} + n_ports = ((msg_len - ofproto_v1_0.OFP_SWITCH_FEATURES_SIZE) / + ofproto_v1_0.OFP_PHY_PORT_SIZE) + offset = ofproto_v1_0.OFP_SWITCH_FEATURES_SIZE + for i in range(n_ports): + port = OFPPhyPort.parser(msg.buf, offset) + # print 'port = %s' % str(port) + msg.ports[port.port_no] = port + offset += ofproto_v1_0.OFP_PHY_PORT_SIZE + + return msg + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_PORT_STATUS) +class OFPPortStatus(MsgBase): + def __init__(self, datapath): + super(OFPPortStatus, self).__init__(datapath) + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPPortStatus, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + msg.reason = struct.unpack_from( + ofproto_v1_0.OFP_PORT_STATUS_PACK_STR, + msg.buf, ofproto_v1_0.OFP_HEADER_SIZE)[0] + msg.desc = OFPPhyPort.parser(msg.buf, + ofproto_v1_0.OFP_PORT_STATUS_DESC_OFFSET) + return msg + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_PACKET_IN) +class OFPPacketIn(MsgBase): + def __init__(self, datapath): + super(OFPPacketIn, self).__init__(datapath) + + def __str__(self): + buf = super(OFPPacketIn, self).__str__() + return _str_attr(self, buf, + ('buffer_id', 'total_len', 'in_port', 'reason')) + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPPacketIn, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + (msg.buffer_id, + msg.total_len, + msg.in_port, + msg.reason) = struct.unpack_from( + ofproto_v1_0.OFP_PACKET_IN_PACK_STR, + msg.buf, ofproto_v1_0.OFP_HEADER_SIZE) + msg.data = msg.buf[ofproto_v1_0.OFP_PACKET_IN_DATA_OFFSET:] + return msg + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_GET_CONFIG_REPLY) +class OFPSwitchConfig(MsgBase): + def __init__(self, datapath): + super(OFPSwitchConfig, self).__init__(datapath) + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPSwitchConfig, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + (msg.flags, msg.miss_send_len) = struct.unpack_from( + ofproto_v1_0.OFP_SWITCH_CONFIG_PACK_STR, + msg.buf, ofproto_v1_0.OFP_HEADER_SIZE) + return msg + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_BARRIER_REPLY) +class OFPBarrierReply(MsgBase): + def __init__(self, datapath): + super(OFPBarrierReply, self).__init__(datapath) + + +@_register_parser +@_set_msg_type(ofproto_v1_0.OFPT_FLOW_REMOVED) +class OFPFlowRemoved(MsgBase): + def __init__(self, datapath): + super(OFPFlowRemoved, self).__init__(datapath) + + def __str__(self): + buf = super(OFPFlowRemoved, self).__str__() + return _str_attr(self, buf, + ('match', 'cookie', 'priority', 'reason', + 'duration_sec', 'duration_nsec', + 'idle_timeout', 'packet_count', 'idle_count')) + + @classmethod + def parser(cls, datapath, version, msg_type, msg_len, xid, buf): + msg = super(OFPFlowRemoved, cls).parser(datapath, version, msg_type, + msg_len, xid, buf) + + msg.match = OFPMatch.parse(msg.buf, ofproto_v1_0.OFP_HEADER_SIZE) + + (msg.cookie, + msg.priority, + msg.reason, + msg.duration_sec, + msg.duration_nsec, + msg.idle_timeout, + msg.packet_count, + msg.byte_count) = struct.unpack_from( + ofproto_v1_0.OFP_FLOW_REMOVED_PACK_STR0, msg.buf, + ofproto_v1_0.OFP_HEADER_SIZE + ofproto_v1_0.OFP_MATCH_SIZE) + + return msg + +# +# controller-to-switch message +# serializer only +# + + +@_set_msg_type(ofproto_v1_0.OFPT_FEATURES_REQUEST) +class OFPFeaturesRequest(MsgBase): + def __init__(self, datapath): + super(OFPFeaturesRequest, self).__init__(datapath) + + +@_set_msg_type(ofproto_v1_0.OFPT_GET_CONFIG_REQUEST) +class OFPGetConfigRequest(MsgBase): + def __init__(self, datapath): + super(OFPGetConfigRequest, self).__init__(datapath) + + +@_set_msg_type(ofproto_v1_0.OFPT_SET_CONFIG) +class OFPSetConfig(MsgBase): + def __init__(self, datapath, flags=None, miss_send_len=None): + super(OFPSetConfig, self).__init__(datapath) + self.flags = flags + self.miss_send_len = miss_send_len + + def _serialize_body(self): + assert self.flags is not None + assert self.miss_send_len is not None + _pack_into(ofproto_v1_0.OFP_SWITCH_CONFIG_PACK_STR, + self.buf, ofproto_v1_0.OFP_HEADER_SIZE, + self.flags, self.miss_send_len) + + +@_set_msg_type(ofproto_v1_0.OFPT_PACKET_OUT) +class OFPPacketOut(MsgBase): + def __init__(self, datapath, buffer_id=None, in_port=None, actions=None, + data=None): + super(OFPPacketOut, self).__init__(datapath) + self.buffer_id = buffer_id + self.in_port = in_port + self.actions_len = None + self.actions = actions + self.data = data + + def _serialize_body(self): + assert self.buffer_id is not None + assert self.in_port is not None + assert self.actions_len is None + assert self.actions is not None + + self.actions_len = 0 + offset = ofproto_v1_0.OFP_PACKET_OUT_SIZE + for a in self.actions: + a.serialize(self.buf, offset) + offset += a.len + self.actions_len += a.len + + if self.data is not None: + assert self.buffer_id == -1 + self.buf += self.data + + _pack_into(ofproto_v1_0.OFP_PACKET_OUT_PACK_STR, + self.buf, ofproto_v1_0.OFP_HEADER_SIZE, + self.buffer_id, self.in_port, self.actions_len) + + +@_set_msg_type(ofproto_v1_0.OFPT_FLOW_MOD) +class OFPFlowMod(MsgBase): + def __init__(self, datapath, match=None, cookie=None, + command=None, idle_timeout=None, hard_timeout=None, + priority=None, buffer_id=None, out_port=None, + flags=None, actions=None): + super(OFPFlowMod, self).__init__(datapath) + self.match = match + self.cookie = cookie + self.command = command + self.idle_timeout = idle_timeout + self.hard_timeout = hard_timeout + self.priority = priority + self.buffer_id = buffer_id + self.out_port = out_port + self.flags = flags + self.actions = actions + + def _serialize_body(self): + offset = ofproto_v1_0.OFP_HEADER_SIZE + self.match.serialize(self.buf, offset) + + offset += ofproto_v1_0.OFP_MATCH_SIZE + _pack_into(ofproto_v1_0.OFP_FLOW_MOD_PACK_STR0, self.buf, offset, + self.cookie, self.command, + self.idle_timeout, self.hard_timeout, + self.priority, self.buffer_id, self.out_port, + self.flags) + + offset = ofproto_v1_0.OFP_FLOW_MOD_SIZE + if self.actions is not None: + for a in self.actions: + a.serialize(self.buf, offset) + offset += a.len + + +@_set_msg_type(ofproto_v1_0.OFPT_BARRIER_REQUEST) +class OFPBarrierRequest(MsgBase): + def __init__(self, datapath): + super(OFPBarrierRequest, self).__init__(datapath) diff --git a/ryu/utils.py b/ryu/utils.py new file mode 100644 index 00000000..c3f3fe52 --- /dev/null +++ b/ryu/utils.py @@ -0,0 +1,62 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import inspect +import logging +import os +import sys + +LOG = logging.getLogger('ryu.utils') + +def import_module(modname): + (f, s, t) = modname.rpartition('.') + mod = __import__(modname, fromlist=[f]) + return mod + + +def import_object(modname): + try: + return import_module(modname) + except ImportError: + (from_mod, sep, target) = modname.rpartition('.') + mod = import_module(from_mod) + return getattr(mod, target) + + +RYU_DEFAULT_FLAG_FILE = ('ryu.conf', 'etc/ryu/ryu.conf' '/etc/ryu/ryu.conf') + + +def find_flagfile(default_path=RYU_DEFAULT_FLAG_FILE): + if '--flagfile' in sys.argv: + return + + script_dir = os.path.dirname(inspect.stack()[-1][1]) + + for filename in RYU_DEFAULT_FLAG_FILE: + if not os.path.abspath(filename): + if os.path.exists(filename): + # try relative to current path + filename = os.path.abspath(filename) + elif os.path.exists(os.path.join(script_dir, filename)): + # try relative to script dir + filename = os.path.join(script_dir, filename) + + if not os.path.exists(filename): + continue + + flagfile = '--flagfile=%s' % filename + sys.argv.insert(1, flagfile) + LOG.debug('flagfile = %s', filename) + return diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..46409041 --- /dev/null +++ b/setup.cfg @@ -0,0 +1 @@ +# TODO diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..41583033 --- /dev/null +++ b/setup.py @@ -0,0 +1,38 @@ +# Copyright (C) 2011 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2011 Isaku Yamahata +# +# 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, version 3 of the License. +# +# 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 . + +import os + +from setuptools import find_packages +from setuptools import setup + +README = os.path.join(os.path.dirname(__file__), 'README.rst') +long_description = open(README).read() + '\n\n' + +setup(name='ryu', + version='0.1', + description=("Ryu Network Operating System"), + long_description=long_description, + keywords='openflow openvswitch openstack', + url='http://www.osrg.net/ryu/', +# author='', + autor_email='ryu-devel@lists.sourceforge.net', + license='GPL v3 only', + packages=find_packages(), + scripts=['bin/ryu-manager', + 'bin/ryu-client'], + data_files=[('etc/ryu', ['etc/ryu/ryu.conf'])], +# install_requires=[] + )

skj?_vo_V=Laf4qZY(}-*kh>R=C2kRZ zUWwaZ;aH9w2%lMTkVyq*YZD^a^Qrc|HNQN>i;$MKRJ&@ziikExTZ6?KjZ!X>EL;=W z2wo0x_hJ3mP=cf&l-x8!JeokmY6IXDndL?q6|tl0*vGKZkaqx?z+*WSglC^lQ#ldp5!$b z&c+?x$~U6W{esk-np-KF(6iUPi33%qJ~CgVoCCkCTfZq`DHC7h7@@}E2qQ6k!YmOP zqa4k2Z?|b17DbzVw@$ugEwy)w@U9;K<4PnDz;TuS(@D9P0qDrSU(vz%wrN|>>mhNm zGC0EaPg0l6Vp2Xs9@yc$Vf^Oe;N$_5wKsFfOmlJP?GbjG(ooi01z4%Kv~QG35&KlY zv|n~iS3lFb;TM$?R(E{K+~~)CHM3m(&`rm}yCr>vr6}$#EIhaPi_`BFcjuE9R4Wc` zOWZ|a`e>63_3@L~!R^WI+@kPsPNoRy$B#@GzsFAoM=8x5gt#;K%AVPK90=vm5|x`O z`;G|J!?Q-Lw-|F>)I4Jgh?zkDvpYUVDG8f3`^fL={uq&AY?(<0ce=+HGJa?g^cmeXF& zQaE3A#j)g`@<#Tuvial3kA`#`)<*=w2%kiz5+5oxv)#cvRT|=iEfe8Uc1T7~>69#n zSF-^SvVqx%9=xB&{C`hwZ_hJHs{6TmZ9wpj=2@yM-t(ZqxqC|1&Iy2~s7>)+uREH( z#3-^TCLZFJIKNb}^&8J4J{#(NS_$-p7Yv&}cM#x6xu*ZdWqa>x3Rz0?C-On;mg7Hr zW`$@x!46n)lMl+P4=hH zxt>vMMn+>_vzB9*pf8HS2M_lR_K5Q zXSd@vtwqOb83P$Sv*~1l~Bh2-Ymz$Nt3^YTA5DDh8?@M(<*}1S@YHdu(W&su($OHJy|*dt;`0O34W2j3DGyQj_l!5w zu>N;?8Gqj$K)5Mq)AA)rD>?(2KBW0^^{$FiLh}+QUQqn*{l}WG(1XS>IbxQtrlmVGmwyixE&HLI%5gI_(XqLypqOII@U0rnt$1) zjaCa9iBmFp;ZAvzDJ}jJ3FOO~7z1Z-o>!da@6il(+;W_U=p5Q^4>-HDe1+ zj1KW3!((Y|sX+FpvEV?qAyd2be@MH53P5Rn8QE~LHjfxF9^Q≪kmQj)961<&?DC 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + gateway + public internet + Physical view + + + nova-network + + + OVS + + + + + + SNAT + SNAT + + + + + + eth + + + eth + + gw-xxx + + gw-yyy + + + + eth + + + + quantum_ovs_agent + + nova-api + + nova-scheduler + + + + + eth + + + + + quantum-server + + + + ryu-openflow-controller + + + + + + + eth + + + + quantum_ovs_agent + + + + + + eth + + + ... + + nova-... + + nova-compute + + VMtenant-X + ... + + OVS + + + + openflow + + VMtenant-Y + + VMtenant-... + + + nova-compute + + + VMtenant-X + + ... + + + OVS + + + + + openflow + + VMtenant-Y + + VMtenant-... + + + + + + dnsmasq + + + + + + + physical host + physical host + physical host + + + + dnsmasq + + + + + + + diff --git a/doc/source/images/trace-route.png b/doc/source/images/trace-route.png new file mode 100644 index 0000000000000000000000000000000000000000..694cf1c98e6afeadcd1c92520df9f2900c9a2b01 GIT binary patch literal 132098 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