├── User ├── README.md └── GettingStarted │ └── README.md ├── releaseinfo ├── r5.0.1 │ ├── releasenotes │ │ ├── rst │ │ │ ├── __init__.py │ │ │ ├── request-support.rst │ │ │ ├── resolved-issues.rst │ │ │ ├── deprecated-items.rst │ │ │ ├── introduction.rst │ │ │ ├── themes │ │ │ │ ├── rtd │ │ │ │ │ ├── theme.conf │ │ │ │ │ └── static │ │ │ │ │ │ └── rtd.css_t │ │ │ │ └── tungsten │ │ │ │ │ └── theme.conf │ │ │ ├── index.rst │ │ │ ├── supported-platforms-50-vnc.rst │ │ │ ├── tungsten-release-notes-5.0.1-title.rst │ │ │ ├── known-behavior.rst │ │ │ ├── conf.py │ │ │ └── new-and-changed-features.rst │ │ └── README.md │ ├── README.md │ └── gettingstarted │ │ ├── README.md │ │ └── rst │ │ ├── themes │ │ ├── rtd │ │ │ └── theme.conf │ │ └── contrail │ │ │ └── theme.conf │ │ ├── conf.py │ │ └── getting-started.rst ├── r5.0 │ ├── releasenotes │ │ ├── rst │ │ │ ├── __init__.py │ │ │ ├── resolved-issues.rst │ │ │ ├── request-support.rst │ │ │ ├── deprecated-items.rst │ │ │ ├── intro.rst │ │ │ ├── index.rst │ │ │ ├── themes │ │ │ │ ├── rtd │ │ │ │ │ └── theme.conf │ │ │ │ └── contrail │ │ │ │ │ └── theme.conf │ │ │ ├── supported-platforms-50-vnc.rst │ │ │ ├── contrail-release-notes-5.0-title.rst │ │ │ ├── known-behavior.rst │ │ │ ├── conf.py │ │ │ └── new-and-changed-features.rst │ │ └── README.md │ └── README.md └── README.md ├── .gitignore ├── API ├── 4.1.tgz ├── html_r3.0.tgz ├── html_r3.1.tgz ├── html_r3.2.tgz ├── README.md └── 5.1_doc_html.zip ├── Governance ├── CommunityCommittee │ ├── Commits.Without.CLA.pdf │ ├── TechnicalCharter.v5.docx │ ├── CC_Members │ ├── Resolutions │ │ └── README.md │ └── README.md ├── TSCVotersAndCandidates │ ├── TSCVotersAndCandidates-diagram.odg │ └── TSCVotersAndCandidates-diagram.png ├── TechnicalCommittee │ ├── TC_Members │ ├── Project_Team_Leads │ ├── Resolutions │ │ └── README.md │ └── README.md ├── ACC_Members ├── InfrastructureCommittee │ └── README.md ├── ArchitectureReviewBoard │ └── ARB_Members ├── TSC-ATC_Members ├── README.md └── TungstenFabricProjectTechnicalCharter.rst ├── Contributor └── GettingStarted │ ├── README.md │ └── getting-started-with-tungstenfabric-development.md ├── .gitreview ├── README.md ├── events └── 201809_ONS_Amsterdam │ └── TF_workshop.md └── LICENSE /User/README.md: -------------------------------------------------------------------------------- 1 | Content coming soon. 2 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.*~ 2 | *~ 3 | *.log 4 | *.gz 5 | *.swp 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /API/4.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/API/4.1.tgz -------------------------------------------------------------------------------- /API/html_r3.0.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/API/html_r3.0.tgz -------------------------------------------------------------------------------- /API/html_r3.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/API/html_r3.1.tgz -------------------------------------------------------------------------------- /API/html_r3.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/API/html_r3.2.tgz -------------------------------------------------------------------------------- /API/README.md: -------------------------------------------------------------------------------- 1 | A placeholder directory for the API documentation that we'll be adding (hopefully) soon. 2 | -------------------------------------------------------------------------------- /API/5.1_doc_html.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/API/5.1_doc_html.zip -------------------------------------------------------------------------------- /Governance/CommunityCommittee/Commits.Without.CLA.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/Governance/CommunityCommittee/Commits.Without.CLA.pdf -------------------------------------------------------------------------------- /Governance/CommunityCommittee/TechnicalCharter.v5.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/Governance/CommunityCommittee/TechnicalCharter.v5.docx -------------------------------------------------------------------------------- /releaseinfo/README.md: -------------------------------------------------------------------------------- 1 | Tugnsten Fabric Release Information 2 | ============================================== 3 | 4 | This directory contains community generated documentation on releases. 5 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/README.md: -------------------------------------------------------------------------------- 1 | Tungsten Fabric R5.0 Release Notes 2 | ============================================== 3 | 4 | This directory contains community generated Release Notes. 5 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/README.md: -------------------------------------------------------------------------------- 1 | Tungsten Fabric R5.0.1 Release Notes 2 | ============================================== 3 | 4 | This directory contains community generated Release Notes. 5 | -------------------------------------------------------------------------------- /Governance/TSCVotersAndCandidates/TSCVotersAndCandidates-diagram.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/Governance/TSCVotersAndCandidates/TSCVotersAndCandidates-diagram.odg -------------------------------------------------------------------------------- /Governance/TSCVotersAndCandidates/TSCVotersAndCandidates-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tungstenfabric/opencontrails-docs/HEAD/Governance/TSCVotersAndCandidates/TSCVotersAndCandidates-diagram.png -------------------------------------------------------------------------------- /releaseinfo/r5.0/README.md: -------------------------------------------------------------------------------- 1 | Tungsten Fabric R5.0 Release Documentation 2 | ============================================== 3 | 4 | This directory contains community generated documentation on version R5.0. 5 | 6 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/README.md: -------------------------------------------------------------------------------- 1 | Tungsten Fabric R5.0.1 Release Documentation 2 | ============================================== 3 | 4 | This directory contains community generated documentation on version R5.0.1. 5 | 6 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/gettingstarted/README.md: -------------------------------------------------------------------------------- 1 | Tungsten Fabric r5.0.1 Getting Started Guide 2 | ============================================== 3 | 4 | This directory contains community generated Getting Started Guide. 5 | -------------------------------------------------------------------------------- /Governance/CommunityCommittee/CC_Members: -------------------------------------------------------------------------------- 1 | Liza Fung (AT&T) 2 | Vacant () <> 3 | Ian Rae (Cloud Ops) 4 | Jim St. Leger (Intel) 5 | Doug Marschke (SDN Essentials) 6 | -------------------------------------------------------------------------------- /User/GettingStarted/README.md: -------------------------------------------------------------------------------- 1 | Getting Started with Tungsten Fabric 2 | ==================================== 3 | 4 | This directory contains community generated documentation on how to get started 5 | as a user of Tungsten Fabric, including installation and basic usage. 6 | -------------------------------------------------------------------------------- /Governance/TechnicalCommittee/TC_Members: -------------------------------------------------------------------------------- 1 | Joseph Gasparakis - Intel - 2 | Paul Carver - AT&T - 3 | Valentine Sinitsyn - Yandex - 4 | Vacant - Vacant - 5 | Sukhdev Kapur - Juniper - 6 | -------------------------------------------------------------------------------- /Governance/ACC_Members: -------------------------------------------------------------------------------- 1 | Randy Bias (Juniper) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3457 2 | Qasim Arham (Juniper) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3457 3 | Abhijeet Singh (AT&T) Effective 2018-01-11 https://lists.tungsten.io/g/tsc/responses?pollid=3936 4 | -------------------------------------------------------------------------------- /Governance/CommunityCommittee/Resolutions/README.md: -------------------------------------------------------------------------------- 1 | Governance Resolutions 2 | ====================== 3 | 4 | This directory contains resolutions that have been approved by the Tungsten Fabric 5 | Governance Working Group. Resolutions are submitted via Git Review in the same 6 | manner as code and discussed and voted on via the Gerrit Code Review system. 7 | -------------------------------------------------------------------------------- /Contributor/GettingStarted/README.md: -------------------------------------------------------------------------------- 1 | Getting Started as a Tungsten Fabric Contributor 2 | ============================================== 3 | 4 | This directory contains community generated documentation on how to get started 5 | as a contributor to Tungsten Fabric, including tools and systems, procedures to 6 | ensure consistency in planning, and style guides. 7 | -------------------------------------------------------------------------------- /Governance/TechnicalCommittee/Project_Team_Leads: -------------------------------------------------------------------------------- 1 | Development Sub-Projects 2 | 3 | Configuration - Sukhdev Kapur 4 | Analytics - Sukhdev Kapur 5 | Control - Sukhdev Kapur 6 | vRouter/Data Plane - Sukhdev Kapur 7 | User Interface - Sukhdev Kapur 8 | 9 | 10 | Supporting Sub-Projects 11 | 12 | Infrastructure - Paul Carver 13 | Documentation - Joseph Gasparakis 14 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/resolved-issues.rst: -------------------------------------------------------------------------------- 1 | 2 | =============== 3 | Resolved Issues 4 | =============== 5 | 6 | You can research limitations that are resolved with this release in Launchpad at: 7 | 8 | `https://launchpad.net/juniperopenstack/+milestone/r5.0.0`_ . 9 | 10 | 11 | .. _https://launchpad.net/juniperopenstack/+milestone/r5.0.0: https://launchpad.net/juniperopenstack/+milestone/r5.0.0 12 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/request-support.rst: -------------------------------------------------------------------------------- 1 | 2 | ==================================== 3 | Self-Help Online Tools and Resources 4 | ==================================== 5 | 6 | The Tungsten Fabric slack channels are where the community seeking for supports at: 7 | 8 | `Accessing a Tungsten Fabric Slack channels`_ 9 | 10 | .. _Accessing a Tungsten Fabric Slack channels: https://tungstenfabric.slack.com/ 11 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/request-support.rst: -------------------------------------------------------------------------------- 1 | 2 | ==================================== 3 | Self-Help Online Tools and Resources 4 | ==================================== 5 | 6 | The Tungsten Fabric slack channels are where the community seeking for supports at: 7 | 8 | `Accessing a Tungsten Fabric Slack channels`_ 9 | 10 | .. _Accessing a Tungsten Fabric Slack channels: https://tungstenfabric.slack.com/ 11 | 12 | -------------------------------------------------------------------------------- /Governance/InfrastructureCommittee/README.md: -------------------------------------------------------------------------------- 1 | Tungsten Fabric Community Infrastructure Working Group 2 | ====================================================== 3 | 4 | The Tungsten Fabric Community Infrastructure Working Group is one of three 5 | committees formed at the Tungsten Fabric Summit of June 2017. The CIWG is tasked 6 | with identifying shortcomings in the technical tooling and other project 7 | infrastructure and recommending solutions. 8 | -------------------------------------------------------------------------------- /Governance/TechnicalCommittee/Resolutions/README.md: -------------------------------------------------------------------------------- 1 | Technical Steering Committee Working Group Resolutions 2 | ====================================================== 3 | 4 | This directory contains resolutions that have been approved by the Tungsten Fabric 5 | Technical Steering Committee Working Group prior to the establishment of a 6 | governance structure and a permanent TSC. Resolutions are submitted via Git 7 | Review in the same manner as code and discussed and voted on via the Gerrit 8 | Code Review system. 9 | -------------------------------------------------------------------------------- /.gitreview: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. 3 | # 4 | # OpenContrail Code Review System 5 | # 6 | # Please visit opencontrail.org additional information. 7 | # 8 | # e.g. After changes are complete and commited to a local branch, do 9 | # 'git review' to submit changeset to review.opencontrail.org Code Review 10 | # (gerrit) System. 11 | # 12 | [gerrit] 13 | host=review.opencontrail.org 14 | port=29418 15 | project=Juniper/contrail-community-docs.git 16 | defaultbranch=master 17 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/deprecated-items.rst: -------------------------------------------------------------------------------- 1 | 2 | ================ 3 | Deprecated Items 4 | ================ 5 | 6 | The following features have been deprecated in Tungsten Fabric Release 5.0. 7 | 8 | 9 | - Virtual Extensible LAN (VXLAN) and the Open vSwitch Database (OVSDB) management protocol based ToR and ToR services node (TSN) solution for bare metal-workload support is deprecated. Customers are recommended to use EVPN-VXLAN based Tungsten Fabric Service Node solution which is more scalable. 10 | 11 | 12 | -------------------------------------------------------------------------------- /Governance/ArchitectureReviewBoard/ARB_Members: -------------------------------------------------------------------------------- 1 | The following people are the voting members of the Architecture Review Board. 2 | 3 | Appointed by Juniper 4 | -------------------- 5 | Sukhdev Kapur 6 | Anantharamu Suryanarayana 7 | Michael Henkel 8 | Nachi Ueno 9 | Sachchidanand Vaidya 10 | 11 | Elected by Community 12 | -------------------- 13 | Joseph Gasparakis 14 | Paul Carver 15 | -------------------------------------------------------------------------------- /Governance/TechnicalCommittee/README.md: -------------------------------------------------------------------------------- 1 | Tungsten Fabric Technical Steering Committee Working Group 2 | ========================================================== 3 | 4 | The Tungsten Fabric Technical Steering Committee Working Group is one of three 5 | committees formed at the Tungsten Fabric Summit of June 2017. The TSCWG is 6 | responsible for deciding matters of technical direction until a final 7 | governance structure is established. The TSCWG will also recommend to the GWG 8 | a charter and other aspects of technical policy and decisions making. 9 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/resolved-issues.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | =============== 5 | Resolved Issues 6 | =============== 7 | 8 | You can research limitations that are resolved with Tungsten Fabric Release 5.0.1 in Launchpad at: 9 | 10 | https://launchpad.net/juniperopenstack/+milestone/r5.0.1 . 11 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/deprecated-items.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | ================ 5 | Deprecated Items 6 | ================ 7 | 8 | The following features have been deprecated in Tungsten Fabric Release 5.0.1. 9 | 10 | - Virtual Extensible LAN (VXLAN) and the Open vSwitch Database (OVSDB) management protocol based ToR and ToR services node (TSN) solution for bare metal-workload support is deprecated. Customers are recommended to use EVPN-VXLAN based Tungsten Fabric Service Node solution which is more scalable. 11 | -------------------------------------------------------------------------------- /Governance/CommunityCommittee/README.md: -------------------------------------------------------------------------------- 1 | Tungsten Fabric Governance Working Group 2 | ======================================== 3 | 4 | The Tungsten Fabric Governance Working Group is one of three committees formed at 5 | the Tungsten Fabric Summit of June 2017. The GWG is tasked with evaluating options 6 | for foundations or other formal structures for structuring the Tungsten Fabric 7 | community in order to allow equal participation from contributors from multiple 8 | companies and to provide for shared maintenance of project infrastructure as 9 | well as marketing efforts to grow both the contributor and user communities. 10 | 11 | The GWG is likely a precursor to a Board of Directors or Board of Trustees. 12 | The actual Board structure will depend on the recommendations of the GWG. 13 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/intro.rst: -------------------------------------------------------------------------------- 1 | 2 | ============ 3 | Introduction 4 | ============ 5 | 6 | Tungsten Fabric is an open, standards-based software solution that delivers network virtualization and service automation for federated cloud networks. It provides self-service provisioning, improves network troubleshooting and diagnostics, and enables service chaining for dynamic application environments across enterprise virtual private cloud (VPC), managed Infrastructure as a Service (IaaS), and Networks Functions Virtualization (NFV) use cases. 7 | 8 | These release notes accompany Release 5.0 of Tungsten Fabric. They describe new features, limitations, and known problems. 9 | 10 | These release notes are displayed on the Tungsten Fabric Documentation Web page at: 11 | 12 | `https://github.com/tungstenfabric/docs/tree/master/releaseinfo/r5.0/releasenotes`_ . 13 | 14 | .. _https://github.com/tungstenfabric/docs/tree/master/releaseinfo/r5.0/releasenotes: https://github.com/tungstenfabric/docs/tree/master/releaseinfo/r5.0/releasenotes 15 | 16 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/introduction.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | ============ 5 | Introduction 6 | ============ 7 | 8 | Tungsten Fabric is an open source project under Linux Foundation. It is standards-based software solution that delivers network virtualization and service automation for federated cloud networks. It provides self-service provisioning, improves network troubleshooting and diagnostics, and enables service chaining for dynamic application environments across enterprise virtual private cloud (VPC), managed Infrastructure as a Service (IaaS), and Networks Functions Virtualization (NFV) use cases. 9 | 10 | These release notes accompany Release 5.0.1 of Tungsten Fabric. They describe new features, limitations, and known problems. 11 | 12 | These release notes are displayed on the Tungsten Fabric Documentation Web page at https://github.com/tungstenfabric/docs/tree/master/releaseinfo/r5.0.1/releasenotes 13 | -------------------------------------------------------------------------------- /Governance/TSC-ATC_Members: -------------------------------------------------------------------------------- 1 | Eyal Lavee (Mellanox) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 2 | Edward Ting (Lenovo) Effective 2018-11-30https://lists.tungsten.io/g/tsc/responses?pollid=3456 3 | Prabhjot Singh Sethi (ATS) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 4 | Simon Horman (Netronome) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 5 | Henry Fowler (AT&T) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 6 | Pieter Jansen van Vuuren (Netronome) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 7 | Marc Rapoport (Juniper) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 8 | Frikkie Scholtz (Netronome) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 9 | Ashutosh Mishra(Cavium) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 10 | Bogdan Ratiu (Lenovo) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 11 | Heqing Zhu (Intel) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 12 | Andy Gospodarek (Broadcom) Effective 2018-11-30 https://lists.tungsten.io/g/tsc/responses?pollid=3456 13 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/index.rst: -------------------------------------------------------------------------------- 1 | 2 | ================================== 3 | Release Notes: Tungsten Fabric 5.0 4 | ================================== 5 | 6 | `Table of Contents`_ 7 | 8 | `Introduction`_ 9 | 10 | `New and Changed Features`_ 11 | 12 | `Supported Platforms Tungsten Fabric 5.0`_ 13 | 14 | `Known Behavior`_ 15 | 16 | `Resolved Issues`_ 17 | 18 | `Deprecated Items`_ 19 | 20 | `Requesting Technical Support`_ 21 | 22 | .. toctree:: 23 | :maxdepth: 2 24 | :titlesonly: 25 | :glob: 26 | :hidden: 27 | 28 | contrail-release-notes-5.0-title.rst 29 | intro.rst 30 | new-and-changed-features.rst 31 | supported-platforms-50-vnc.rst 32 | known-behavior.rst 33 | resolved-issues.rst 34 | deprecated-items.rst 35 | request-support.rst 36 | 37 | .. _Table of Contents: contrail-release-notes-5.0-title.html 38 | 39 | .. _Introduction: intro.html 40 | 41 | .. _New and Changed Features: new-and-changed-features.html 42 | 43 | .. _Supported Platforms Tungsten Fabric 5.0: supported-platforms-50-vnc.html 44 | 45 | .. _Known Behavior: known-behavior.html 46 | 47 | .. _Resolved Issues: resolved-issues.html 48 | 49 | .. _Deprecated Items: deprecated-items.html 50 | 51 | .. _Requesting Technical Support: request-support.html 52 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/themes/rtd/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = default 3 | stylesheet = rtd.css 4 | pygment_style = default 5 | show_sphinx = False 6 | 7 | [options] 8 | show_rtd = True 9 | 10 | white = #ffffff 11 | almost_white = #f8f8f8 12 | barely_white = #f2f2f2 13 | dirty_white = #eeeeee 14 | almost_dirty_white = #e6e6e6 15 | dirtier_white = #dddddd 16 | lighter_gray = #cccccc 17 | gray_a = #aaaaaa 18 | gray_9 = #999999 19 | light_gray = #888888 20 | gray_7 = #777777 21 | gray = #666666 22 | dark_gray = #444444 23 | gray_2 = #222222 24 | black = #111111 25 | light_color = #e8ecef 26 | light_medium_color = #DDEAF0 27 | medium_color = #8ca1af 28 | medium_color_link = #86989b 29 | medium_color_link_hover = #a6b8bb 30 | dark_color = #465158 31 | 32 | h1 = #000000 33 | h2 = #465158 34 | h3 = #6c818f 35 | 36 | link_color = #444444 37 | link_color_decoration = #CCCCCC 38 | 39 | medium_color_hover = #697983 40 | green_highlight = #8ecc4c 41 | 42 | 43 | positive_dark = #609060 44 | positive_medium = #70a070 45 | positive_light = #e9ffe9 46 | 47 | negative_dark = #900000 48 | negative_medium = #b04040 49 | negative_light = #ffe9e9 50 | negative_text = #c60f0f 51 | 52 | ruler = #abc 53 | 54 | viewcode_bg = #f4debf 55 | viewcode_border = #ac9 56 | 57 | highlight = #ffe080 58 | 59 | 60 | background = #465158 61 | background_link = #ffffff 62 | background_link_half = #ffffff 63 | background_text = #eeeeee 64 | background_text_link = #86989b 65 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/gettingstarted/rst/themes/rtd/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = default 3 | stylesheet = rtd.css 4 | pygment_style = default 5 | show_sphinx = False 6 | 7 | [options] 8 | show_rtd = True 9 | 10 | white = #ffffff 11 | almost_white = #f8f8f8 12 | barely_white = #f2f2f2 13 | dirty_white = #eeeeee 14 | almost_dirty_white = #e6e6e6 15 | dirtier_white = #dddddd 16 | lighter_gray = #cccccc 17 | gray_a = #aaaaaa 18 | gray_9 = #999999 19 | light_gray = #888888 20 | gray_7 = #777777 21 | gray = #666666 22 | dark_gray = #444444 23 | gray_2 = #222222 24 | black = #111111 25 | light_color = #e8ecef 26 | light_medium_color = #DDEAF0 27 | medium_color = #8ca1af 28 | medium_color_link = #86989b 29 | medium_color_link_hover = #a6b8bb 30 | dark_color = #465158 31 | 32 | h1 = #000000 33 | h2 = #465158 34 | h3 = #6c818f 35 | 36 | link_color = #444444 37 | link_color_decoration = #CCCCCC 38 | 39 | medium_color_hover = #697983 40 | green_highlight = #8ecc4c 41 | 42 | 43 | positive_dark = #609060 44 | positive_medium = #70a070 45 | positive_light = #e9ffe9 46 | 47 | negative_dark = #900000 48 | negative_medium = #b04040 49 | negative_light = #ffe9e9 50 | negative_text = #c60f0f 51 | 52 | ruler = #abc 53 | 54 | viewcode_bg = #f4debf 55 | viewcode_border = #ac9 56 | 57 | highlight = #ffe080 58 | 59 | 60 | background = #465158 61 | background_link = #ffffff 62 | background_link_half = #ffffff 63 | background_text = #eeeeee 64 | background_text_link = #86989b 65 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/themes/rtd/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = default 3 | stylesheet = rtd.css 4 | pygment_style = default 5 | show_sphinx = False 6 | 7 | [options] 8 | show_rtd = True 9 | 10 | white = #ffffff 11 | almost_white = #f8f8f8 12 | barely_white = #f2f2f2 13 | dirty_white = #eeeeee 14 | almost_dirty_white = #e6e6e6 15 | dirtier_white = #dddddd 16 | lighter_gray = #cccccc 17 | gray_a = #aaaaaa 18 | gray_9 = #999999 19 | light_gray = #888888 20 | gray_7 = #777777 21 | gray = #666666 22 | dark_gray = #444444 23 | gray_2 = #222222 24 | black = #111111 25 | light_color = #e8ecef 26 | light_medium_color = #DDEAF0 27 | medium_color = #8ca1af 28 | medium_color_link = #86989b 29 | medium_color_link_hover = #a6b8bb 30 | dark_color = #465158 31 | 32 | h1 = #000000 33 | h2 = #465158 34 | h3 = #6c818f 35 | 36 | link_color = #444444 37 | link_color_decoration = #CCCCCC 38 | 39 | medium_color_hover = #697983 40 | green_highlight = #8ecc4c 41 | 42 | 43 | positive_dark = #609060 44 | positive_medium = #70a070 45 | positive_light = #e9ffe9 46 | 47 | negative_dark = #900000 48 | negative_medium = #b04040 49 | negative_light = #ffe9e9 50 | negative_text = #c60f0f 51 | 52 | ruler = #abc 53 | 54 | viewcode_bg = #f4debf 55 | viewcode_border = #ac9 56 | 57 | highlight = #ffe080 58 | 59 | 60 | background = #465158 61 | background_link = #ffffff 62 | background_link_half = #ffffff 63 | background_text = #eeeeee 64 | background_text_link = #86989b 65 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/themes/contrail/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = default 3 | stylesheet = rtd.css 4 | pygment_style = default 5 | show_sphinx = False 6 | 7 | [options] 8 | show_rtd = True 9 | 10 | white = #ffffff 11 | almost_white = #f8f8f8 12 | barely_white = #f2f2f2 13 | dirty_white = #eeeeee 14 | almost_dirty_white = #e6e6e6 15 | dirtier_white = #dddddd 16 | lighter_gray = #cccccc 17 | gray_a = #aaaaaa 18 | gray_9 = #999999 19 | light_gray = #888888 20 | gray_7 = #777777 21 | gray = #666666 22 | dark_gray = #444444 23 | gray_2 = #222222 24 | black = #111111 25 | light_color = #e8ecef 26 | light_medium_color = #DDEAF0 27 | medium_color = #8ca1af 28 | medium_color_link = #86989b 29 | medium_color_link_hover = #a6b8bb 30 | dark_color = #465158 31 | 32 | h1 = #000000 33 | h2 = #465158 34 | h3 = #6c818f 35 | 36 | link_color = #444444 37 | link_color_decoration = #CCCCCC 38 | 39 | medium_color_hover = #697983 40 | green_highlight = #8ecc4c 41 | 42 | 43 | positive_dark = #609060 44 | positive_medium = #70a070 45 | positive_light = #e9ffe9 46 | 47 | negative_dark = #900000 48 | negative_medium = #b04040 49 | negative_light = #ffe9e9 50 | negative_text = #c60f0f 51 | 52 | ruler = #abc 53 | 54 | viewcode_bg = #f4debf 55 | viewcode_border = #ac9 56 | 57 | highlight = #ffe080 58 | 59 | 60 | background = #465158 61 | background_link = #ffffff 62 | background_link_half = #ffffff 63 | background_text = #eeeeee 64 | background_text_link = #86989b 65 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/gettingstarted/rst/themes/contrail/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = default 3 | stylesheet = rtd.css 4 | pygment_style = default 5 | show_sphinx = False 6 | 7 | [options] 8 | show_rtd = True 9 | 10 | white = #ffffff 11 | almost_white = #f8f8f8 12 | barely_white = #f2f2f2 13 | dirty_white = #eeeeee 14 | almost_dirty_white = #e6e6e6 15 | dirtier_white = #dddddd 16 | lighter_gray = #cccccc 17 | gray_a = #aaaaaa 18 | gray_9 = #999999 19 | light_gray = #888888 20 | gray_7 = #777777 21 | gray = #666666 22 | dark_gray = #444444 23 | gray_2 = #222222 24 | black = #111111 25 | light_color = #e8ecef 26 | light_medium_color = #DDEAF0 27 | medium_color = #8ca1af 28 | medium_color_link = #86989b 29 | medium_color_link_hover = #a6b8bb 30 | dark_color = #465158 31 | 32 | h1 = #000000 33 | h2 = #465158 34 | h3 = #6c818f 35 | 36 | link_color = #444444 37 | link_color_decoration = #CCCCCC 38 | 39 | medium_color_hover = #697983 40 | green_highlight = #8ecc4c 41 | 42 | 43 | positive_dark = #609060 44 | positive_medium = #70a070 45 | positive_light = #e9ffe9 46 | 47 | negative_dark = #900000 48 | negative_medium = #b04040 49 | negative_light = #ffe9e9 50 | negative_text = #c60f0f 51 | 52 | ruler = #abc 53 | 54 | viewcode_bg = #f4debf 55 | viewcode_border = #ac9 56 | 57 | highlight = #ffe080 58 | 59 | 60 | background = #465158 61 | background_link = #ffffff 62 | background_link_half = #ffffff 63 | background_text = #eeeeee 64 | background_text_link = #86989b 65 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/themes/tungsten/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = default 3 | stylesheet = rtd.css 4 | pygment_style = default 5 | show_sphinx = False 6 | 7 | [options] 8 | show_rtd = True 9 | 10 | white = #ffffff 11 | almost_white = #f8f8f8 12 | barely_white = #f2f2f2 13 | dirty_white = #eeeeee 14 | almost_dirty_white = #e6e6e6 15 | dirtier_white = #dddddd 16 | lighter_gray = #cccccc 17 | gray_a = #aaaaaa 18 | gray_9 = #999999 19 | light_gray = #888888 20 | gray_7 = #777777 21 | gray = #666666 22 | dark_gray = #444444 23 | gray_2 = #222222 24 | black = #111111 25 | light_color = #e8ecef 26 | light_medium_color = #DDEAF0 27 | medium_color = #8ca1af 28 | medium_color_link = #86989b 29 | medium_color_link_hover = #a6b8bb 30 | dark_color = #465158 31 | 32 | h1 = #000000 33 | h2 = #465158 34 | h3 = #6c818f 35 | 36 | link_color = #444444 37 | link_color_decoration = #CCCCCC 38 | 39 | medium_color_hover = #697983 40 | green_highlight = #8ecc4c 41 | 42 | 43 | positive_dark = #609060 44 | positive_medium = #70a070 45 | positive_light = #e9ffe9 46 | 47 | negative_dark = #900000 48 | negative_medium = #b04040 49 | negative_light = #ffe9e9 50 | negative_text = #c60f0f 51 | 52 | ruler = #abc 53 | 54 | viewcode_bg = #f4debf 55 | viewcode_border = #ac9 56 | 57 | highlight = #ffe080 58 | 59 | 60 | background = #465158 61 | background_link = #ffffff 62 | background_link_half = #ffffff 63 | background_text = #eeeeee 64 | background_text_link = #86989b 65 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/index.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | ==================================== 5 | Release Notes: Tungsten Fabric 5.0.1 6 | ==================================== 7 | 8 | `Table of Contents`_ 9 | 10 | `Introduction`_ 11 | 12 | `New and Changed Features`_ 13 | 14 | `Supported Platforms Tungsten Fabric 5.0.1`_ 15 | 16 | `Known Behavior`_ 17 | 18 | `Resolved Issues`_ 19 | 20 | `Deprecated Items`_ 21 | 22 | `Requesting Technical Support`_ 23 | 24 | `Revision History`_ 25 | 26 | 27 | .. toctree:: 28 | :maxdepth: 2 29 | :titlesonly: 30 | :glob: 31 | :hidden: 32 | 33 | tungsten-release-notes-5.0.1-title.rst 34 | introduction.rst 35 | new-and-changed-features.rst 36 | supported-platforms-50-vnc.rst 37 | known-behavior.rst 38 | resolved-issues.rst 39 | deprecated-items.rst 40 | request-support.rst 41 | 42 | .. _Table of Contents: tungsten-release-notes-5.0.1-title.html 43 | 44 | .. _Introduction: introduction.html 45 | 46 | .. _New and Changed Features: new-and-changed-features.html 47 | 48 | .. _Supported Platforms Tungsten Fabric 5.0.1: supported-platforms-50-vnc.html 49 | 50 | .. _Known Behavior: known-behavior.html 51 | 52 | .. _Resolved Issues: resolved-issues.html 53 | 54 | .. _Deprecated Items: deprecated-items.html 55 | 56 | .. _Requesting Technical Support: request-support.html 57 | 58 | .. _Revision History: request-support.html 59 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/supported-platforms-50-vnc.rst: -------------------------------------------------------------------------------- 1 | 2 | ======================================= 3 | Supported Platforms Tungsten Fabric 5.0 4 | ======================================= 5 | 6 | `Table 1`_ lists the orchestrator releases and the corresponding operating systems and kernel versions supported by Tungsten Fabric Release 5.0. 7 | 8 | .. _Table 1: 9 | 10 | *Table 1* : Supported Platforms 11 | 12 | +------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 13 | | Tungsten Fabric Release | Orchestrator Release | Deployment Tool | Operating System, Kernel, and Key components version | 14 | +==============================+======================+=================+=============================================================================+ 15 | | Tungsten Fabric Release 5.0 | Kubernetes 1.9.5 | Ansible | - CentOS 7.4—Linux Kernel Version 3.10.0-693.21.1 Docker version: 17.03.1-ce| 16 | +------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 17 | | | Openshift 3.7 | Ansible | - CentOS 7.4—Linux Kernel Version 3.10.0-693.21.1 | 18 | | | | | Ansible version: 2.5.1 Docker version: 1.12.6 | 19 | +------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 20 | | | OpenStack Ocata | Ansible | - CentOS 7.4—Linux Kernel Version 3.10.0-693.21.1 | 21 | | | | | Ansible version: 2.4.2 Docker version: 17.03.1-ce | 22 | | | +-----------------+-----------------------------------------------------------------------------+ 23 | | | | Helm | - Ubuntu 16.04.3—Linux Kernel Version 4.4.0-87 | 24 | | | | | Docker version: 1.13.1 Helm version: 2.7.2 Kubernetes version: 1.9.3 | 25 | +------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 26 | | | VMware vCenter 6.5 | Ansible | - ESX version 6.5 CentOS VM version running vRouter: | 27 | | | | | CentOS 7.4—Linux Kernel Version 3.10.0-693.21.1 | 28 | +------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > ⚠️ 2 | 3 | > To report a bug for any part of the Tungsten Fabric project, including documentation, please use the [Tungsten Fabric Jira](https://jira.tungsten.io). 4 | 5 | > ⚠️ 6 | 7 | # Welcome to the Tungsten Fabric Community! 8 | 9 | Tungsten Fabric (formerly known as OpenContrail) is a secure software defined networking project designed for the cloud native, multicloud environment. Placing it on top of any IP network allows you to have a single portal for defining, monitoring, and analyzing your entire multicloud network, its security, and its performance. 10 | 11 | Using Tungsten Fabric, you can write and deploy network and security policies that are portable to any cloud environment. All of your clouds can have a consistent and easily maintainable configuration. Standardized policies will make your security team happy, too. 12 | 13 | ## We welcome new contributors! 14 | 15 | Some useful Tungsten Fabric links: 16 | 17 | * Main website: https://tungsten.io 18 | * Wiki: https://wiki.tungsten.io 19 | * Issue Tracker: https://jira.tungsten.io 20 | * Mailing lists: https://lists.tungsten.io 21 | * Code review: https://gerrit.tungsten.io 22 | 23 | For now, you can also access some of the old sites from our former OpenContrail days, but these are no longer in active use: 24 | 25 | * Legacy issue tracker: https://launchpad.net/opencontrail 26 | * Legacy issue tracker: https://launchpad.net/juniperopenstack 27 | * Legacy code review: https://review.opencontrail.org 28 | 29 | ## Public Meetings 30 | 31 | Tungsten Fabric holds several regular public meetings via Zoom conference call. All 32 | participants are welcome! 33 | 34 | You can always find the full call schedule on the [community calendar](https://tungsten.io/community/), but some of the most important/interesting are also listed here… 35 | 36 | ### Technical Steering Committee 37 | 38 | The Technical Steerig Committee (TSC) is responsible for setting high level architecture goals and coordinating overall project architecture and technical direction of Tungsten Fabric. It's the main governing and community body of the project. 39 | 40 | This meeting is open to the public and all participants are welcome. 41 | 42 | * Date: Every Thursday 43 | * Time: 1000 Pacific Time (1700 UTC during US Daylight Savings Time) 44 | * Meeting URL: https://zoom.us/j/126834756 45 | * Agenda/Minutes: https://wiki.tungsten.io/display/TUN/Technical+Steering+Committee 46 | 47 | ### Infrastructure Working Group 48 | 49 | This group addresses technical work on the Continuous Integration (CI) system 50 | and developer environment. 51 | 52 | * Date: Every Tuesday 53 | * Time: 0800 Pacific Time (1500 UTC during US Daylight Savings Time) 54 | * Meeting URL: https://zoom.us/j/172248735 55 | * Agenda/Minutes: https://wiki.tungsten.io/display/TUN/Community+Infrastructure+Working+Group 56 | 57 | ### Documentation Working Group 58 | 59 | This group works on the user and developer facing documentation. 60 | 61 | * Date: Every Wednesday 62 | * Time: 0830 Pacific Time (1530 UTC during US Daylight Savings Time) 63 | * Meeting URL: https://zoom.us/j/939908205 64 | * Agenda/Minutes: https://wiki.tungsten.io/display/TUN/Documentation+Working+Group 65 | 66 | ### Marketing Working Group 67 | 68 | This group works to get the word out about Tungsten Fabric and promote TF usage and adoption. 69 | 70 | * Date: Every Friday 71 | * Time: 1030 Pacific Time (1730 UTC during US Daylight Savings Time) 72 | * Meeting URL: https://zoom.us/j/742093023 73 | * Agenda/Minutes: https://wiki.tungsten.io/display/TUN/Marketing+Working+Group+Meetings 74 | 75 | ## Licensing 76 | 77 | All documentation received to and made available by the Tungsten Fabric community, including but not limited to the documentation in this repository, is licensed under the Creative Commons Attribution 4.0 International License. 78 | 79 | Please see the `LICENSE` file for complete information. 80 | 81 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/supported-platforms-50-vnc.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | ========================================= 5 | Supported Platforms Tungsten Fabric 5.0.1 6 | ========================================= 7 | 8 | `Table 2`_ lists the orchestrator releases and the corresponding operating systems and kernel versions supported by Tungsten Fabric Release 5.0.1. 9 | 10 | .. _Table 2: 11 | 12 | *Table 2* : Supported Platforms 13 | 14 | +--------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 15 | | Tungsten Fabric Release | Orchestrator Release | Deployment Tool | Operating System, Kernel, and Key components version | 16 | +================================+======================+=================+=============================================================================+ 17 | | Tungsten Fabric Release 5.0.1 | Kubernetes 1.9.2 | Ansible | - CentOS 7.5—Linux Kernel Version 3.10.0-862.11.6 Docker version: 18.06.0-ce| 18 | +--------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 19 | | | Openshift 3.9 | Ansible | - CentOS 7.5—Linux Kernel Version 3.10.0-862.11.6 | 20 | | | | | Ansible version: 2.5.7 Docker version: 1.13.1 | 21 | +--------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 22 | | | OpenStack Queens | Ansible | - CentOS 7.5—Linux Kernel Version 3.10.0-862.11.6 | 23 | | | | | Ansible version: 2.4.2 Docker version: 18.06.0-ce | 24 | +--------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 25 | | | OpenStack Ocata | Ansible | - CentOS 7.5—Linux Kernel Version 3.10.0-862.11.6 | 26 | | | | | Ansible version: 2.4.2 Docker version: 18.06.0-ce | 27 | | | +-----------------+-----------------------------------------------------------------------------+ 28 | | | | Helm | - Ubuntu 16.04.3—Linux Kernel Version 4.4.0-112-generic | 29 | | | | | Docker version: 17.03.2-ce Helm version: 2.7.2 Kubernetes version: 1.9.3 | 30 | +--------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 31 | | | RedHatOpenStack | RHOSP 13 | - RHEL7.5—Linux Kernel Version | 32 | | | Platform 13 | director | | 33 | +--------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 34 | | | VMware vCenter 6.5 | Ansible | - ESX version 6.5 CentOS VM version running vRouter: | 35 | | | | | CentOS 7.5—Linux Kernel Version 3.10.0-862.9.1 | 36 | +--------------------------------+----------------------+-----------------+-----------------------------------------------------------------------------+ 37 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/contrail-release-notes-5.0-title.rst: -------------------------------------------------------------------------------- 1 | 2 | =========================== 3 | Tungsten Fabric Release 5.0 4 | =========================== 5 | 6 | ============= 7 | Release Notes 8 | ============= 9 | 10 | Release 5.0 11 | 12 | May 2018 13 | 14 | Table of Contents 15 | ================= 16 | 17 | - `Introduction`_ 18 | 19 | 20 | - `New and Changed Features`_ 21 | 22 | - `Ansible Scripts to Provision Tungsten Fabric`_ 23 | 24 | 25 | - `Tungsten Fabric Microservices`_ 26 | 27 | 28 | - `Containerization of DPDK vRouter`_ 29 | 30 | 31 | - `Distributed Source Network Address Translation (SNAT)`_ 32 | 33 | 34 | - `EVPN vRouter MultiHoming to Multiple ToRs`_ 35 | 36 | 37 | - `Fat Flow Enhancements`_ 38 | 39 | 40 | - `Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy`_ 41 | 42 | 43 | - `Kubernetes Updates`_ 44 | 45 | 46 | - `Routing Policies Enhanced for Interface Routes`_ 47 | 48 | 49 | - `Service Instance Health Check Failure`_ 50 | 51 | 52 | - `Support for Load Balancing as a Service (LBaaS) in the Web UI`_ 53 | 54 | 55 | - `Support for Security Policies Draft Mode`_ 56 | 57 | 58 | - `Support for Virtual Network Route Tables in Tungsten Fabric Introspect`_ 59 | 60 | 61 | - `Support for a Flow-Hold Entries Counter in vRouter UVEs`_ 62 | 63 | 64 | - `Timestamp In UVE API Response`_ 65 | 66 | 67 | - `Timestamp In UVE Stream Response`_ 68 | 69 | 70 | - `Using Helm Charts to Provision Tungsten Fabric`_ 71 | 72 | 73 | - `Tungsten Fabric Plugin For VMware vRealize Orchestrator—Beta`_ 74 | 75 | 76 | - `RBAC Support for Tungsten Fabric Analytics API—Beta`_ 77 | 78 | 79 | - `Remote Compute—Beta`_ 80 | 81 | 82 | - `OpenShift Enterprise`_ 83 | 84 | 85 | 86 | - `Supported Platforms Tungsten Fabric 5.0`_ 87 | 88 | 89 | - `Known Behavior`_ 90 | 91 | 92 | - `Resolved Issues`_ 93 | 94 | 95 | - `Deprecated Items`_ 96 | 97 | 98 | - `Requesting Technical Support`_ 99 | 100 | 101 | - `Revision History`_ 102 | 103 | 104 | .. _Introduction: intro.html 105 | 106 | .. _New and Changed Features: new-and-changed-features.html 107 | 108 | .. _Ansible Scripts to Provision Tungsten Fabric: new-and-changed-features.html 109 | 110 | .. _Tungsten Fabric Microservices: new-and-changed-features.html 111 | 112 | .. _Containerization of DPDK vRouter: new-and-changed-features.html 113 | 114 | .. _Distributed Source Network Address Translation (SNAT): new-and-changed-features.html 115 | 116 | .. _EVPN vRouter MultiHoming to Multiple ToRs: new-and-changed-features.html 117 | 118 | .. _Fat Flow Enhancements: new-and-changed-features.html 119 | 120 | .. _Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy: new-and-changed-features.html 121 | 122 | .. _Kubernetes Updates: new-and-changed-features.html 123 | 124 | .. _Routing Policies Enhanced for Interface Routes: new-and-changed-features.html 125 | 126 | .. _Service Instance Health Check Failure: new-and-changed-features.html 127 | 128 | .. _Support for Load Balancing as a Service (LBaaS) in the Web UI: new-and-changed-features.html 129 | 130 | .. _Support for Security Policies Draft Mode: new-and-changed-features.html 131 | 132 | .. _Support for Virtual Network Route Tables in Tungsten Fabric Introspect: new-and-changed-features.html 133 | 134 | .. _Support for a Flow-Hold Entries Counter in vRouter UVEs: new-and-changed-features.html 135 | 136 | .. _Timestamp In UVE API Response: new-and-changed-features.html 137 | 138 | .. _Timestamp In UVE Stream Response: new-and-changed-features.html 139 | 140 | .. _Using Helm Charts to Provision Tungsten Fabric: new-and-changed-features.html 141 | 142 | .. _Tungsten Fabric Plugin For VMware vRealize Orchestrator—Beta: new-and-changed-features.html 143 | 144 | .. _RBAC Support for Tungsten Fabric Analytics API—Beta: new-and-changed-features.html 145 | 146 | .. _Remote Compute—Beta: new-and-changed-features.html 147 | 148 | .. _OpenShift Enterprise: new-and-changed-features.html 149 | 150 | .. _Supported Platforms Tungsten Fabric 5.0: supported-platforms-50-vnc.html 151 | 152 | .. _Known Behavior: known-behavior.html 153 | 154 | .. _Resolved Issues: resolved-issues.html 155 | 156 | .. _Deprecated Items: deprecated-items.html 157 | 158 | .. _Requesting Technical Support: request-support.html 159 | 160 | .. _Revision History: request-support.html 161 | -------------------------------------------------------------------------------- /Governance/README.md: -------------------------------------------------------------------------------- 1 | # Tungsten Fabric Governance 2 | 3 | ## Governance Documents 4 | 5 | * [Technical Charter](./TungstenFabricProjectTechnicalCharter.rst): The founding document for Tungsten Fabric. 6 | * [Community Governance Document](./TungstenFabricCommunityGovernance.rst): A detailed description of the governance of Tungsten Fabric. 7 | 8 | ## Current Committee Membership 9 | 10 | * [Architecture Review Board](./ArchitectureReviewBoard/ARB_Members) 11 | * [Community Committee](./CommunityCommittee/CC_Members) 12 | * [Technical Committee](./TechnicalCommittee/TC_Members) 13 | * [Active Community Contributors](./ACC_Members) 14 | * [TSC Approved Active Technical Contributors](./TSC-ATC_Members) 15 | 16 | ## Elections 17 | 18 | The [Election Mechanics](https://wiki.tungsten.io/display/TUN/Election+Mechanics) wiki page supplements the Charter and Governance Document with specific details such as tools, timelines and exact process details. Changes to this page must be approved by the TSC, but should not contradict anything in either the Charter or Governance Document. 19 | 20 | ## Overview of the Tungsten Fabric Community and Governance Groups 21 | 22 | All of these things are visualised in [this diagram](./TSCVotersAndCandidates/TSCVotersAndCandidates-diagram.png): 23 | 24 | ![TF TSC Voters and Candidates Diagram](./TSCVotersAndCandidates/TSCVotersAndCandidates-diagram.png) 25 | 26 | ### The basic groups in the TF community 27 | 28 | * **Community At Large**: All TF users and contributors. 29 | * **Active Technical Contributors (ATC)**: People who have had a patch merged within the past 12 months. Defined in [Sections 3.2 and 5.2.3.2.3](./TungstenFabricCommunityGovernance.rst) of the Community Governance document. 30 | * **Technical Steering Committee Approved Active Technical Contributors (TSC-ATC)**: People who have made technical contributions (participated in architectural discussions, for instance), but who have not had a patch merged. Defined in [Section 5.2.4.2.1](./TungstenFabricCommunityGovernance.rst) of the Community Governance document. 31 | * **Active Community Contributors (ACC)**: People who have made non-technical contributions that further the mission of TF. Defined in [Section 5.2.4.2.3](./TungstenFabricCommunityGovernance.rst) of the Community Governance document. 32 | 33 | ### Groups directly involved in TF governance 34 | 35 | * **Technical Project Leadership**: ATC + TSC-ATC. 36 | * **Technical Committee (TC)**: An elected standing committee of TF composed of 5 people elected out of the Technical Project Leadership. These people also are members of the Technical Steering Committee (TSC; see below). Defined in [Section 5.2.2](./TungstenFabricCommunityGovernance.rst) of the Community Governance document. 37 | * **Community Committee (CC)**: An elected standing committee of TF composed of 5 people elected out of the Community At Large. These people also are members of the Technical Steering Committee (TSC; see below). Defined in [Section 5.2.2](./TungstenFabricCommunityGovernance.rst) of the Community Governance document. 38 | * **Architecture Review Board (ARB)**: A nominated and TSC-confirmed standing committee of TF composed of 7 people from the Community At Large. Defined in [Section 5.2.2](./TungstenFabricCommunityGovernance.rst) of the Community Governance document. 39 | * **Technical Steering Committee (TSC)**: Overall leadership for the TF project. Composed of the entirety of the TC and CC plus one member of the ARB. Defined further in [Section 2](./TungstenFabricProjectTechnicalCharter.rst) of the Technical Charter and [Section 5](./TungstenFabricCommunityGovernance.rst) of the Community Governance document. 40 | 41 | ### Other roles 42 | 43 | * **Project Technical Lead (PTL)**: The leader and spokesperson for a sub-project of TF. This is an elected postion. The PTL for a project is likely to be on the TSC or the ARB, but this is not a requirement of the position. 44 | * **Voting community member**: In order to vote in TF elections, a person must be in the ATC, TSC-ATC, or ACC, which is to say, they must be recognised as a contributing member of the community. This is defined in [Section 5.2.4.3](./TungstenFabricCommunityGovernance.rst) of the Community Governance document. 45 | 46 | ## Acronym Reference 47 | 48 | Yes, there are a lot of them. We've collected them here for ease of reference. 49 | 50 | * ACC: Active Community Contributor 51 | * ARB: Architecture Review Board 52 | * ATC: Active Tecnical Contributor 53 | * CC: Community Committee 54 | * PTL: Project Technical Lead 55 | * TC: Technical Committee 56 | * TSC: Technical Steering Committee 57 | * TSC-ATC: Technical Steering Committee approved Active Technical Contributor 58 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/known-behavior.rst: -------------------------------------------------------------------------------- 1 | 2 | ============== 3 | Known Behavior 4 | ============== 5 | 6 | This section lists known limitations with this release. Bug numbers are listed and can be researched in `Launchpad.net`_ . 7 | 8 | - 1694343 In DPDK vRouter use cases such as SNAT and LBaas that require netns, you cannot set jumbo MTU size. Maximum MTU allowed: <=1500 . 9 | 10 | There is no workaround at present. 11 | 12 | 13 | - 1716308 When the vRouter receives the head fragment of an ICMPv6 packet, the head fragment is immediately enqueued to the assembler. The flow is created as hold flow and then trapped to the agent. If fragments corresponding to this head fragment are already in the assembler or if new fragments arrive immediately after the head fragment, the assembler releases them to flow module. Fragments get enqueued in the hold queue if agent does not write flow action by the time the assembler releases fragments to the flow module. A maximum of three fragments are enqueued in the hold queue at a time. The remaining fragments are dropped from the assembler to the flow module. 14 | 15 | As a workaround, the head fragment is enqueued to assembler only after flow action is written by agent. If the flow is already present in non-hold state, it is immediately enqueued to assembler. 16 | 17 | 18 | - 1730021 In Tungsten Fabric Security, non-admin users cannot access global scope objects when global_accessis set to 0. 19 | 20 | As a workaround, for non-admin users to access global scope objects, set global_accessto 5. 21 | 22 | 23 | - 1733027 In a multi-node analytics cluster, when one of analytics nodes shuts down or is rebooted, the contrail-status on the other analytics nodes displays the status of contrail-analytics-api and contrail-alarm-gen as initializing with the error message: Redis-UVE::6381[None] connection down. This does not impact the functioning of the analytics cluster. 24 | 25 | 26 | - 1735590 In Kubernetes and OpenShift based deployments when we crate SNAT router and extend cluster-network to that SNAT router host is losing all connectivity. 27 | 28 | As a workaround, if you want to use the SNAT feature in Tungsten Fabric, disassociate the ip-fabric-cluster-network-default policy and delete it. 29 | 30 | 31 | - 1749614 In a Helm-based provisioned cluster, VM launch fails if MariaDB replication is set to >1. 32 | 33 | 34 | - 1754742 When you receive an error message during Kolla provisioning, rerunning the code will not work. In order for the provisioning to work, restart provisioning from scratch. 35 | 36 | 37 | - 1755997 Kubernetes IP fabric feature is supported only on the pods and not the services. 38 | 39 | 40 | - 1759576 Metadata SSL works only in HA deployment mode. 41 | 42 | 43 | - 1759695 After deleting a vRouter chart with DPDK, the NICS do not rebind to the host in Helm. 44 | 45 | 46 | - 1761137 High Availability provisioning of Kubernetes master is not supported. 47 | 48 | 49 | - 1764739 Docker restart hangs indefinitely and Docker daemon stops running post the hang. 50 | 51 | 52 | - 1764925 RabbitMQ clustering fails on certain nodes in a setup. As a workaround, restart the container that is not in the cluster. 53 | 54 | 55 | - 1765277 When a snapshot of an active VM fails, shutdown the VM before generating the snapshot. 56 | 57 | 58 | - 1765281 On a DPDK compute vif list –ratecore-dumps with traffic. 59 | 60 | 61 | - 1765487 A false alarm for config service is generated when configand configdbservices are installed on different nodes. Ignore the false alarm. 62 | 63 | 64 | - 1766035 On a Kubernetes cluster, a controller node reboot fails to re-establish the BGP XMPP connection with compute nodes. As a workaround, flush the iptables on the Kubernetes master. 65 | 66 | 67 | - 1766315 After provisioning Tungsten Fabric by using a Helm-based provisioned cluster, restart nova-compute container. 68 | 69 | 70 | - 1766371 OpenShift use cases work in non-HA environments only. 71 | 72 | 73 | - 1767094 Kube DNS fails to come online come up in a multi-interface setup. 74 | 75 | 76 | - 1767466 In Tungsten Fabric 5.0 release, with Tungsten Fabric Helm charts, Kubernetes ingress Web UI URL does not work when Web UI is started with secure (TLS) option. 77 | 78 | 79 | - 1767470 SR-IOV installation is not supported with contrail-helm-deployer. 80 | 81 | 82 | - 1767472 SR-IOV with DPDK co-existence deployment is not supported using contrail-helm-deployer. 83 | 84 | 85 | - 1759428 Cannot provision an external MX series router by running the provision_mx.pyscript that contains the list of external routers. 86 | 87 | 88 | 89 | .. _Launchpad.net: https://bugs.launchpad.net/juniperopenstack 90 | -------------------------------------------------------------------------------- /events/201809_ONS_Amsterdam/TF_workshop.md: -------------------------------------------------------------------------------- 1 | You can access this page also through the following shortcut: https://tinyurl.com/yb5b5fza 2 | 3 | **Always open URLs in a new tab or window** 4 | 5 | # 1. Deploying Tungsten Fabric 6 | 7 | ### 1.1. Where is Tungsten Fabric and its Deployer 8 | 9 | Source code is in different projects, you can have a glimpse here: 10 | 11 | URL #1: https://github.com/topics/opencontrail 12 | 13 | The containers are here: 14 | 15 | URL #2: https://hub.docker.com/r/opencontrailnightly 16 | 17 | There are several deployers and the most commonly used is: 18 | 19 | URL #3: https://github.com/Juniper/contrail-ansible-deployer/ 20 | 21 | ### 1.2. TF + Kubernetes in AWS 22 | 23 | One easy (but not free) way to get started is by running a cluster on AWS with Kubernetes and Tungsten fabric. 24 | 25 | There are many ways to get started and a decent one that works right now is: 26 | 27 | URL #4: https://tungstenfabric.github.io/website/Tungsten-Fabric-15-minute-deployment-with-k8s-on-AWS.html 28 | 29 | It is difficult to reverse engineer and to maintain and well... it may break in the future but don't worry, there are other similar approaches such as (although it says Contrail it's actually Tungsten Fabric): 30 | 31 | URL #5: https://github.com/Juniper/contrail-ansible-deployer/wiki/Deployment-Example:-Click-On-Deployment-of-Contrail-and-Kubernetes-in-AWS 32 | 33 | All these procedures rely on an instances.yaml file that defines the cluster. For example the latter procedure uses the following instances.yaml file. 34 | 35 | URL #6: https://s3.eu-west-2.amazonaws.com/contrail-k8s-workshop/aws-k8s-config.yaml 36 | 37 | ### 1.3. TF + Kubernetes + Openstack On Prem 38 | 39 | This procedure works perfectly fine and you can easily adapt it to any environment. In this case the very same TF cluster is integrated with both a Kubernetes cluster and an Openstack cluster. 40 | 41 | URL #7: https://github.com/Juniper/contrail-ansible-deployer/wiki/Deployment-Example%3A-Contrail-and-Kubernetes-and-Openstack 42 | 43 | # 2. Using TF 44 | 45 | ### 2.1. Playing with the TF + Kubernetes integration 46 | 47 | For the record there is a complete guide here but do **NOT** follow it here. 48 | 49 | URL #8: https://s3.eu-west-2.amazonaws.com/contrail-k8s-workshop/contrail-50-kubernetes-aws-cloudformation-openlab.docx 50 | 51 | You are going to do some basic experiments in a shared test. Here are the resulting VMs after applying that procedure on URL #4 plus some VM renaming and after adding root password access: 52 | 53 | * K8s Master + Controller: ssh root@18.130.5.116 / tungsten123 54 | * K8s Compute #1: ssh root@3.8.16.209 / tungsten123 55 | * K8s Compute #2: ssh root@3.8.16.108 / tungsten123 56 | 57 | All the following commands are to be executed on the controller and let's start with a very existential question. What is your nickname? OK whatever your nickname is (and make sure it's not Joe or Phil but something more unique) it becomes from now on. 58 | 59 | Use your super-advanced linux skills to create a file called .yml and add the following content, making sure you replace appropriately: 60 | 61 | ``` 62 | apiVersion: v1 63 | kind: Namespace 64 | metadata: 65 | name: "" 66 | annotations: { 67 | "opencontrail.org/isolation" : "true", 68 | } 69 | ``` 70 | 71 | Next, apply the following steps (thinking and/or waiting in between, and assuming that last night chaos still left a neurone alive): 72 | 73 | ``` 74 | kubectl create -f .yml ### ask the instructor to refresh the UI 75 | kubectl get ns 76 | kubectl describe ns/ 77 | 78 | cd k8s-demo 79 | cat po-ubuntuapp.yml 80 | kubectl create -n -f po-ubuntuapp.yml 81 | kubectl get pods -n -o wide 82 | 83 | cat rc-frontend.yml 84 | kubectl create -n -f rc-frontend.yml 85 | kubectl get pods -n -o wide 86 | 87 | kubectl expose -n frontend 88 | kubectl get svc -n 89 | 90 | kubectl exec -n ubuntuapp curl frontend ### repeat this several times in order to see the load balancing 91 | ``` 92 | 93 | Once this hello world is finished, the random guy in charge of the demo is going to show you some more advanced functionality. 94 | 95 | ### 2.2. Playing with the TF + Kubernetes + Openstack integration 96 | 97 | This part is a demo. 98 | 99 | # 3. Building TF 100 | 101 | The complete procedure to build RPMs and containers with upstream code, plus your own changes, is here: 102 | 103 | URL #9: https://github.com/Juniper/contrail-dev-env 104 | 105 | For the record the container build info is here: 106 | 107 | URL #10: https://github.com/Juniper/contrail-container-builder 108 | 109 | The random guy will show you a video. 110 | 111 | # 4. Debugging TF 112 | 113 | URL #11: https://github.com/Juniper/contrail-ansible-deployer/wiki/Debugging-contrail-code-in-contrail-microservices 114 | 115 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/tungsten-release-notes-5.0.1-title.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | ============================= 5 | Tungsten Fabric Release 5.0.1 6 | ============================= 7 | 8 | ============= 9 | Release Notes 10 | ============= 11 | 12 | Release 5.0.1 13 | 14 | September 2018 15 | 16 | Table of Contents 17 | ================= 18 | 19 | - `Introduction`_ 20 | 21 | 22 | - `New and Changed Features`_ 23 | 24 | - `New and Changed Features in Tungsten Fabric Release 5.0.1`_ 25 | 26 | 27 | - `Support for Advertising of Local AS to BGP Peers`_ 28 | 29 | 30 | - `Support for Red Hat OpenShift Container Platform Version 3.9`_ 31 | 32 | 33 | - `Support for EVPN Route Type 5`_ 34 | 35 | 36 | - `Tungsten Fabric Plugin For VMware vRealize Orchestrator`_ 37 | 38 | 39 | - `Support for Mellanox Connectx-5 NIC`_ 40 | 41 | 42 | - `Support for Remote Compute`_ 43 | 44 | 45 | - `Support for Red Hat OpenStack Platform Director 13`_ 46 | 47 | 48 | - `Ansible Scripts to Provision Tungsten Fabric`_ 49 | 50 | 51 | - `Tungsten Fabric Microservices`_ 52 | 53 | 54 | - `Containerization of DPDK vRouter`_ 55 | 56 | 57 | - `Distributed Source Network Address Translation (SNAT)`_ 58 | 59 | 60 | - `EVPN vRouter MultiHoming to Multiple ToRs`_ 61 | 62 | 63 | - `Fat Flow Enhancements`_ 64 | 65 | 66 | - `Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy`_ 67 | 68 | 69 | - `Kubernetes Updates`_ 70 | 71 | 72 | - `Routing Policies Enhanced for Interface Routes`_ 73 | 74 | 75 | - `Service Instance Health Check Failure`_ 76 | 77 | 78 | - `Support for Load Balancing as a Service (LBaaS) in the Web UI`_ 79 | 80 | 81 | - `Support for Security Policies Draft Mode`_ 82 | 83 | 84 | - `Support for Virtual Network Route Tables in Tungsten Fabric Introspect`_ 85 | 86 | 87 | - `Support for a Flow-Hold Entries Counter in vRouter UVEs`_ 88 | 89 | 90 | - `Timestamp In UVE API Response`_ 91 | 92 | 93 | - `Timestamp In UVE Stream Response`_ 94 | 95 | 96 | - `Using Helm Charts to Provision Tungsten Fabric`_ 97 | 98 | 99 | - `Known Behavior`_ 100 | 101 | 102 | - `Resolved Issues`_ 103 | 104 | 105 | - `Deprecated Items`_ 106 | 107 | 108 | - `Requesting Technical Support`_ 109 | 110 | 111 | - `Revision History`_ 112 | 113 | 114 | .. _Introduction: introduction.html 115 | 116 | .. _New and Changed Features: new-and-changed-features.html 117 | 118 | .. _New and Changed Features in Tungsten Fabric Release 5.0.1: new-and-changed-features.html 119 | 120 | .. _Support for Advertising of Local AS to BGP Peers: new-and-changed-features.html 121 | 122 | .. _Support for Red Hat OpenShift Container Platform Version 3.9: new-and-changed-features.html 123 | 124 | .. _Support for EVPN Route Type 5: new-and-changed-features.html 125 | 126 | .. _Tungsten Fabric Plugin For VMware vRealize Orchestrator: new-and-changed-features.html 127 | 128 | .. _Support for Mellanox Connectx-5 NIC: new-and-changed-features.html 129 | 130 | .. _Support for Remote Compute: new-and-changed-features.html 131 | 132 | .. _Support for Red Hat OpenStack Platform Director 13: new-and-changed-features.html 133 | 134 | .. _Documentation Update: new-and-changed-features.html 135 | 136 | .. _Ansible Scripts to Provision Tungsten Fabric: new-and-changed-features.html 137 | 138 | .. _Tungsten Fabric Microservices: new-and-changed-features.html 139 | 140 | .. _Containerization of DPDK vRouter: new-and-changed-features.html 141 | 142 | .. _Distributed Source Network Address Translation (SNAT): new-and-changed-features.html 143 | 144 | .. _EVPN vRouter MultiHoming to Multiple ToRs: new-and-changed-features.html 145 | 146 | .. _Fat Flow Enhancements: new-and-changed-features.html 147 | 148 | .. _Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy: new-and-changed-features.html 149 | 150 | .. _Kubernetes Updates: new-and-changed-features.html 151 | 152 | .. _Routing Policies Enhanced for Interface Routes: new-and-changed-features.html 153 | 154 | .. _Service Instance Health Check Failure: new-and-changed-features.html 155 | 156 | .. _Support for Load Balancing as a Service (LBaaS) in the Web UI: new-and-changed-features.html 157 | 158 | .. _Support for Security Policies Draft Mode: new-and-changed-features.html 159 | 160 | .. _Support for Virtual Network Route Tables in Tungsten Fabric Introspect: new-and-changed-features.html 161 | 162 | .. _Support for a Flow-Hold Entries Counter in vRouter UVEs: new-and-changed-features.html 163 | 164 | .. _Timestamp In UVE API Response: new-and-changed-features.html 165 | 166 | .. _Timestamp In UVE Stream Response: new-and-changed-features.html 167 | 168 | .. _Using Helm Charts to Provision Tungsten Fabric: new-and-changed-features.html 169 | 170 | .. _Known Behavior: known-behavior.html 171 | 172 | .. _Resolved Issues: resolved-issues.html 173 | 174 | .. _Deprecated Items: deprecated-items.html 175 | 176 | .. _Requesting Technical Support: request-support.html 177 | 178 | .. _Revision History: request-support.html 179 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/known-behavior.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | ============== 5 | Known Behavior 6 | ============== 7 | 8 | This section lists known limitations with this release. Bug numbers are listed and can be researched in `Launchpad.net`_ at `https://bugs.launchpad.net/juniperopenstack`_ . 9 | 10 | 11 | - 1628326 DPDK-based compute node may not handle ARP packets correctly if only one CPU core is assigned to the vRouter in the test bed file. 12 | 13 | 14 | - 1694343 In DPDK vRouter use cases such as SNAT and LBaaS that require netns, you cannot set jumbo MTU size. Maximum MTU allowed: <=1500 . There is no workaround at present. 15 | 16 | 17 | - 1714063 Analytics services does not support Keystone V3. 18 | 19 | 20 | - 1716308 When the vRouter receives the head fragment of an ICMPv6 packet, the head fragment is immediately enqueued to the assembler. The flow is created as hold flow and then trapped to the agent. If fragments corresponding to this head fragment are already in the assembler or if new fragments arrive immediately after the head fragment, the assembler releases them to flow module. Fragments get enqueued in the hold queue if agent does not write flow action by the time the assembler releases fragments to the flow module. A maximum of three fragments are enqueued in the hold queue at a time. The remaining fragments are dropped from the assembler to the flow module. 21 | 22 | As a workaround, the head fragment is enqueued to assembler only after flow action is written by agent. If the flow is already present in non-hold state, it is immediately enqueued to assembler. 23 | 24 | 25 | - 1730021 In Tungsten Fabric Security, non-admin users cannot access global scope objects when ``global_access`` is set to ``0``. 26 | 27 | As a workaround, for non-admin users to access global scope objects, set ``global_access`` to ``5``. 28 | 29 | 30 | - 1733027 In a multi-node analytics cluster, when one of analytics nodes shuts down or is rebooted, the contrail-status on the other analytics nodes displays the status of contrail-analytics-api and contrail-alarm-gen as initializing with the error message: ``Redis-UVE::6381[None] connection down``. This does not impact the functioning of the analytics cluster. 31 | 32 | 33 | - 1735057 When bringing up Tungsten Fabric cluster on Red Hat container, manually install docker-py on all the target nodes. 34 | 35 | - To install Pip, use the following command: 36 | :: 37 | 38 | wget https://bootstrap.pypa.io/get-pip.py python get-pip.py 39 | 40 | 41 | - To install docker-py, use the following command: 42 | :: 43 | 44 | pip install docker-py 45 | 46 | - 1749614 In a Helm-based provisioned cluster, VM launch fails if MariaDB replication is set to >1. 47 | 48 | 49 | - 1754742 When you receive an error message during Kolla provisioning, rerunning the code will not work. In order for the provisioning to work, restart provisioning from scratch. 50 | 51 | 52 | - 1755997 Kubernetes IP fabric feature is supported only on the pods and not the services. 53 | 54 | 55 | - 1759428 Cannot provision an external MX series router by running the provision_mx.pyscript that contains the list of external routers. 56 | 57 | 58 | - 1759576 Metadata SSL works only in HA deployment mode. 59 | 60 | 61 | - 1759695 After deleting a vRouter chart with DPDK, the NICS do not rebind to the host in Helm. 62 | 63 | 64 | - 1761137 High Availability provisioning of Kubernetes master is not supported. 65 | 66 | 67 | - 1764610 Ansible-deployer: DPDK PPS is low. 68 | 69 | 70 | - 1764739 Docker restart hangs indefinitely and Docker daemon stops running post the hang. 71 | 72 | 73 | - 1765281 On a DPDK compute vif list –ratecore-dumps with traffic. 74 | 75 | 76 | - 1766035 On a Kubernetes cluster, a controller node reboot fails to re-establish the BGP XMPP connection with compute nodes. As a workaround, flush the iptables on the Kubernetes master. 77 | 78 | 79 | - 1766315 After provisioning Tungsten Fabric by using a Helm-based provisioned cluster, restart nova-compute container. 80 | 81 | 82 | - 1767472 SR-IOV with DPDK co-existence deployment is not supported using contrail-helm-deployer. 83 | 84 | 85 | - 1781305 OpenShift deployer code does not have the option to choose different interface names for different physical nodes. 86 | 87 | 88 | - 1784085 OpenShift deployments do not install NTP on the nodes. After provisioning, you must install and start the ntpd on all Openshift nodes manually. 89 | 90 | 91 | - 1784750 Tungsten Fabric RBAC (API and analytics) policies are not part of Tungsten Fabric Helm charts unlike in OpenStack components. You cannot override global/domain/project RBAC policies while deploying Helm charts. 92 | 93 | 94 | - 1786487 Dynamic mirroring without Juniper header does not work for VxLAN encapsulation. 95 | 96 | 97 | - 1786511 rabbitmq cluster formation fails during Helm sanity job. As a workaround, update the rabbitmq section of the ``contrail-analytics/values.yaml`` and ``contrail-controller/values.yaml`` files, to include the IP addresses of the controller nodes. For example, change ``endpoints.rabbitmq.hosts.default: rabbitmq`` to ``endpoints.rabbitmq.hosts.default: "controller_node1_IP,controller_node2_IP,controller_node3_IP"`` . 98 | 99 | 100 | - 1786527 In Helm-based provisioning when the vRouter gets provisioned, the vRouter gets disconnected from other vRouters residing on different subnets. As a workaround, move the host routes used to reach different subnets to vhost0 interface and restart the system. 101 | 102 | 103 | - 1786560 In Kubernetes single yaml file-based provisioning, when the vRouter gets provisioned, the vRouter gets disconnected from other vRouters residing on different subnets. As a workaround, move the host routes used to reach different subnets to vhost0 interface and restart the system. 104 | 105 | 106 | - 1787303 Tungsten Fabric Release 5.0.1 uses DPDK version 17.11.03, DPDK vRouter using uio driver as vfio-pci, typically for Intel Fortville NICs, and needs firmware upgrade to the following version or later (if it is certified by users). 107 | 108 | driver: i40e 109 | 110 | version: 2.1.14-k 111 | 112 | firmware-version: 6.01 0x80003493 255.65535.255 113 | 114 | 115 | - 1789768 Instances.yml in the contrail_command container is populated with the default password instead of the one provided by the user. 116 | 117 | 118 | .. _Launchpad.net: https://bugs.launchpad.net/​ 119 | 120 | .. _https://bugs.launchpad.net/juniperopenstack: https://bugs.launchpad.net/juniperopenstack 121 | -------------------------------------------------------------------------------- /Contributor/GettingStarted/getting-started-with-tungstenfabric-development.md: -------------------------------------------------------------------------------- 1 | Getting Started with Tungsten Fabric Development 2 | ================================== 3 | This brief note would serve as a reference for a developer looking to start-up 4 | on the Tungsten Fabric development environment. 5 | 6 | PLEASE NOTE: Until 2018, Tungsten Fabric was named "OpenContrail". There are still several references to the old name in the code and other utilities. 7 | 8 | A new developer can refer to the Tungsten Fabric Architecture document at 9 | https://tungstenfabric.github.io/website/Tungsten-Fabric-Architecture.html. 10 | 11 | To get information about latest releases and schedule, please refer to: 12 | https://jira.tungsten.io 13 | 14 | #1. Registration and User Creation 15 | ---------------------------------- 16 | a. A new developer should register on Tungsten Fabric development/user mailing lists and Slack on this link: https://tungsten.io/community/ 17 | 18 | b. In order to submit blueprints for a new feature or to raise bugs on existing features, create a Linux Foundation ID: http://identity.linuxfoundation.org 19 | 20 | c. Have a look at the blueprints and bugs in our Jira: https://jira.tungsten.io 21 | 22 | d. Create a GitHub account by signing up on https://github.com/ (if you're not already registered) 23 | 24 | e. Confirm you can log into the Gerrit with your Linux Foundation ID: https://gerrit.tungsten.io 25 | 26 | #2. Ubuntu installation and configuration 27 | ------------------- 28 | Install Ubuntu version 16.04 trusty for the Tungsten Fabric stable installation. 29 | 30 | ##2.1 Relevant packages for the Tungsten Fabric installation. 31 | ------------------- 32 | sudo apt-get update 33 | sudo apt-get install git 34 | sudo apt-get install git-core 35 | sudo apt-get install ant 36 | sudo apt-get install aptitude 37 | sudo aptitude install build-essential 38 | sudo apt-get install libev4 libev-dev 39 | 40 | ##2.2 Generate SSH key and add it to local SSH-agent 41 | ------------------- 42 | Ref: https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/#platform-linux 43 | 44 | ssh-keygen -t rsa -b 4096 -C "" 45 | eval $(ssh-agent -s) 46 | ssh-add ~/.ssh/id_rsa 47 | sudo apt-get install xclip 48 | xclip -sel clip < ~/.ssh/id_rsa.pub 49 | 50 | ##2.3 Add SSH key to GitHub account 51 | ------------------- 52 | a. Go to profile and select settings 53 | 54 | b. Choose SSH and GPG keys -> New SSH key 55 | 56 | c. Give a title for the key 57 | 58 | d. Paste the key generated above ( xclip command will copy the key from .pub file to your clipboard) 59 | 60 | e. Add SSH key. 61 | 62 | 63 | #3. Tungsten Fabric + Devstack setup 64 | ------------------------------------ 65 | Ref: https://github.com/Juniper/contrail-installer/blob/master/README.md 66 | 67 | ##3.1 Clone Contrail-installer and devstack Repositories 68 | -------------------------------------------------------- 69 | 70 | git clone https://github.com/juniper/contrail-installer.git 71 | git clone https://github.com/openstack-dev/devstack -b stable/newton 72 | 73 | ##3.2 Set up Tungsten Fabric (formerly known as OpenContrail) 74 | ------------------------------------------------------------- 75 | a. Copy the localrc file from samples to the current directory and edit it as required. 76 | 77 | cd contrail-installer 78 | cp samples/localrc-all localrc 79 | 80 | change eth interface: default is eth0 81 | #CONTRAIL_BRANCH=R3.2 //Commented means code will be checked out from Trunk. 82 | //Else specify the branch and uncomment it. 83 | 84 | b. Execute contrail.sh 85 | 86 | ./contrail.sh 87 | 88 | ##3.3 Set up DevStack 89 | --------------------- 90 | a. Copy the opencontrail plugin to devstack neutron_plugins directory 91 | 92 | cp ../contrail-installer/devstack/lib/neutron_plugins/opencontrail lib/neutron_plugins/ 93 | 94 | b. Prepare localrc for devstack: 95 | 96 | cp ../contrail-installer/devstack/samples/localrc-all localrc 97 | 98 | Update "PHYSICAL_INTERFACE" as applicable. 99 | 100 | Add following to localrc file: 101 | 102 | NOVNC_BRANCH=v0.6.0 103 | 104 | c. Run stack.sh 105 | 106 | ./stack.sh 107 | 108 | d. The installation shall fail once. Once it fails, do the following change 109 | 110 | Edit the file "/usr/local/lib/python2.7/dist-packages/openstack/session.py" at line 29 111 | and replace "openstack.version" with "openstack" 112 | 113 | Line 29: DEFAULT_USER_AGENT = "openstacksdk/%s" % openstack 114 | 115 | e. Now do a restack. For this Tungsten Fabric needs to be restarted as well, i.e. 116 | 117 | ./unstack.sh 118 | cd ../contrail_installer 119 | ./contrail.sh restart 120 | cd - 121 | ./stack.sh 122 | 123 | ##3.4. Accessing Openstack and Tungsten Fabric GUIs 124 | --------------------------------------------------- 125 | Openstack and contrail GUIs can be accessed as follows:- 126 | 127 | a. Openstack GUI: http://localhost/dashboard/ 128 | 129 | b. Tungsten Fabric GUI: http://localhost:8080/ 130 | 131 | 132 | #4. Setting up Gerrit for committing code-changes for review 133 | ------------------------------------------------------------ 134 | 135 | Ref: https://gerrit.tungsten.io/r/Documentation/index.html 136 | 137 | ##4.1 Setup SSH access 138 | ------------------- 139 | a. Log into your account at gerrit.tungsten.io 140 | 141 | b. Go to top-right corner -> settings 142 | 143 | c. Left panel -> SSH public keys -> Add key 144 | 145 | d. Follow the instruction under heading "How to generate an SSH key" 146 | 147 | e. Test the SSH access 148 | 149 | $ ssh -p 29418 sshusername@gerrit.tungsten.io 150 | 151 | **** Welcome to Gerrit Code Review **** 152 | 153 | Hi John Doe, you have successfully connected over SSH. 154 | 155 | Unfortunately, interactive shells are disabled. 156 | To clone a hosted Git repository, use: 157 | 158 | git clone ssh://sshusername@gerrit.tungsten.io:29418/REPOSITORY_NAME.git 159 | 160 | Connection to hostname closed. 161 | 162 | ##4.2 Pushing code-changes for review 163 | ------------------------------------- 164 | a. Install git-review 165 | 166 | sudo apt-get install git-review 167 | 168 | b. Configure Gerrit 169 | 170 | git config --global user.email username@someone.com 171 | gitdir=$(git rev-parse --git-dir); 172 | scp -p -P 29418 username@gerrit.tungsten.io:hooks/commit-msg ${gitdir}/hooks/ 173 | 174 | c. Clone the repo where changes need to be committed 175 | 176 | git clone ssh://sshusername@gerrit.tungsten.io:29418/REPOSITORY_NAME.git 177 | 178 | d. Commit the changes 179 | 180 | git commit -m "" 181 | 182 | Note: please ensure that any change being committed should have a corresponding 183 | launch-pad bug-id mentioned in the commit message, i.e. "Bug #1679466" 184 | 185 | e. Push the locally committed changes up for review 186 | 187 | git push ssh://username@gerrit.tungsten.io:29418/REPOSITORY_NAME \ 188 | HEAD:refs/for/%topic=, \ 189 | r=reviewername@someone.com, cc=otherreviewer@someone.com 190 | 191 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # vnc_api documentation build configuration file, created by 4 | # sphinx-quickstart on Sun Mar 10 23:39:27 2013. 5 | # 6 | # This file is execfile()d with the current directory set to its containing dir. 7 | # 8 | # Note that not all possible configuration values are present in this 9 | # autogenerated file. 10 | # 11 | # All configuration values have a default; values that are commented out 12 | # serve to show the default. 13 | 14 | import sys, os 15 | 16 | # If extensions (or modules to document with autodoc) are in another directory, 17 | # add these directories to sys.path here. If the directory is relative to the 18 | # documentation root, use os.path.abspath to make it absolute, like shown here. 19 | #sys.path.insert(0, os.path.abspath('.')) 20 | 21 | sys.path.insert(0, os.path.abspath('../vnc_cfg_api_server')) 22 | sys.path.insert(0, os.path.abspath('../')) 23 | sys.path.insert(0, os.path.abspath('../../../api-lib')) 24 | sys.path.insert(0, os.path.abspath('../../../sandesh/library/python')) 25 | 26 | # -- General configuration ----------------------------------------------------- 27 | 28 | # If your documentation needs a minimal Sphinx version, state it here. 29 | #needs_sphinx = '1.0' 30 | 31 | # Add any Sphinx extension module names here, as strings. They can be extensions 32 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. 33 | extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.ifconfig'] 34 | 35 | # Add any paths that contain templates here, relative to this directory. 36 | templates_path = ['_templates'] 37 | 38 | # The suffix of source filenames. 39 | source_suffix = '.rst' 40 | 41 | # The encoding of source files. 42 | #source_encoding = 'utf-8-sig' 43 | 44 | # The master toctree document. 45 | master_doc = 'index' 46 | 47 | # General information about the project. 48 | project = u'vnc_api' 49 | copyright = u'2013, Juniper Networks Inc.' 50 | 51 | # The version info for the project you're documenting, acts as replacement for 52 | # |version| and |release|, also used in various other places throughout the 53 | # built documents. 54 | # 55 | # The short X.Y version. 56 | data = '0.99' 57 | try: 58 | with open("../../../../../../src/contrail-common/base/version.info", "r") as f: 59 | data=f.read().replace('\n', '') 60 | except: 61 | pass 62 | 63 | version = data 64 | # The full version, including alpha/beta/rc tags. 65 | release = data 66 | 67 | # The language for content autogenerated by Sphinx. Refer to documentation 68 | # for a list of supported languages. 69 | #language = None 70 | 71 | # There are two options for replacing |today|: either, you set today to some 72 | # non-false value, then it is used: 73 | #today = '' 74 | # Else, today_fmt is used as the format for a strftime call. 75 | #today_fmt = '%B %d, %Y' 76 | 77 | # List of patterns, relative to source directory, that match files and 78 | # directories to ignore when looking for source files. 79 | exclude_patterns = [] 80 | 81 | # The reST default role (used for this markup: `text`) to use for all documents. 82 | #default_role = None 83 | 84 | # If true, '()' will be appended to :func: etc. cross-reference text. 85 | #add_function_parentheses = True 86 | 87 | # If true, the current module name will be prepended to all description 88 | # unit titles (such as .. function::). 89 | #add_module_names = True 90 | 91 | # If true, sectionauthor and moduleauthor directives will be shown in the 92 | # output. They are ignored by default. 93 | #show_authors = False 94 | 95 | # The name of the Pygments (syntax highlighting) style to use. 96 | pygments_style = 'sphinx' 97 | 98 | # A list of ignored prefixes for module index sorting. 99 | #modindex_common_prefix = [] 100 | 101 | 102 | # -- Options for HTML output --------------------------------------------------- 103 | 104 | # The theme to use for HTML and HTML Help pages. See the documentation for 105 | # a list of builtin themes. 106 | html_theme = 'contrail' 107 | 108 | # Theme options are theme-specific and customize the look and feel of a theme 109 | # further. For a list of options available for each theme, see the 110 | # documentation. 111 | #html_theme_options = {} 112 | 113 | # Add any paths that contain custom themes here, relative to this directory. 114 | html_theme_path = ["themes"] 115 | 116 | # The name for this set of Sphinx documents. If None, it defaults to 117 | # " v documentation". 118 | #html_title = None 119 | 120 | # A shorter title for the navigation bar. Default is the same as html_title. 121 | #html_short_title = None 122 | 123 | # The name of an image file (relative to this directory) to place at the top 124 | # of the sidebar. 125 | #html_logo = None 126 | 127 | # The name of an image file (within the static path) to use as favicon of the 128 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 129 | # pixels large. 130 | #html_favicon = None 131 | 132 | # Add any paths that contain custom static files (such as style sheets) here, 133 | # relative to this directory. They are copied after the builtin static files, 134 | # so a file named "default.css" will overwrite the builtin "default.css". 135 | # html_static_path = ['_static', 'contrail_openapi.json'] 136 | 137 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 138 | # using the given strftime format. 139 | #html_last_updated_fmt = '%b %d, %Y' 140 | 141 | # If true, SmartyPants will be used to convert quotes and dashes to 142 | # typographically correct entities. 143 | #html_use_smartypants = True 144 | 145 | # Custom sidebar templates, maps document names to template names. 146 | #html_sidebars = {} 147 | 148 | # Additional templates that should be rendered to pages, maps page names to 149 | # template names. 150 | #html_additional_pages = {} 151 | 152 | # If false, no module index is generated. 153 | #html_domain_indices = True 154 | 155 | # If false, no index is generated. 156 | #html_use_index = True 157 | 158 | # If true, the index is split into individual pages for each letter. 159 | #html_split_index = False 160 | 161 | # If true, links to the reST sources are added to the pages. 162 | #html_show_sourcelink = True 163 | 164 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 165 | #html_show_sphinx = True 166 | 167 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 168 | #html_show_copyright = True 169 | 170 | # If true, an OpenSearch description file will be output, and all pages will 171 | # contain a tag referring to it. The value of this option must be the 172 | # base URL from which the finished HTML is served. 173 | #html_use_opensearch = '' 174 | 175 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 176 | #html_file_suffix = None 177 | 178 | # Output file base name for HTML help builder. 179 | htmlhelp_basename = 'vnc_apidoc' 180 | 181 | 182 | # -- Options for LaTeX output -------------------------------------------------- 183 | 184 | latex_elements = { 185 | # The paper size ('letterpaper' or 'a4paper'). 186 | #'papersize': 'letterpaper', 187 | 188 | # The font size ('10pt', '11pt' or '12pt'). 189 | #'pointsize': '10pt', 190 | 191 | # Additional stuff for the LaTeX preamble. 192 | #'preamble': '', 193 | } 194 | 195 | # Grouping the document tree into LaTeX files. List of tuples 196 | # (source start file, target name, title, author, documentclass [howto/manual]). 197 | latex_documents = [ 198 | ('index', 'vnc_api.tex', u'vnc\\_api Documentation', 199 | u'Juniper Networks Inc.', 'manual'), 200 | ] 201 | 202 | # The name of an image file (relative to this directory) to place at the top of 203 | # the title page. 204 | #latex_logo = None 205 | 206 | # For "manual" documents, if this is true, then toplevel headings are parts, 207 | # not chapters. 208 | #latex_use_parts = False 209 | 210 | # If true, show page references after internal links. 211 | #latex_show_pagerefs = False 212 | 213 | # If true, show URL addresses after external links. 214 | #latex_show_urls = False 215 | 216 | # Documents to append as an appendix to all manuals. 217 | #latex_appendices = [] 218 | 219 | # If false, no module index is generated. 220 | #latex_domain_indices = True 221 | 222 | 223 | # -- Options for manual page output -------------------------------------------- 224 | 225 | # One entry per manual page. List of tuples 226 | # (source start file, name, description, authors, manual section). 227 | man_pages = [ 228 | ('index', 'vnc_api', u'vnc_api Documentation', 229 | [u'Juniper Networks Inc.'], 1) 230 | ] 231 | 232 | # If true, show URL addresses after external links. 233 | #man_show_urls = False 234 | 235 | 236 | # -- Options for Texinfo output ------------------------------------------------ 237 | 238 | # Grouping the document tree into Texinfo files. List of tuples 239 | # (source start file, target name, title, author, 240 | # dir menu entry, description, category) 241 | texinfo_documents = [ 242 | ('index', 'vnc_api', u'vnc_api Documentation', 243 | u'Juniper Networks Inc.', 'vnc_api', 'One line description of project.', 244 | 'Miscellaneous'), 245 | ] 246 | 247 | # Documents to append as an appendix to all manuals. 248 | #texinfo_appendices = [] 249 | 250 | # If false, no module index is generated. 251 | #texinfo_domain_indices = True 252 | 253 | # How to display URL addresses: 'footnote', 'no', or 'inline'. 254 | #texinfo_show_urls = 'footnote' 255 | 256 | 257 | # Example configuration for intersphinx: refer to the Python standard library. 258 | intersphinx_mapping = {'http://docs.python.org/': None} 259 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/gettingstarted/rst/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # vnc_api documentation build configuration file, created by 4 | # sphinx-quickstart on Sun Mar 10 23:39:27 2013. 5 | # 6 | # This file is execfile()d with the current directory set to its containing dir. 7 | # 8 | # Note that not all possible configuration values are present in this 9 | # autogenerated file. 10 | # 11 | # All configuration values have a default; values that are commented out 12 | # serve to show the default. 13 | 14 | import sys, os 15 | 16 | # If extensions (or modules to document with autodoc) are in another directory, 17 | # add these directories to sys.path here. If the directory is relative to the 18 | # documentation root, use os.path.abspath to make it absolute, like shown here. 19 | #sys.path.insert(0, os.path.abspath('.')) 20 | 21 | sys.path.insert(0, os.path.abspath('../vnc_cfg_api_server')) 22 | sys.path.insert(0, os.path.abspath('../')) 23 | sys.path.insert(0, os.path.abspath('../../../api-lib')) 24 | sys.path.insert(0, os.path.abspath('../../../sandesh/library/python')) 25 | 26 | # -- General configuration ----------------------------------------------------- 27 | 28 | # If your documentation needs a minimal Sphinx version, state it here. 29 | #needs_sphinx = '1.0' 30 | 31 | # Add any Sphinx extension module names here, as strings. They can be extensions 32 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. 33 | extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.ifconfig'] 34 | 35 | # Add any paths that contain templates here, relative to this directory. 36 | templates_path = ['_templates'] 37 | 38 | # The suffix of source filenames. 39 | source_suffix = '.rst' 40 | 41 | # The encoding of source files. 42 | #source_encoding = 'utf-8-sig' 43 | 44 | # The master toctree document. 45 | master_doc = 'index' 46 | 47 | # General information about the project. 48 | project = u'vnc_api' 49 | copyright = u'2013, Juniper Networks Inc.' 50 | 51 | # The version info for the project you're documenting, acts as replacement for 52 | # |version| and |release|, also used in various other places throughout the 53 | # built documents. 54 | # 55 | # The short X.Y version. 56 | data = '0.99' 57 | try: 58 | with open("../../../../../../src/contrail-common/base/version.info", "r") as f: 59 | data=f.read().replace('\n', '') 60 | except: 61 | pass 62 | 63 | version = data 64 | # The full version, including alpha/beta/rc tags. 65 | release = data 66 | 67 | # The language for content autogenerated by Sphinx. Refer to documentation 68 | # for a list of supported languages. 69 | #language = None 70 | 71 | # There are two options for replacing |today|: either, you set today to some 72 | # non-false value, then it is used: 73 | #today = '' 74 | # Else, today_fmt is used as the format for a strftime call. 75 | #today_fmt = '%B %d, %Y' 76 | 77 | # List of patterns, relative to source directory, that match files and 78 | # directories to ignore when looking for source files. 79 | exclude_patterns = [] 80 | 81 | # The reST default role (used for this markup: `text`) to use for all documents. 82 | #default_role = None 83 | 84 | # If true, '()' will be appended to :func: etc. cross-reference text. 85 | #add_function_parentheses = True 86 | 87 | # If true, the current module name will be prepended to all description 88 | # unit titles (such as .. function::). 89 | #add_module_names = True 90 | 91 | # If true, sectionauthor and moduleauthor directives will be shown in the 92 | # output. They are ignored by default. 93 | #show_authors = False 94 | 95 | # The name of the Pygments (syntax highlighting) style to use. 96 | pygments_style = 'sphinx' 97 | 98 | # A list of ignored prefixes for module index sorting. 99 | #modindex_common_prefix = [] 100 | 101 | 102 | # -- Options for HTML output --------------------------------------------------- 103 | 104 | # The theme to use for HTML and HTML Help pages. See the documentation for 105 | # a list of builtin themes. 106 | html_theme = 'contrail' 107 | 108 | # Theme options are theme-specific and customize the look and feel of a theme 109 | # further. For a list of options available for each theme, see the 110 | # documentation. 111 | #html_theme_options = {} 112 | 113 | # Add any paths that contain custom themes here, relative to this directory. 114 | html_theme_path = ["themes"] 115 | 116 | # The name for this set of Sphinx documents. If None, it defaults to 117 | # " v documentation". 118 | #html_title = None 119 | 120 | # A shorter title for the navigation bar. Default is the same as html_title. 121 | #html_short_title = None 122 | 123 | # The name of an image file (relative to this directory) to place at the top 124 | # of the sidebar. 125 | #html_logo = None 126 | 127 | # The name of an image file (within the static path) to use as favicon of the 128 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 129 | # pixels large. 130 | #html_favicon = None 131 | 132 | # Add any paths that contain custom static files (such as style sheets) here, 133 | # relative to this directory. They are copied after the builtin static files, 134 | # so a file named "default.css" will overwrite the builtin "default.css". 135 | # html_static_path = ['_static', 'contrail_openapi.json'] 136 | 137 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 138 | # using the given strftime format. 139 | #html_last_updated_fmt = '%b %d, %Y' 140 | 141 | # If true, SmartyPants will be used to convert quotes and dashes to 142 | # typographically correct entities. 143 | #html_use_smartypants = True 144 | 145 | # Custom sidebar templates, maps document names to template names. 146 | #html_sidebars = {} 147 | 148 | # Additional templates that should be rendered to pages, maps page names to 149 | # template names. 150 | #html_additional_pages = {} 151 | 152 | # If false, no module index is generated. 153 | #html_domain_indices = True 154 | 155 | # If false, no index is generated. 156 | #html_use_index = True 157 | 158 | # If true, the index is split into individual pages for each letter. 159 | #html_split_index = False 160 | 161 | # If true, links to the reST sources are added to the pages. 162 | #html_show_sourcelink = True 163 | 164 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 165 | #html_show_sphinx = True 166 | 167 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 168 | #html_show_copyright = True 169 | 170 | # If true, an OpenSearch description file will be output, and all pages will 171 | # contain a tag referring to it. The value of this option must be the 172 | # base URL from which the finished HTML is served. 173 | #html_use_opensearch = '' 174 | 175 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 176 | #html_file_suffix = None 177 | 178 | # Output file base name for HTML help builder. 179 | htmlhelp_basename = 'vnc_apidoc' 180 | 181 | 182 | # -- Options for LaTeX output -------------------------------------------------- 183 | 184 | latex_elements = { 185 | # The paper size ('letterpaper' or 'a4paper'). 186 | #'papersize': 'letterpaper', 187 | 188 | # The font size ('10pt', '11pt' or '12pt'). 189 | #'pointsize': '10pt', 190 | 191 | # Additional stuff for the LaTeX preamble. 192 | #'preamble': '', 193 | } 194 | 195 | # Grouping the document tree into LaTeX files. List of tuples 196 | # (source start file, target name, title, author, documentclass [howto/manual]). 197 | latex_documents = [ 198 | ('index', 'vnc_api.tex', u'vnc\\_api Documentation', 199 | u'Juniper Networks Inc.', 'manual'), 200 | ] 201 | 202 | # The name of an image file (relative to this directory) to place at the top of 203 | # the title page. 204 | #latex_logo = None 205 | 206 | # For "manual" documents, if this is true, then toplevel headings are parts, 207 | # not chapters. 208 | #latex_use_parts = False 209 | 210 | # If true, show page references after internal links. 211 | #latex_show_pagerefs = False 212 | 213 | # If true, show URL addresses after external links. 214 | #latex_show_urls = False 215 | 216 | # Documents to append as an appendix to all manuals. 217 | #latex_appendices = [] 218 | 219 | # If false, no module index is generated. 220 | #latex_domain_indices = True 221 | 222 | 223 | # -- Options for manual page output -------------------------------------------- 224 | 225 | # One entry per manual page. List of tuples 226 | # (source start file, name, description, authors, manual section). 227 | man_pages = [ 228 | ('index', 'vnc_api', u'vnc_api Documentation', 229 | [u'Juniper Networks Inc.'], 1) 230 | ] 231 | 232 | # If true, show URL addresses after external links. 233 | #man_show_urls = False 234 | 235 | 236 | # -- Options for Texinfo output ------------------------------------------------ 237 | 238 | # Grouping the document tree into Texinfo files. List of tuples 239 | # (source start file, target name, title, author, 240 | # dir menu entry, description, category) 241 | texinfo_documents = [ 242 | ('index', 'vnc_api', u'vnc_api Documentation', 243 | u'Juniper Networks Inc.', 'vnc_api', 'One line description of project.', 244 | 'Miscellaneous'), 245 | ] 246 | 247 | # Documents to append as an appendix to all manuals. 248 | #texinfo_appendices = [] 249 | 250 | # If false, no module index is generated. 251 | #texinfo_domain_indices = True 252 | 253 | # How to display URL addresses: 'footnote', 'no', or 'inline'. 254 | #texinfo_show_urls = 'footnote' 255 | 256 | 257 | # Example configuration for intersphinx: refer to the Python standard library. 258 | intersphinx_mapping = {'http://docs.python.org/': None} 259 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # vnc_api documentation build configuration file, created by 4 | # sphinx-quickstart on Sun Mar 10 23:39:27 2013. 5 | # 6 | # This file is execfile()d with the current directory set to its containing dir. 7 | # 8 | # Note that not all possible configuration values are present in this 9 | # autogenerated file. 10 | # 11 | # All configuration values have a default; values that are commented out 12 | # serve to show the default. 13 | 14 | import sys, os 15 | import alabaster 16 | 17 | 18 | # If extensions (or modules to document with autodoc) are in another directory, 19 | # add these directories to sys.path here. If the directory is relative to the 20 | # documentation root, use os.path.abspath to make it absolute, like shown here. 21 | #sys.path.insert(0, os.path.abspath('.')) 22 | 23 | sys.path.insert(0, os.path.abspath('../vnc_cfg_api_server')) 24 | sys.path.insert(0, os.path.abspath('../')) 25 | sys.path.insert(0, os.path.abspath('../../../api-lib')) 26 | sys.path.insert(0, os.path.abspath('../../../sandesh/library/python')) 27 | 28 | # -- General configuration ----------------------------------------------------- 29 | 30 | # If your documentation needs a minimal Sphinx version, state it here. 31 | #needs_sphinx = '1.0' 32 | 33 | # Add any Sphinx extension module names here, as strings. They can be extensions 34 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. 35 | #extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.ifconfig'] 36 | extensions = ['alabaster'] 37 | 38 | # Add any paths that contain templates here, relative to this directory. 39 | templates_path = ['_templates'] 40 | 41 | # The suffix of source filenames. 42 | source_suffix = '.rst' 43 | 44 | # The encoding of source files. 45 | #source_encoding = 'utf-8-sig' 46 | 47 | # The master toctree document. 48 | master_doc = 'index' 49 | 50 | # General information about the project. 51 | project = u'vnc_api' 52 | copyright = u'2018, Tungsten Fabric' 53 | 54 | # The version info for the project you're documenting, acts as replacement for 55 | # |version| and |release|, also used in various other places throughout the 56 | # built documents. 57 | # 58 | # The short X.Y version. 59 | data = '0.99' 60 | try: 61 | with open("../../../../../../src/contrail-common/base/version.info", "r") as f: 62 | data=f.read().replace('\n', '') 63 | except: 64 | pass 65 | 66 | version = data 67 | # The full version, including alpha/beta/rc tags. 68 | release = data 69 | 70 | # The language for content autogenerated by Sphinx. Refer to documentation 71 | # for a list of supported languages. 72 | #language = None 73 | 74 | # There are two options for replacing |today|: either, you set today to some 75 | # non-false value, then it is used: 76 | #today = '' 77 | # Else, today_fmt is used as the format for a strftime call. 78 | #today_fmt = '%B %d, %Y' 79 | 80 | # List of patterns, relative to source directory, that match files and 81 | # directories to ignore when looking for source files. 82 | exclude_patterns = [] 83 | 84 | # The reST default role (used for this markup: `text`) to use for all documents. 85 | #default_role = None 86 | 87 | # If true, '()' will be appended to :func: etc. cross-reference text. 88 | #add_function_parentheses = True 89 | 90 | # If true, the current module name will be prepended to all description 91 | # unit titles (such as .. function::). 92 | #add_module_names = True 93 | 94 | # If true, sectionauthor and moduleauthor directives will be shown in the 95 | # output. They are ignored by default. 96 | #show_authors = False 97 | 98 | # The name of the Pygments (syntax highlighting) style to use. 99 | pygments_style = 'sphinx' 100 | 101 | # A list of ignored prefixes for module index sorting. 102 | #modindex_common_prefix = [] 103 | 104 | 105 | # -- Options for HTML output --------------------------------------------------- 106 | 107 | # The theme to use for HTML and HTML Help pages. See the documentation for 108 | # a list of builtin themes. 109 | #html_theme = 'contrail' 110 | html_theme = 'alabaster' 111 | 112 | # Theme options are theme-specific and customize the look and feel of a theme 113 | # further. For a list of options available for each theme, see the 114 | # documentation. 115 | #html_theme_options = {} 116 | 117 | # Add any paths that contain custom themes here, relative to this directory. 118 | #html_theme_path = ["themes"] 119 | html_theme_path = [alabaster.get_path()] 120 | 121 | # The name for this set of Sphinx documents. If None, it defaults to 122 | # " v documentation". 123 | #html_title = None 124 | 125 | # A shorter title for the navigation bar. Default is the same as html_title. 126 | #html_short_title = None 127 | 128 | # The name of an image file (relative to this directory) to place at the top 129 | # of the sidebar. 130 | #html_logo = None 131 | 132 | # The name of an image file (within the static path) to use as favicon of the 133 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 134 | # pixels large. 135 | #html_favicon = None 136 | 137 | # Add any paths that contain custom static files (such as style sheets) here, 138 | # relative to this directory. They are copied after the builtin static files, 139 | # so a file named "default.css" will overwrite the builtin "default.css". 140 | # html_static_path = ['_static', 'contrail_openapi.json'] 141 | 142 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 143 | # using the given strftime format. 144 | #html_last_updated_fmt = '%b %d, %Y' 145 | 146 | # If true, SmartyPants will be used to convert quotes and dashes to 147 | # typographically correct entities. 148 | #html_use_smartypants = True 149 | 150 | # Custom sidebar templates, maps document names to template names. 151 | #html_sidebars = {} 152 | 153 | # Additional templates that should be rendered to pages, maps page names to 154 | # template names. 155 | #html_additional_pages = {} 156 | 157 | # If false, no module index is generated. 158 | #html_domain_indices = True 159 | 160 | # If false, no index is generated. 161 | #html_use_index = True 162 | 163 | # If true, the index is split into individual pages for each letter. 164 | #html_split_index = False 165 | 166 | # If true, links to the reST sources are added to the pages. 167 | #html_show_sourcelink = True 168 | 169 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 170 | #html_show_sphinx = True 171 | 172 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 173 | #html_show_copyright = True 174 | 175 | # If true, an OpenSearch description file will be output, and all pages will 176 | # contain a tag referring to it. The value of this option must be the 177 | # base URL from which the finished HTML is served. 178 | #html_use_opensearch = '' 179 | 180 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 181 | #html_file_suffix = None 182 | 183 | # Output file base name for HTML help builder. 184 | htmlhelp_basename = 'vnc_apidoc' 185 | 186 | 187 | # -- Options for LaTeX output -------------------------------------------------- 188 | 189 | latex_elements = { 190 | # The paper size ('letterpaper' or 'a4paper'). 191 | #'papersize': 'letterpaper', 192 | 193 | # The font size ('10pt', '11pt' or '12pt'). 194 | #'pointsize': '10pt', 195 | 196 | # Additional stuff for the LaTeX preamble. 197 | #'preamble': '', 198 | } 199 | 200 | # Grouping the document tree into LaTeX files. List of tuples 201 | # (source start file, target name, title, author, documentclass [howto/manual]). 202 | latex_documents = [ 203 | ('index', 'vnc_api.tex', u'vnc\\_api Documentation', 204 | u'Tungsten Fabric', 'manual'), 205 | ] 206 | 207 | # The name of an image file (relative to this directory) to place at the top of 208 | # the title page. 209 | #latex_logo = None 210 | 211 | # For "manual" documents, if this is true, then toplevel headings are parts, 212 | # not chapters. 213 | #latex_use_parts = False 214 | 215 | # If true, show page references after internal links. 216 | #latex_show_pagerefs = False 217 | 218 | # If true, show URL addresses after external links. 219 | #latex_show_urls = False 220 | 221 | # Documents to append as an appendix to all manuals. 222 | #latex_appendices = [] 223 | 224 | # If false, no module index is generated. 225 | #latex_domain_indices = True 226 | 227 | 228 | # -- Options for manual page output -------------------------------------------- 229 | 230 | # One entry per manual page. List of tuples 231 | # (source start file, name, description, authors, manual section). 232 | man_pages = [ 233 | ('index', 'vnc_api', u'vnc_api Documentation', 234 | [u'Tungsten Fabric'], 1) 235 | ] 236 | 237 | # If true, show URL addresses after external links. 238 | #man_show_urls = False 239 | 240 | 241 | # -- Options for Texinfo output ------------------------------------------------ 242 | 243 | # Grouping the document tree into Texinfo files. List of tuples 244 | # (source start file, target name, title, author, 245 | # dir menu entry, description, category) 246 | texinfo_documents = [ 247 | ('index', 'vnc_api', u'vnc_api Documentation', 248 | u'Tungsten Fabric', 'vnc_api', 'One line description of project.', 249 | 'Miscellaneous'), 250 | ] 251 | 252 | # Documents to append as an appendix to all manuals. 253 | #texinfo_appendices = [] 254 | 255 | # If false, no module index is generated. 256 | #texinfo_domain_indices = True 257 | 258 | # How to display URL addresses: 'footnote', 'no', or 'inline'. 259 | #texinfo_show_urls = 'footnote' 260 | 261 | 262 | # Example configuration for intersphinx: refer to the Python standard library. 263 | intersphinx_mapping = {'http://docs.python.org/': None} 264 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/gettingstarted/rst/getting-started.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | ========================================== 5 | Getting Started with Tungsten Fabric 5.0.1 6 | ========================================== 7 | 8 | Prerequisites 9 | ------------- 10 | 11 | Deployment instructions presented in this document install and configure Tungsten Fabric SDN solution in a 3 node environment (1 OpenStack/Tungsten Fabric Controller, 2 OpenStack/Tungsten Fabric Computes) using OpenStack Ocata as orchestrator. We will further refer to these 3 nodes as 'Target nodes'. 12 | A node can be either a virtual machine or a bare-metal server; either way, user experience is seamless. 13 | 14 | Tungsten Fabric solution is provisioned via `Ansible` automation tool. In order to deploy Tungsten Fabric solution, besides the 3 nodes mentioned earlier, we also need another node, from which we will run `Ansible` commands. Similarly, this node can be either a virtual machine or a bare-metal server. We will refer to this node as 'Deploy node'. 15 | 16 | Supported Operating Systems for the Target nodes and the Deploy node are `RedHat7.5` or greater and `CentOS7.5` or greater. 17 | 18 | 19 | Hardware and Software Requirements 20 | ---------------------------------- 21 | 22 | 1st thing that needs to be established before deploying Tungsten Fabric solution is the hardware on which we will deploy it. Below are specified the minimum hardware and software requirements that need to be met for a smooth Tungsten Fabric experience. 23 | 24 | Hardware: 25 | 26 | * Target Nodes: 27 | * At least 4 CPU cores 28 | * At least 64 GB RAM 29 | * At least 300 GB storage 30 | * At least one Ethernet port 31 | * Deploy Node: 32 | * At least 2 CPU cores 33 | * At least 4 GB RAM 34 | * At least 50 GB storage 35 | * At least one Ethernet port 36 | 37 | Software: 38 | 39 | * `RedHat 7.5` or greater/`CentOS 7.5` or greater 40 | * valid `RedHat 7.5` subscription, in case `RedHat 7.5` is used as OS (Operating System) 41 | * `Kernel release 3.10.0.862*` or greater 42 | * `Ansible 2.6.4` or greater 43 | * `Docker 18.06.1-ce` or greater 44 | * `OpenStack Newton/Ocata/Pike/Queens` 45 | 46 | Steps on All Target Nodes 47 | ------------------------- 48 | 49 | Please note that all commands, on all Target nodes, have been run as **root**. 50 | 51 | #. Update all installed packages and reboot: 52 | 53 | ``# yum update -y`` 54 | 55 | ``# reboot`` 56 | 57 | #. Generate SSH public key: 58 | 59 | ``# ssh-keygen -t rsa`` 60 | 61 | #. Copy SSH public key (from each Target node) to the Deploy node: 62 | 63 | ``# ssh-copy-id root@`` 64 | 65 | Steps on the Deploy Node 66 | --------------------------- 67 | 68 | Please note that all commands, on the Deploy node, have been run as **root**. 69 | 70 | #. Install prerequisites: 71 | 72 | ``# yum install -y yum-plugin-priorities yum-utils vim net-tools git ansible`` 73 | 74 | #. Generate SSH public key: 75 | 76 | ``# ssh-keygen -t rsa`` 77 | 78 | #. Copy SSH public key from the Deploy node to the 3 Target nodes: 79 | 80 | ``# ssh-copy-id root@`` 81 | 82 | #. Clone the `contrail-ansible-deployer` repo, `R5.0` branch: 83 | 84 | ``# git clone https://github.com/Juniper/contrail-ansible-deployer.git -b R5.0`` 85 | 86 | #. Replace the content of `contrail-ansible-deployer/config/instances.yaml` with the following and fill in placeholders - marked as ``<...>`` - with info from your setup: 87 | 88 | Worth mentioning that it is recommended for each Target node to have at least 2 Ethernet ports. 89 | 1st Ethernet port should be used for management/provisioning and control plane traffic. 2nd Ethernet port should be used for dataplane traffic. Info regarding the dataplane traffic is set in the following lines in ``instances.yaml``: 90 | 91 | ``PHYSICAL_INTERFACE: `` 92 | 93 | ``VROUTER_GATEWAY: `` 94 | 95 | Therefore, if we have a 2nd Ethernet port for the dataplane traffic, we will fill in the placeholders from the lines above with info associated to the 2nd Ethernet port. 96 | Otherwise, if only 1 Ethernet port is used, we will fill in all the placeholders with info associated to this Ethernet port. 97 | 98 | :: 99 | 100 | global_configuration: 101 | CONTAINER_REGISTRY: &CONTAINER_REGISTRY tungstenfabric 102 | REGISTRY_PRIVATE_INSECURE: True 103 | provider_config: 104 | bms: 105 | ssh_pwd: 106 | ssh_user: root 107 | ntpserver: pool.ntp.org 108 | domainsuffix: local 109 | instances: 110 | bms1: 111 | provider: bms 112 | ip: &tungsten_fabric_ip_address 113 | roles: 114 | config_database: 115 | config: 116 | control: 117 | analytics_database: 118 | analytics: 119 | webui: 120 | openstack: 121 | bms2: 122 | provider: bms 123 | ip: 124 | roles: 125 | vrouter: 126 | openstack_compute: 127 | bms3: 128 | provider: bms 129 | ip: 130 | roles: 131 | vrouter: 132 | openstack_compute: 133 | contrail_configuration: 134 | CONTAINER_REGISTRY: *CONTAINER_REGISTRY 135 | CONTRAIL_VERSION: r5.0.1 136 | CLOUD_ORCHESTRATOR: openstack 137 | RABBITMQ_NODE_PORT: 5673 138 | VROUTER_GATEWAY: 139 | PHYSICAL_INTERFACE: 140 | AUTH_MODE: keystone 141 | KEYSTONE_AUTH_HOST: *tungsten_fabric_ip_address 142 | KEYSTONE_AUTH_URL_VERSION: /v3 143 | KEYSTONE_AUTH_ADMIN_USER: admin 144 | KEYSTONE_AUTH_ADMIN_PASSWORD: &keystone_passwd 145 | imageManager_ip: *tungsten_fabric_ip_address 146 | computeManager_ip: *tungsten_fabric_ip_address 147 | ANALYTICSDB_NODES: *tungsten_fabric_ip_address 148 | CONTROLLER_NODES: *tungsten_fabric_ip_address 149 | WEBUI_NODES: *tungsten_fabric_ip_address 150 | ANALYTICS_NODES: *tungsten_fabric_ip_address 151 | CONTROL_NODES: *tungsten_fabric_ip_address 152 | CONFIGDB_NODES: *tungsten_fabric_ip_address 153 | kolla_config: 154 | kolla_globals: 155 | enable_haproxy: no 156 | enable_ironic: no 157 | enable_swift: no 158 | kolla_passwords: 159 | keystone_admin_password: *keystone_passwd 160 | 161 | 6. Go to `contrail-ansible-deployer` folder and run the following `ansible` commands: 162 | 163 | ``# cd contrail-ansible-deployer`` 164 | 165 | ``# ansible-playbook -i inventory/ -e orchestrator=openstack playbooks/configure_instances.yml`` 166 | 167 | ``# ansible-playbook -i inventory/ playbooks/install_openstack.yml`` 168 | 169 | ``# ansible-playbook -i inventory/ -e orchestrator=openstack playbooks/install_contrail.yml`` 170 | 171 | #. After the Tungsten Fabric deployment, we can run ``contrail-status`` command on both Tungsten Fabric Controller node and Tungsten Fabric Compute Node(s) to check whether Tungsten Fabric Docker containers are up and running. A successful installation should display all Tungsten Fabric containers as `active`. 172 | 173 | Below it is displayed the output of ``# contrail-status`` command run on Tungsten Fabric Controller node and on Tungsten Fabric Compute node, respectively: 174 | 175 | ``# contrail-status`` 176 | 177 | :: 178 | 179 | == Contrail control == 180 | control: active 181 | nodemgr: active 182 | named: active 183 | dns: active 184 | 185 | == Contrail config-database == 186 | nodemgr: active 187 | zookeeper: active 188 | rabbitmq: active 189 | cassandra: active 190 | 191 | == Contrail database == 192 | kafka: active 193 | nodemgr: active 194 | zookeeper: active 195 | cassandra: active 196 | 197 | == Contrail analytics == 198 | snmp-collector: active 199 | query-engine: active 200 | api: active 201 | alarm-gen: active 202 | nodemgr: active 203 | collector: active 204 | topology: active 205 | 206 | == Contrail webui == 207 | web: active 208 | job: active 209 | 210 | == Contrail config == 211 | api: active 212 | zookeeper: active 213 | svc-monitor: backup 214 | nodemgr: active 215 | device-manager: active 216 | cassandra: active 217 | rabbitmq: active 218 | schema: active 219 | 220 | # contrail-status 221 | 222 | :: 223 | 224 | vrouter kernel module is PRESENT 225 | == Contrail vrouter == 226 | nodemgr: active 227 | agent: active 228 | 229 | 230 | Run Tungsten Fabric 231 | ------------------- 232 | 233 | Sometimes, the `neutron-server` Docker container is continuously restarting. 234 | 235 | **Workaround** Comment out `service_plugins` line from `/etc/kolla/neutron-server/neutron.conf` located on the Tungsten Fabric Controller node and then restart `neutron_server` docker container so that the change is taken into consideration: 236 | 237 | ``sed -i 's/^service_plugins = neutron_plugin_contrail.plugins.opencontrail.loadbalancer.v2.plugin.LoadBalancerPluginV2/#service_plugins = neutron_plugin_contrail.plugins.opencontrail.loadbalancer.v2.plugin.LoadBalancerPluginV2/g' /etc/kolla/neutron-server/neutron.conf`` 238 | 239 | ``docker restart neutron_server`` 240 | 241 | Next, the user can login via Tungsten Fabric Web UI, by accessing: 242 | 243 | ``https://:8143`` 244 | 245 | with the following credentials: 246 | 247 | Username: ``admin`` 248 | 249 | Password: ```` 250 | 251 | After successful login, the following page is displayed: 252 | 253 | 254 | .. figure:: TF_GUI.png 255 | 256 | 257 | Happy Hacking! 258 | 259 | 260 | External References 261 | ------------------- 262 | 263 | Below are reference links related to further details of features and use cases. 264 | 265 | * OpenStack: https://www.openstack.org/ 266 | * DPDK: https://www.dpdk.org/ 267 | * Kubernetes: https://kubernetes.io/ 268 | * Red Hat: https://www.redhat.com/ 269 | * Ubuntu: https://www.ubuntu.com/ 270 | * Contrail Feature Guide: https://www.juniper.net/documentation/en_US/contrail5.0/information-products/pathway-pages/contrail-feature-guide-pwp.html 271 | 272 | -------------------------------------------------------------------------------- /Governance/TungstenFabricProjectTechnicalCharter.rst: -------------------------------------------------------------------------------- 1 | Technical Charter (the "Charter") 2 | ================================= 3 | 4 | for 5 | === 6 | 7 | Tungsten Fabric Project a Series of LF Projects, LLC 8 | ==================================================== 9 | 10 | Adopted March 13, 2018 11 | 12 | This charter (the “Charter”) sets forth the responsibilities and 13 | procedures for technical contribution to, and oversight of, the Tungsten 14 | Fabric Project, which has been established as Tungsten Fabric Project a 15 | Series of LF Projects, LLC (the “Project”). LF Projects, LLC (“LF 16 | Projects”) is a Delaware series limited liability company. All 17 | Contributors to the Project must comply with the terms of this Charter. 18 | 19 | 1) **Mission and Scope of the Project** 20 | 21 | a. The Tungsten Fabric Project is an open source project that is 22 | built using standards-based protocols and provides all the 23 | necessary components for network virtualization and network 24 | security. The components of the Project include: an SDN 25 | controller, virtual router, analytics engine, published northbound 26 | APIs, hardware integration features, cloud orchestration software 27 | and an extensive REST API. 28 | 29 | b. The mission of the Project is to facilitate the development, 30 | evolution and adoption of the Tungsten Fabric Project codebase to 31 | enable a comprehensive network and security fabric that 32 | encompasses various open source ecosystems, including virtual 33 | machine-based public and private clouds, container-based clouds 34 | and ecosystems and other computational platforms. The community’s 35 | goal is to maintain and improve the production-ready and scalable 36 | nature of the Project while accelerating development and 37 | attracting additional developers and users to the platform. 38 | 39 | c. The scope of the Project includes development of the Tungsten 40 | Fabric code base under an OSI-approved open source license 41 | supporting the mission, including documentation, testing, 42 | integration and the creation of other artifacts that aid the 43 | development, deployment, operation or adoption of the Project. 44 | 45 | 2) **Technical Steering Committee** 46 | 47 | a. The TSC is responsible for: 48 | 49 | i. Setting high level architecture goals and coordinating 50 | overall project architecture and technical direction 51 | 52 | ii. Selecting technology stack, software features and supported 53 | hardware including 54 | 55 | iii. approving project or system proposals (including, but not 56 | limited to, incubation, deprecation, and changes to a 57 | sub-project’s scope); 58 | 59 | iv. organizing sub-projects and removing sub-projects; 60 | 61 | v. Developing Project use cases; 62 | 63 | vi. Defining and monitoring Project technical processes and 64 | interfaces with third party code and external projects 65 | including creating sub-committees or working groups to focus 66 | on cross-project technical issues and requirements; 67 | 68 | vii. Overseeing the Infrastructure Working Group other TSC 69 | working groups; 70 | 71 | viii. Appointing representatives to work with other open source or 72 | open standards communities; 73 | 74 | ix. Establishing community norms, workflows, issuing releases, 75 | and security issue reporting policies; 76 | 77 | x. Approving and implementing policies and processes for 78 | contributing (to be published in the CONTRIBUTING file) and 79 | coordinating with other project committees to resolve 80 | matters or concerns that may arise as set forth in Section 7 81 | of this Charter; 82 | 83 | xi. Engaging in discussions, seeking consensus, and where 84 | necessary, voting on technical matters relating to the code 85 | base that affect multiple projects; 86 | 87 | xii. Setting target dates for software development and testing; 88 | 89 | xiii. Coordinating any marketing, events, or communications 90 | regarding the Project with the Manager of LF Projects and 91 | the Marketing Advisory Council of the LF Networking Fund of 92 | The Linux Foundation (“LFN”); 93 | 94 | xiv. Establishing a vetting process for maintaining security and 95 | integrity of new and/or changed code base and documentation, 96 | including vetting for malicious code and spyware; and 97 | 98 | xv. Establishing a security issue reporting policy and 99 | resolution procedure. 100 | 101 | b. The TSC voting members are initially selected from the Project’s 102 | Committers and Community volunteers. The TSC voting members, TSC 103 | election process and TSC defined processes and procedures will be 104 | documented in the TSC section of the community documentation 105 | repository. TSC will initially have 11 voting members, but may 106 | modify the number of voting members by two-thirds vote of all TSC 107 | members. 108 | 109 | c. Any meetings of the Technical Steering Committee are intended to 110 | be open to the public, and can be conducted electronically, via 111 | teleconference, or in person. 112 | 113 | d. TSC projects generally will involve Contributors and Committers. 114 | The TSC may adopt or modify roles so long as the roles are 115 | documented in the TSC section of the community documentation 116 | repository. Unless otherwise documented: 117 | 118 | i. Contributors include anyone in the technical community that 119 | contributes code, documentation, or other technical 120 | artifacts to the Project; 121 | 122 | ii. Committers are Contributors who have earned the ability to 123 | modify (“commit”) source code, documentation or other 124 | technical artifacts in a project’s repository; 125 | 126 | iii. The primary distinguishing characteristic of Committers is 127 | a demonstrated history of performing code reviews in the 128 | project code review system. References to quantity and/or 129 | quality of code reviews (of other Contributors’ code, not 130 | the Committer’s own code) should be given predominant 131 | weight when voting on the addition or removal of a 132 | Committer; 133 | 134 | iv. A Contributor may become a Committer by a majority approval 135 | of the existing Committers. A Committer may be removed by a 136 | majority approval of the other existing Committers; and 137 | 138 | v. A Committer may be elected by other sub-project Committers 139 | to serve as a Project Technical Lead (PTL) and provide 140 | direction for a sub-project. The TSC may cast a tiebreaking 141 | vote or appoint a PTL in the absence of a majority 142 | agreement of the Committers. 143 | 144 | e. Participation in the Project through becoming a Contributor and 145 | Committer is open to anyone so long as they abide by the terms of 146 | this Charter. 147 | 148 | f. The TSC may (1) establish workflow procedures for the submission, 149 | approval, and closure/archiving of projects, (2) set requirements 150 | for the promotion of Contributors to Committer status, as 151 | applicable, and (3) amend, adjust, refine and/or eliminate the 152 | roles of Contributors, and Committers, and create new roles, and 153 | publicly document any TSC roles, as it sees fit. 154 | 155 | g. The TSC will elect a TSC Chair, annually, who will preside over 156 | meetings of the TSC and will serve until their resignation or 157 | replacement by the TSC. The TSC Chair, or any other TSC member so 158 | designated by the TSC, will serve as the primary communication 159 | contact between the Project and LFN. 160 | 161 | 3) **TSC Voting** 162 | 163 | a. While the Project aims to operate as a consensus based community, 164 | if any TSC decision requires a vote to move the Project forward, 165 | the voting members of the TSC will vote on a one vote per voting 166 | member basis. 167 | 168 | b. TSC votes must be conducted electronically, even if initiated 169 | verbally at a meeting, and, except as provided in Sections 2.b., 170 | 7.c. and 8.a., decisions will require the majority of all voting 171 | members of the TSC. 172 | 173 | c. TSC will define and document an appropriate conflict resolution 174 | mechanism, subject to approval by the Series Manager. This 175 | mechanism will be used in the event a vote cannot be resolved by 176 | the TSC. 177 | 178 | 4) **Compliance with Policies** 179 | 180 | a. This Charter is subject to the Series Agreement for the Project 181 | and the Operating Agreement of LF Projects. Contributors will 182 | comply with the policies of LF Projects as may be adopted and 183 | amended by LF Projects, including, without limitation the policies 184 | listed at https://lfprojects.org/policies/. 185 | 186 | b. The TSC may adopt a code of conduct (“CoC”) for the Project, which 187 | is subject to approval by the Series Manager. Contributors to the 188 | Project will comply with the CoC or, in the event that a 189 | Project-specific CoC has not been approved, the LF Projects Code 190 | of Conduct listed at https://lfprojects.org/policies/. 191 | 192 | c. When amending or adopting any policy applicable to the Project, LF 193 | Projects will publish such policy, as to be amended or adopted, on 194 | its web site at least 30 days prior to such policy taking effect; 195 | provided, however, that in the case of any amendment of the 196 | Trademark Policy or Terms of Use of LF Projects, any such 197 | amendment is effective upon publication on LF Project’s web site. 198 | 199 | d. All participants must allow open participation from any individual 200 | or organization meeting the requirements for contributing under 201 | this Charter and any policies adopted for all participants by the 202 | TSC, regardless of competitive interests. Put another way, the 203 | Project community must not seek to exclude any participant based 204 | on any criteria, requirement, or reason other than those that are 205 | reasonable and applied on a non- discriminatory basis to all 206 | participants. Contribution requirements will be set based on 207 | reasonable criteria and applied on a non-discriminatory basis to 208 | all participants in the Project community. 209 | 210 | e. The Project will operate in a transparent, open, collaborative, 211 | and ethical manner at all times. The output of all Project 212 | discussions, proposals, timelines, decisions, and status should be 213 | made open and easily visible to all. Any potential violations of 214 | this requirement should be reported immediately to the LF Projects 215 | Manager. 216 | 217 | 5) **Community Assets** 218 | 219 | a. LF Projects will hold title to all trade or service marks used by 220 | the Project (“Project Trademarks”), whether based on common law or 221 | registered rights. Project Trademarks will be transferred and 222 | assigned to LF Projects to hold on behalf of the Project. Any use 223 | of any Project Trademarks by participants in the Project will be 224 | in accordance with the license from LF Projects and inure to the 225 | benefit of LF Projects. 226 | 227 | b. The Project will, as permitted and in accordance with such license 228 | from LF Projects, develop and own all Project GitHub and social 229 | media accounts, and domain name registrations created by the 230 | Project community. 231 | 232 | c. Under no circumstances will LF Projects be expected or required to 233 | undertake any action on behalf of the Project that is inconsistent 234 | with the tax-exempt status or purpose, as applicable, of LFP, Inc. 235 | or LF Projects, LLC. 236 | 237 | 6) **General Rules and Operations.** 238 | 239 | a. The Project will: 240 | 241 | i. engage in the work of the project in a professional manner 242 | consistent with maintaining a cohesive community, while also 243 | maintaining the goodwill and esteem of LF Projects, LFP, 244 | Inc. and other partner organizations in the open source 245 | software community; and 246 | 247 | ii. respect the rights of all trademark owners, including any 248 | branding and trademark usage guidelines. 249 | 250 | 7) **Intellectual Property Policy** 251 | 252 | a. Participants acknowledge that the copyright in all new 253 | contributions will be retained by the copyright holder as 254 | independent works of authorship and that no contributor or 255 | copyright holder will be required to assign copyrights to the 256 | Project. 257 | 258 | b. Except as described in Section 7.c., all code contributions to the 259 | Project are subject to the following: 260 | 261 | i. All new inbound code contributions to the Project must be 262 | made using the Apache License, Version 2.0 (available here: 263 | https://www.apache.org/licenses/LICENSE-2.0) (the “Project 264 | License”). 265 | 266 | ii. All new inbound code contributions must: 267 | 268 | 1. be made pursuant to a duly executed Corporate 269 | Contributor License Agreement or, in the case of 270 | self-employed contributors, a duly executed Individual 271 | Contributor License Agreement (forms of which are 272 | available on the Project’s web site); and 273 | 274 | 2. be accompanied by a Developer Certificate of Origin 275 | (http://developercertificate.org) sign-off in the source 276 | code system that is submitted through a TSC-approved 277 | contribution process which will bind the authorized 278 | contributor and, if not self-employed, their employer to 279 | the applicable license; 280 | 281 | iii. All outbound code will be made available under the Project 282 | License. 283 | 284 | iv. Documentation will be received and made available by the 285 | Project under the Creative Commons Attribution 4.0 286 | International License (available at 287 | http://creativecommons.org/licenses/by/4.0/). 288 | 289 | v. The Project may seek to integrate and contribute back to 290 | other open source projects (“Upstream Projects”). In such 291 | cases, the Project will conform to all license requirements 292 | of the Upstream Projects, including dependencies, leveraged 293 | by the Project. Upstream Project code contributions not 294 | stored within the Project’s main code repository will 295 | comply with the contribution process and license terms for 296 | the applicable Upstream Project. 297 | 298 | c. The TSC may approve the use of an alternative license or licenses 299 | for inbound or outbound contributions on an exception basis. To 300 | request an exception, please describe the contribution, the 301 | alternative open source license(s), and the justification for 302 | using an alternative open source license for the Project. License 303 | exceptions must be approved by a two-thirds vote of the entire 304 | TSC. Contributed files should contain license information, such as 305 | SPDX short form identifiers, indicating the open source license or 306 | licenses pertaining to the file. 307 | 308 | 8) **Amendments** 309 | 310 | a. This charter may be amended by a two-thirds vote of the entire TSC 311 | and is subject to approval by LF Projects. 312 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/new-and-changed-features.rst: -------------------------------------------------------------------------------- 1 | .. This work is licensed under the Creative Commons Attribution 4.0 International License. 2 | To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 3 | 4 | ======================== 5 | New and Changed Features 6 | ======================== 7 | 8 | The features listed in this section are new or changed as of Tungsten Fabric Release 5.0.1. A brief description of each new feature is included. 9 | 10 | Support for Advertising of Local AS to BGP Peers 11 | ------------------------------------------------ 12 | 13 | Tungsten Fabric Release 5.0.1 supports advertising of local autonomous system (AS) numbers to BGP peers. With the support for local AS, virtual network functions can advertise AS numbers of the received networks to Tungsten Fabric, which results in the routing table getting updated and in turn enabling the sites to communicate. A new parameter ``local-autonomous-system`` has been added in the BgpSessionAttributes field in the Tungsten Fabric configuration schema to support local AS. You can configure this parameter either from the Tungsten Fabric web UI or by using the VNC API. 14 | 15 | In earlier releases, Tungsten Fabric supported advertising of only Tungsten Fabric AS numbers, so the virtual machines could not advertise the AS numbers of received networks. This is because most BGP implementations do not advertise routes received from a given AS back to the same AS. With the support for local AS in Tungsten Fabric, this check can be avoided, thus ensuring that VNF routes get correctly propagated by BGP. 16 | 17 | Support for Red Hat OpenShift Container Platform Version 3.9 18 | ------------------------------------------------------------ 19 | 20 | OpenShift Container Platform version 3.9 is supported on Tungsten Fabric Release 5.0.1 and validated with CentOS 7.5. 21 | 22 | 23 | Support for EVPN Route Type 5 24 | ----------------------------- 25 | 26 | Tungsten Fabric Release 5.0.1 supports EVPN Route Type 5 messages as defined in the IETF specification *IP Prefix Advertisement in EVPN* . EVPN Route Type 5 is an extension of EVPN Route Type 2, which carries MAC addresses along with their associated IP addresses. EVPN Route Type 5 facilitates in inter-subnet routing. 27 | 28 | Tungsten Fabric Plugin For VMware vRealize Orchestrator 29 | ------------------------------------------------------- 30 | 31 | The Tungsten Fabric plugin for VMware vRealize Orchestrator is available in Tungsten Fabric Release 5.0.1. You can use the dedicated Tungsten Fabric plugin to connect Tungsten Fabric to VMware vRealize Orchestrator (vRO). vRO is used to automate the management processes in data centers. You can use the Tungsten Fabric plugin to view the Tungsten Fabric controller configurations in the vRO inventory. You can also use the plugin to modify configurations by using vRO workflows. You can deploy the Tungsten Fabric plugin in any Java Virtual Machine (JVM) compatible language and load it on an active vRO instance. In Release 5.0.1, Tungsten Fabric plugin for vRO does not support draft mode. 32 | 33 | 34 | Support for Mellanox Connectx-5 NIC 35 | ----------------------------------- 36 | 37 | Starting with Tungsten Fabric Release 5.0.1, Tungsten Fabric vRouter in DPDK mode supports the Mellanox Connectx-5 Network Interface Card (NIC). The NIC works in a no-offload mode in which all packets through the interface are transmitted to the vrouter-dpdk application and then sent to the respective virtual machines (VMs) or the host. 38 | 39 | To deploy a node with the Mellanox Connectx-5 NIC, set ``"DPDK_UIO_DRIVER" : "mlnx"`` for that node under ``vrouter`` in the ``instances.yaml`` or ``host.yml`` files. The vrouter-dpdk application cannot work if the ``"DPDK_UIO_DRIVER"`` is not set. 40 | 41 | Example ``instances.yml`` file in Ansible-based provisioning setups: 42 | :: 43 | 44 | Bms1: 45 | provider: bms 46 | ip: 192.0.2.0 47 | roles: 48 | vrouter: 49 | AGENT_MODE: dpdk 50 | CPU_CORE_MASK: 0xff 51 | DPDK_UIO_DRIVER: mlnx 52 | HUGE_PAGES: 32000 53 | 54 | 55 | Example ``host.yml`` file in Helm-based provisioning setups: 56 | :: 57 | 58 | AGENT_MODE: dpdk 59 | CPU_CORE_MASK: 0xff 60 | DPDK_UIO_DRIVER: mlnx 61 | HUGE_PAGES: 32000 62 | 63 | 64 | 65 | 66 | Support for Remote Compute 67 | -------------------------- 68 | 69 | Tungsten Fabric Release 5.0.1 supports remote compute, a method of managing a Tungsten Fabric deployment across many small distributed data centers. Remote compute employs a subcluster that manages compute nodes at remote sites to receive configurations and exchange routes. 70 | 71 | 72 | Support for Red Hat OpenStack Platform Director 13 73 | -------------------------------------------------- 74 | 75 | Tungsten Fabric Release 5.0.1 supports integration with Red Hat OpenStack Platform Director 13. 76 | 77 | `Table 1`_ lists the the OpenStack releases and the corresponding operating systems and deployer versions supported by Tungsten Fabric Release 5.0.1. 78 | 79 | .. _Table 1: 80 | 81 | *Table 1* : Supported Release Versions 82 | 83 | 84 | +------------------------------+----------------------+-------------------------------+-------------------+ 85 | | Tungsten Fabric Release | Operating System | OpenStack | Deployer | 86 | +==============================+======================+===============================+===================+ 87 | | Tungsten Fabric 5.0.1 | RHEL 7.5 | Red Hat OpenStack Platform 13 | RHOSP 13 director | 88 | +------------------------------+----------------------+-------------------------------+-------------------+ 89 | 90 | 91 | 92 | Ansible Scripts to Provision Tungsten Fabric 93 | -------------------------------------------- 94 | 95 | Tungsten Fabric Release 5.0 introduces microservices architecture. The ``contrail-ansible-deployer`` is a set of Ansible playbooks designed to deploy Tungsten Fabric 5.x with microservices architecture on a CentOS-based system. 96 | 97 | 98 | Tungsten Fabric Microservices 99 | ----------------------------- 100 | 101 | Starting with Tungsten Fabric Release 5.0, more components are being containerized, and the fat containers are being decomposed into thin containers with microservices. The microservices are still encapsulated in their respective containers, however, only the essential functions relative to each container’s functions are present as microservices. This enables a more agile system, avoiding monolithic containers. 102 | 103 | Nothing is changing with regard to Tungsten Fabric functionality, however, employing microservices provides a number of benefits, including the ability to deploy patches without updating the entire Tungsten Fabric deployment, offering better ways to manage the lifecycles of containers, and improving user experiences with Tungsten Fabric provisioning and upgrading. The microservices architecture enables provisioning with minimum information provided and enables every feature to be configurable. Utilizing microservices also simplifies application complexity by implementing small and independent processes. 104 | 105 | 106 | Containerization of DPDK vRouter 107 | -------------------------------- 108 | 109 | Starting with Tungsten Fabric Release 5.0, you can configure the Tungsten Fabric DPDK vRouter to run in a Docker container. In earlier releases, DPDK vRouter runs on a compute host. The contrail-vrouter-dpdk binary file provides data plane functionality when Tungsten Fabric vRouter is run in DPDK mode in a Tungsten Fabric cluster. 110 | 111 | 112 | Distributed Source Network Address Translation (SNAT) 113 | ----------------------------------------------------- 114 | 115 | The distributed SNAT feature allows virtual machines to communicate with the IP fabric network using the existing forwarding infrastructure for compute node connectivity. This functionality is achieved through port address translation of virtual machine traffic using the IP address of the compute node as the public address. 116 | 117 | The following distributed SNAT use case is supported: 118 | 119 | - Virtual networks with distributed SNAT enabled can communicate with the IP fabric network. The session must be initiated from a virtual machine. Sessions initiated from the external network are not supported. 120 | 121 | 122 | Distributed SNAT is supported only for TCP and UDP, and you can configure discrete port ranges for both protocols. 123 | 124 | 125 | EVPN vRouter MultiHoming to Multiple ToRs 126 | ----------------------------------------- 127 | 128 | The Tungsten Fabric control node can be in a situation in which it peers with a set of provider edge (PE) nodes that also contain a multihome CE device or top-of-rack (ToR) that is multihomed to the PE nodes, and the PEs are in all-active multihoming mode. 129 | 130 | In this situation, any EVPN route originating through the multihome device is exported to Tungsten Fabric with two paths—the multihome device path and the PE path. Those routes need to be load-balanced to prevent skewed traffic flow. 131 | 132 | In previous releases, only the Tungsten Fabric controller supports this scenario. In Tungsten Fabric Release 5.0, this support has been added to the Tungsten Fabric vRouter supporting both Layer 2 and Layer 3 traffic. 133 | 134 | Fat Flow Enhancements 135 | --------------------- 136 | 137 | The fat flow feature has been enhanced to support aggregation of multiple flows into a single flow by ignoring source and destination ports and/or IP addresses, or a combination of these. This extends the existing option of ignoring by either source or destination for a given protocol only. 138 | 139 | Also added is support for fat-flow configuration at the VN level, extending the existing support at only the VMI level. 140 | 141 | 142 | Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy 143 | --------------------------------------------------------------------------- 144 | 145 | Tungsten Fabric Release 5.0 supports implementing Kubernetes network policy in Tungsten Fabric using the Tungsten Fabric firewall security policy framework. While Kubernetes network policy can be implemented using other security objects in Tungsten Fabric like security groups and Tungsten Fabric network policies, the support of tags by Tungsten Fabric firewall policy allows decoupling of routing from security policies and provides multi dimension segmentation and policy portability, while significantly enhancing user visibility and analytics functions. 146 | 147 | For more information, see `Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy`_ . 148 | 149 | Kubernetes Updates 150 | ------------------ 151 | 152 | Tungsten Fabric Release 5.0 includes the following Kubernetes updates. 153 | 154 | - The IP fabric forwarding feature enables reachability to public cloud services for Kubernetes pods. The IP fabric forwarding feature enables the overlay network to be a part of the underlay network or the IP fabric network, eliminating the need for encapsulating data packets between Kubernetes pods. 155 | 156 | 157 | - The ip-fabric-snat feature enables service or ingress reachability from external clusters in isolated namespaces. 158 | 159 | 160 | - Multiple Ingress Controllers can co-exist in Tungsten Fabric. Since Tungsten Fabric ensures the reachability between pods and services, any ingress controller can reach the endpoints or pods directly or through services. 161 | 162 | 163 | - Tungsten Fabric supports custom networks in namespace level. Starting with Tungsten Fabric Release 5.0, custom networks are supported for ingress resources as well. 164 | 165 | 166 | - Tungsten Fabric network policy is created between the IP fabric network and pod-network to provide reachability between node and pods. So, any process in the node can reach the pods. Kubernetes Service Node-Port is also supported. 167 | 168 | 169 | For more information on Kubernetes updates in Tungsten Fabric Release 5.0, see `Kubernetes Updates`_ . 170 | 171 | 172 | 173 | Routing Policies Enhanced for Interface Routes 174 | ---------------------------------------------- 175 | 176 | Service interface and static routes are proliferating as leaked routes in the routing table of the SDN gateway. To reduce these leaked routes, routing policies have additional term match conditions under the protocol options to distinguish interface routes, service interface routes, and static routes from other VM routes. Also, a new action attribute, ASPATH (autonomous system path), is added that can be appended with a configurable AS list. All of the action attributes of Add/Set/Remove Community, SetLocal-Pref, and Set Med are supported with the new protocol match conditions and the new ASPATH list append action. 177 | 178 | Users will be able to configure the new term match and action attributes as needed in the following cases: 179 | 180 | - Setting LocalPref on service interface static routes when exporting to distinguish routes and take further action. 181 | 182 | 183 | - Setting different LocalPref for all other reoriginated routes to distinguish routes and take further action. 184 | 185 | 186 | Additionally, Tungsten Fabric can set the LocalPref based on community onto imported routes, instead of the data center gateway, allowing direct access to VPN Internet-Shared from Tungsten Fabric. 187 | 188 | 189 | 190 | Service Instance Health Check Failure 191 | ------------------------------------- 192 | 193 | In Tungsten Fabric Release 5.0, when one or more than one service instance (SI) in a service chain fails, reorigination of routes on the ingress and egress sides of the service chain is stopped. The routes automatically converge to a backup service chain that is part of another Tungsten Fabric cluster. You can detect an SI failure by keeping track of corresponding connected routes of the service chain address. 194 | 195 | 196 | 197 | Support for Load Balancing as a Service (LBaaS) in the Web UI 198 | ------------------------------------------------------------- 199 | 200 | For the LBaaS feature, load balancers using HAproxy can now be created, edited, or deleted using the Tungsten Fabric Web UI. 201 | 202 | 203 | 204 | Support for Security Policies Draft Mode 205 | ---------------------------------------- 206 | 207 | Starting with Tungsten Fabric Release 5.0, you can define new security policies and review the policies before enforcing them. You can also edit existing policies and review the changes before updating them. You can define security policies in both global and project scopes. 208 | 209 | 210 | 211 | 212 | Support for Virtual Network Route Tables in Tungsten Fabric Introspect 213 | ---------------------------------------------------------------------- 214 | 215 | Starting with Tungsten Fabric Release 5.0, virtual network route table entries per compute node can be viewed in Tungsten Fabric Introspect. 216 | 217 | Support for a Flow-Hold Entries Counter in vRouter UVEs 218 | -------------------------------------------------------- 219 | 220 | Starting with Tungsten Fabric Release 5.0 , a flow-hold entries counter is transmitted in vRouter User-Visible Entities (UVEs). The counter specifies the number of flows in **hold** state in the vRouter. vRouter uses the flow-hold count to check against a defined limit and when it reaches a defined limit, packets requiring new flows are dropped and new flows are not created till the flow-hold count goes below the defined limit. 221 | 222 | Along with the flow-hold entries counter, the vRouter UVEs also provide information associated with a vRouter, such as: 223 | 224 | - Virtual networks present on the vRouter 225 | 226 | 227 | - Virtual machines spawned on the server of the vRouter 228 | 229 | 230 | - Statistics of the traffic flowing through the vRouter 231 | 232 | Timestamp In UVE API Response 233 | ----------------------------- 234 | 235 | Starting with Tungsten Fabric Release 5.0, a timestamp is added to the ``/analytics/uve`` UVE API response message. 236 | 237 | Timestamp In UVE Stream Response 238 | -------------------------------- 239 | 240 | Starting with Tungsten Fabric Release 5.0, a timestamp is added to the ``/analytics/uve-stream`` UVE Stream API response message. 241 | 242 | Using Helm Charts to Provision Tungsten Fabric 243 | ---------------------------------------------- 244 | 245 | Starting with Tungsten Fabric 5.0, Tungsten Fabric Helm charts give you complete life cycle management of installation, update, and deletion of Tungsten Fabric Docker-based containers in a microservices architecture. 246 | 247 | Helm is the package manager for Kubernetes which is an open source software for managing containerized systems. The packaging format used by Helm is a chart, a collection of files that describe a related set of Kubernetes resources. 248 | 249 | Many Tungsten Fabric components have been broken out into manageable Helm charts, including the following specific features: 250 | 251 | - Tungsten Fabric service and IP address numbers are configurable by means of Helm charts. 252 | 253 | 254 | - Ingress controllers can be implemented by means of Helm charts. 255 | 256 | 257 | RBAC Support for Tungsten Fabric Analytics API—Beta 258 | --------------------------------------------------- 259 | 260 | Starting with Tungsten Fabric Release 5.0, the Tungsten Fabric Analytics API supports role-based access control (RBAC) as a Beta feature. Based on the user privileges, the logged-in user can access network monitoring information. Tungsten Fabric Analytics API provides this information by mapping the user query and the UVE to the configuration objects on which RBAC rules are applied. 261 | 262 | Remote Compute—Beta 263 | ------------------- 264 | 265 | Remote compute is available as a Beta feature. The remote compute feature enables the deployment of Tungsten Fabric in many small distributed data centers, up to hundreds or even thousands, for telecommunications point-of-presence (PoPs) or central offices (COs). Because each small datacenter has only a small number of computes running only a few applications, it is not cost-effective to deploy a full Tungsten Fabric cluster of nodes of control, configuration, analytics, database, and the like, on dedicated servers in each distributed PoP. Additionally, manually managing hundreds or thousands of clusters is not feasible operationally. 266 | 267 | Remote compute implements a subcluster that manages compute nodes at remote sites to receive configurations and exchange routes. 268 | -------------------------------------------------------------------------------- /releaseinfo/r5.0/releasenotes/rst/new-and-changed-features.rst: -------------------------------------------------------------------------------- 1 | 2 | ======================== 3 | New and Changed Features 4 | ======================== 5 | 6 | The features listed in this section are new or changed as of Tungsten Fabric Release 5.0. A brief description of each new feature is included. 7 | 8 | - `Ansible Scripts to Provision Tungsten Fabric`_ 9 | 10 | 11 | - `Tungsten Fabric Microservices`_ 12 | 13 | 14 | - `Containerization of DPDK vRouter`_ 15 | 16 | 17 | - `Distributed Source Network Address Translation (SNAT)`_ 18 | 19 | 20 | - `EVPN vRouter MultiHoming to Multiple ToRs`_ 21 | 22 | 23 | - `Fat Flow Enhancements`_ 24 | 25 | 26 | - `Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy`_ 27 | 28 | 29 | - `Kubernetes Updates`_ 30 | 31 | 32 | - `Routing Policies Enhanced for Interface Routes`_ 33 | 34 | 35 | - `Service Instance Health Check Failure`_ 36 | 37 | 38 | - `Support for Load Balancing as a Service (LBaaS) in the Web UI`_ 39 | 40 | 41 | - `Support for Security Policies Draft Mode`_ 42 | 43 | 44 | - `Support for Virtual Network Route Tables in Tungsten Fabric Introspect`_ 45 | 46 | 47 | - `Support for a Flow-Hold Entries Counter in vRouter UVEs`_ 48 | 49 | 50 | - `Timestamp In UVE API Response`_ 51 | 52 | 53 | - `Timestamp In UVE Stream Response`_ 54 | 55 | 56 | - `Using Helm Charts to Provision Tungsten Fabric`_ 57 | 58 | 59 | - `Tungsten Fabric Plugin For VMware vRealize Orchestrator—Beta`_ 60 | 61 | 62 | - `RBAC Support for Tungsten Fabric Analytics API—Beta`_ 63 | 64 | 65 | - `Remote Compute—Beta`_ 66 | 67 | 68 | - `OpenShift Enterprise`_ 69 | 70 | 71 | 72 | 73 | Ansible Scripts to Provision Tungsten Fabric 74 | -------------------------------------------- 75 | 76 | Tungsten Fabric Release 5.0 introduces microservices architecture. The ``contrail-ansible-deployer`` is a set of Ansible playbooks designed to deploy Tungsten Fabric 5.x with microservices architecture on a CentOS-based system. 77 | 78 | For more information, see `Overview of contrail-ansible-deployer for Installing Tungsten Fabric with Microservices Architecture`_ and `Installing Tungsten Fabric with OpenStack Ocata and Kolla Ansible`_ . 79 | 80 | 81 | 82 | Tungsten Fabric Microservices 83 | ----------------------------- 84 | 85 | In Tungsten Fabric Release 5.0, components are being containerized that each container encapsulates the services needed for that container into microservices. The microservices are still encapsulated in their respective containers, however, only the essential functions relative to each container’s functions are present as microservices. This enables a more agile system, avoiding monolithic containers. 86 | 87 | Employing microservices provides a number of benefits, including the ability to deploy patches without updating the entire Tungsten Fabric deployment, offering better ways to manage the lifecycles of containers, and improving user experiences with Tungsten Fabric provisioning and upgrading. The microservices architecture enables provisioning with minimum information provided, and enables every feature to be configurable, Utilizing microservices also simplifies application complexity by implementing small, independent processes. 88 | 89 | For more information, see `Introduction to Tungsten Fabric Microservices Architecture`_ . 90 | 91 | 92 | 93 | Containerization of DPDK vRouter 94 | -------------------------------- 95 | 96 | In Tungsten Fabric Release 5.0, the Tungsten Fabric DPDK vRouter to run in a Docker container. The contrail-vrouter-dpdk container provides data plane functionality when Tungsten Fabric vRouter is run in DPDK mode in a Tungsten Fabric cluster. 97 | 98 | For more information, see `Configuring Tungsten Fabric DPDK vRouter to Run in a Docker Container`_ . 99 | 100 | 101 | 102 | Distributed Source Network Address Translation (SNAT) 103 | ----------------------------------------------------- 104 | 105 | The distributed SNAT feature allows virtual machines to communicate with the IP fabric network using the existing forwarding infrastructure for compute node connectivity. This functionality is achieved through port address translation of virtual machine traffic using the IP address of the compute node as the public address. 106 | 107 | The following distributed SNAT use case is supported: 108 | 109 | - Virtual networks with distributed SNAT enabled can communicate with the IP fabric network. The session must be initiated from a virtual machine. Sessions initiated from the external network are not supported. 110 | 111 | 112 | Distributed SNAT is supported only for TCP and UDP, and you can configure discrete port ranges for both protocols. 113 | 114 | For more information, see `Source Network Address Translation (SNAT)`_ . 115 | 116 | 117 | 118 | EVPN vRouter MultiHoming to Multiple ToRs 119 | ----------------------------------------- 120 | 121 | The Tungsten Fabric control node can be in a situation in which it peers with a set of provider edge (PE) nodes that also contain a multihome CE device or top-of-rack (ToR) that is multihomed to the PE nodes, and the PEs are in all-active multihoming mode. 122 | 123 | In this situation, any EVPN route originating through the multihome device is exported to Tungsten Fabric with two paths—the multihome device path and the PE path. Those routes need to be load-balanced to prevent skewed traffic flow. 124 | 125 | In Tungsten Fabric Release 5.0, this support has been added to the Tungsten Fabric vRouter supporting both Layer 2 and Layer 3 traffic, in addition to Tungsten Fabric Controller. 126 | 127 | 128 | 129 | Fat Flow Enhancements 130 | --------------------- 131 | 132 | The fat flow feature has been enhanced to support aggregation of multiple flows into a single flow by ignoring source and destination ports and/or IP addresses, or a combination of these. This extends the existing option of ignoring by either source or destination for a given protocol only. 133 | 134 | Also added is support for fat-flow configuration at the VN level, extending the existing support at only the VMI level. 135 | 136 | For more information, see `Understanding Flow Sampling`_ . 137 | 138 | 139 | 140 | Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy 141 | --------------------------------------------------------------------------- 142 | 143 | Tungsten Fabric Release 5.0 supports implementing Kubernetes network policy in Tungsten Fabric using the Tungsten Fabric firewall security policy framework. While Kubernetes network policy can be implemented using other security objects in Tungsten Fabric like security groups and Tungsten Fabric network policies, the support of tags by Tungsten Fabric firewall policy allows decoupling of routing from security policies and provides multi dimension segmentation and policy portability, while significantly enhancing user visibility and analytics functions. 144 | 145 | For more information, see `Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy`_ . 146 | 147 | 148 | 149 | Kubernetes Updates 150 | ------------------ 151 | 152 | Tungsten Fabric Release 5.0 includes the following Kubernetes updates. 153 | 154 | - The IP fabric forwarding feature enables reachability to public cloud services for Kubernetes pods. The IP fabric forwarding feature enables the overlay network to be a part of the underlay network or the IP fabric network, eliminating the need for encapsulating data packets between Kubernetes pods. 155 | 156 | 157 | - The ip-fabric-snat feature enables service or ingress reachability from external clusters in isolated namespaces. 158 | 159 | 160 | - Multiple Ingress Controllers can co-exist in Tungsten Fabric. Since Tungsten Fabric ensures the reachability between pods and services, any ingress controller can reach the endpoints or pods directly or through services. 161 | 162 | 163 | - Tungsten Fabric 5.0 supports custom networks in namespace level as well as for ingress resources. 164 | 165 | 166 | - Tungsten Fabric network policy is created between the IP fabric network and pod-network to provide reachability between node and pods. So, any process in the node can reach the pods. Kubernetes Service Node-Port is also supported. 167 | 168 | 169 | For more information on Kubernetes updates in Tungsten Fabric Release 5.0, see `Kubernetes Updates`_ . 170 | 171 | 172 | 173 | Routing Policies Enhanced for Interface Routes 174 | ---------------------------------------------- 175 | 176 | Service interface and static routes are proliferating as leaked routes in the routing table of the SDN gateway. To reduce these leaked routes, routing policies have additional term match conditions under the protocol options to distinguish interface routes, service interface routes, and static routes from other VM routes. Also, a new action attribute, ASPATH (autonomous system path), is added that can be appended with a configurable AS list. All of the action attributes of Add/Set/Remove Community, SetLocal-Pref, and Set Med are supported with the new protocol match conditions and the new ASPATH list append action. 177 | 178 | Users will be able to configure the new term match and action attributes as needed in the following cases: 179 | 180 | - Setting LocalPref on service interface static routes when exporting to distinguish routes and take further action. 181 | 182 | 183 | - Setting different LocalPref for all other reoriginated routes to distinguish routes and take further action. 184 | 185 | 186 | Additionally, Tungsten Fabric can set the LocalPref based on community onto imported routes, instead of the data center gateway, allowing direct access to VPN Internet-Shared from Tungsten Fabric. 187 | 188 | 189 | 190 | Service Instance Health Check Failure 191 | ------------------------------------- 192 | 193 | In Tungsten Fabric Release 5.0, when one or more than one service instance (SI) in a service chain fails, reorigination of routes on the ingress and egress sides of the service chain is stopped. The routes automatically converge to a backup service chain that is part of another Tungsten Fabric cluster. You can detect an SI failure by keeping track of corresponding connected routes of the service chain address. 194 | 195 | For more information, see `Service Instance Health Checks`_ . 196 | 197 | 198 | 199 | Support for Load Balancing as a Service (LBaaS) in the Web UI 200 | ------------------------------------------------------------- 201 | 202 | For the LBaaS feature, load balancers using HAproxy can now be created, edited, or deleted using the Tungsten Fabric Web UI. 203 | 204 | For more information, see `Configuring Load Balancing as a Service in Tungsten Fabric`_ . 205 | 206 | 207 | 208 | Support for Security Policies Draft Mode 209 | ---------------------------------------- 210 | 211 | In Tungsten Fabric Release 5.0, you can define new security policies and review the policies before enforcing them. You can also edit existing policies and review the changes before updating them. You can define security policies in both global and project scopes. 212 | 213 | For more information, see `Security Policies Draft Mode Overview`_ . 214 | 215 | 216 | 217 | Support for Virtual Network Route Tables in Tungsten Fabric Introspect 218 | ---------------------------------------------------------------------- 219 | 220 | In Tungsten Fabric Release 5.0, virtual network route table entries per compute node can be viewed in Tungsten Fabric Introspect. 221 | 222 | 223 | 224 | Support for a Flow-Hold Entries Counter in vRouter UVEs 225 | -------------------------------------------------------- 226 | 227 | In Tungsten Fabric Release 5.0 , a flow-hold entries counter is transmitted in vRouter User-Visible Entities (UVEs). The counter specifies the number of flows in **hold** state in the vRouter. vRouter uses the flow-hold count to check against a defined limit and when it reaches a defined limit, packets requiring new flows are dropped and new flows are not created till the flow-hold count goes below the defined limit. 228 | 229 | Along with the flow-hold entries counter, the vRouter UVEs also provide information associated with a vRouter, such as: 230 | 231 | - Virtual networks present on the vRouter 232 | 233 | 234 | - Virtual machines spawned on the server of the vRouter 235 | 236 | 237 | - Statistics of the traffic flowing through the vRouter 238 | 239 | 240 | 241 | 242 | Timestamp In UVE API Response 243 | ----------------------------- 244 | 245 | In Tungsten Fabric Release 5.0, a timestamp is added to the ``/analytics/uve`` UVE API response message. 246 | 247 | 248 | 249 | Timestamp In UVE Stream Response 250 | -------------------------------- 251 | 252 | In Tungsten Fabric Release 5.0, a timestamp is added to the ``/analytics/uve-stream`` UVE Stream API response message. 253 | 254 | 255 | 256 | Using Helm Charts to Provision Tungsten Fabric 257 | ---------------------------------------------- 258 | 259 | In Tungsten Fabric 5.0, Tungsten Fabric Helm charts give you complete life cycle management of installation, update, and deletion of Tungsten Fabric Docker-based containers in a microservices architecture. 260 | 261 | Helm is the package manager for Kubernetes which is an open source software for managing containerized systems. The packaging format used by Helm is a chart, a collection of files that describe a related set of Kubernetes resources. 262 | 263 | Many Tungsten Fabric components have been broken out into manageable Helm charts, including the following specific features: 264 | 265 | - Tungsten Fabric service and IP address numbers are configurable by means of Helm charts. 266 | 267 | 268 | - Ingress controllers can be implemented by means of Helm charts. 269 | 270 | 271 | For more information, see: 272 | 273 | - `Installing and Managing Tungsten Fabric 5.0 Microservices Architecture Using Helm Charts`_ 274 | 275 | 276 | - `Using Helm Charts to Provision Multinode Tungsten Fabric OpenStack Ocata with High Availability`_ 277 | 278 | 279 | - `Using Helm Charts to Provision All-in-One Tungsten Fabric with OpenStack Ocata`_ 280 | 281 | 282 | - `Accessing a Tungsten Fabric OpenStack Helm Cluster`_ 283 | 284 | 285 | - `Frequently Asked Questions About Tungsten Fabric and Helm Charts`_ 286 | 287 | 288 | 289 | 290 | Tungsten Fabric Plugin For VMware vRealize Orchestrator—Beta 291 | ------------------------------------------------------------ 292 | 293 | The Tungsten Fabric plugin for VMware vRealize Orchestrator is available as a Beta feature in Tungsten Fabric Release 5.0. You can use the dedicated Tungsten Fabric plugin to connect Tungsten Fabric to VMware vRealize Orchestrator (vRO). vRO is used to automate the management processes in data centers. You can use the Tungsten Fabric plugin to view the Tungsten Fabric controller configurations in the vRO inventory. You can also use the plugin to modify configurations by using vRO workflows. You can deploy the Tungsten Fabric plugin in any Java Virtual Machine (JVM) compatible language and load it on an active vRO instance. 294 | 295 | See `Integrating Tungsten Fabric with VMware vRealize Orchestrator.`_ 296 | 297 | 298 | 299 | RBAC Support for Tungsten Fabric Analytics API—Beta 300 | --------------------------------------------------- 301 | 302 | In Tungsten Fabric Release 5.0, the Tungsten Fabric Analytics API supports role-based access control (RBAC) as a Beta feature. Based on the user privileges, the logged-in user can access network monitoring information. Tungsten Fabric Analytics API provides this information by mapping the user query and the UVE to the configuration objects on which RBAC rules are applied. 303 | 304 | 305 | 306 | Remote Compute—Beta 307 | ------------------- 308 | 309 | Remote compute is available as a Beta feature. The remote compute feature enables the deployment of Tungsten Fabric in many small distributed data centers, up to hundreds or even thousands, for telecommunications point-of-presence (PoPs) or central offices (COs). Because each small datacenter has only a small number of computes running only a few applications, it is not cost-effective to deploy a full Tungsten Fabric cluster of nodes of control, configuration, analytics, database, and the like, on dedicated servers in each distributed PoP. Additionally, manually managing hundreds or thousands of clusters is not feasible operationally. 310 | 311 | Remote compute implements a subcluster that manages compute nodes at remote sites to receive configurations and exchange routes. 312 | 313 | For more information, see `Remote Compute`_ . 314 | 315 | 316 | 317 | OpenShift Enterprise 318 | -------------------- 319 | 320 | OpenShift Enterprise is *not* supported in Tungsten Fabric Release 5.0. OpenShift Origin 3.7 is supported. 321 | 322 | 323 | .. _Overview of contrail-ansible-deployer for Installing Tungsten Fabric with Microservices Architecture: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/install-contrail-overview-ansible-50.html 324 | 325 | .. _Installing Tungsten Fabric with OpenStack Ocata and Kolla Ansible: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/install-contrail-ocata-kolla-50.html 326 | 327 | .. _Introduction to Tungsten Fabric Microservices Architecture: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/intro-microservices.html 328 | 329 | .. _Configuring Tungsten Fabric DPDK vRouter to Run in a Docker Container: https://www.juniper.net/documentation/en_US/contrail5.0/topics/task/configuration/containerzing-contrail-dpdk-vrouter.html 330 | 331 | .. _Source Network Address Translation (SNAT): https://www.juniper.net/documentation/en_US/contrail5.0/topics/task/configuration/snat-vnc.html 332 | 333 | .. _Understanding Flow Sampling: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/flow-sample-overview.html 334 | 335 | .. _Implementing Kubernetes Network Policy with Tungsten Fabric Firewall Policy: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/k8s-network-policy.html 336 | 337 | .. _Kubernetes Updates: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/k8s-ip-fabric.html 338 | 339 | .. _Service Instance Health Checks: https://www.juniper.net/documentation/en_US/contrail5.0/topics/topic-map/service-instance-health-check.html 340 | 341 | .. _Configuring Load Balancing as a Service in Tungsten Fabric: https://www.juniper.net/documentation/en_US/contrail5.0/topics/task/configuration/load-balance-as-service-vnc.html 342 | 343 | .. _Security Policies Draft Mode Overview: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/security-policy-draft-mode.html 344 | 345 | .. _Installing and Managing Tungsten Fabric 5.0 Microservices Architecture Using Helm Charts: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/install-microsvcs-helm-chart-50.html 346 | 347 | .. _Using Helm Charts to Provision Multinode Tungsten Fabric OpenStack Ocata with High Availability: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/install-microsvcs-helm-multi-50.html 348 | 349 | .. _Using Helm Charts to Provision All-in-One Tungsten Fabric with OpenStack Ocata: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/install-microsvcs-helm-aio-50.html 350 | 351 | .. _Accessing a Tungsten Fabric OpenStack Helm Cluster: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/access_os_helm_cluster.html 352 | 353 | .. _Frequently Asked Questions About Tungsten Fabric and Helm Charts: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/install-microsvcs-helm-multi-faq-50.html 354 | 355 | .. _Integrating Tungsten Fabric with VMware vRealize Orchestrator.: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/integrating-contrail5.0-with-vRO.html 356 | 357 | .. _Remote Compute: https://www.juniper.net/documentation/en_US/contrail5.0/topics/concept/remote-compute-50.html 358 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution 4.0 International Public License 58 | 59 | By exercising the Licensed Rights (defined below), You accept and agree 60 | to be bound by the terms and conditions of this Creative Commons 61 | Attribution 4.0 International Public License ("Public License"). To the 62 | extent this Public License may be interpreted as a contract, You are 63 | granted the Licensed Rights in consideration of Your acceptance of 64 | these terms and conditions, and the Licensor grants You such rights in 65 | consideration of benefits the Licensor receives from making the 66 | Licensed Material available under these terms and conditions. 67 | 68 | 69 | Section 1 -- Definitions. 70 | 71 | a. Adapted Material means material subject to Copyright and Similar 72 | Rights that is derived from or based upon the Licensed Material 73 | and in which the Licensed Material is translated, altered, 74 | arranged, transformed, or otherwise modified in a manner requiring 75 | permission under the Copyright and Similar Rights held by the 76 | Licensor. For purposes of this Public License, where the Licensed 77 | Material is a musical work, performance, or sound recording, 78 | Adapted Material is always produced where the Licensed Material is 79 | synched in timed relation with a moving image. 80 | 81 | b. Adapter's License means the license You apply to Your Copyright 82 | and Similar Rights in Your contributions to Adapted Material in 83 | accordance with the terms and conditions of this Public License. 84 | 85 | c. Copyright and Similar Rights means copyright and/or similar rights 86 | closely related to copyright including, without limitation, 87 | performance, broadcast, sound recording, and Sui Generis Database 88 | Rights, without regard to how the rights are labeled or 89 | categorized. For purposes of this Public License, the rights 90 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 91 | Rights. 92 | 93 | d. Effective Technological Measures means those measures that, in the 94 | absence of proper authority, may not be circumvented under laws 95 | fulfilling obligations under Article 11 of the WIPO Copyright 96 | Treaty adopted on December 20, 1996, and/or similar international 97 | agreements. 98 | 99 | e. Exceptions and Limitations means fair use, fair dealing, and/or 100 | any other exception or limitation to Copyright and Similar Rights 101 | that applies to Your use of the Licensed Material. 102 | 103 | f. Licensed Material means the artistic or literary work, database, 104 | or other material to which the Licensor applied this Public 105 | License. 106 | 107 | g. Licensed Rights means the rights granted to You subject to the 108 | terms and conditions of this Public License, which are limited to 109 | all Copyright and Similar Rights that apply to Your use of the 110 | Licensed Material and that the Licensor has authority to license. 111 | 112 | h. Licensor means the individual(s) or entity(ies) granting rights 113 | under this Public License. 114 | 115 | i. Share means to provide material to the public by any means or 116 | process that requires permission under the Licensed Rights, such 117 | as reproduction, public display, public performance, distribution, 118 | dissemination, communication, or importation, and to make material 119 | available to the public including in ways that members of the 120 | public may access the material from a place and at a time 121 | individually chosen by them. 122 | 123 | j. Sui Generis Database Rights means rights other than copyright 124 | resulting from Directive 96/9/EC of the European Parliament and of 125 | the Council of 11 March 1996 on the legal protection of databases, 126 | as amended and/or succeeded, as well as other essentially 127 | equivalent rights anywhere in the world. 128 | 129 | k. You means the individual or entity exercising the Licensed Rights 130 | under this Public License. Your has a corresponding meaning. 131 | 132 | 133 | Section 2 -- Scope. 134 | 135 | a. License grant. 136 | 137 | 1. Subject to the terms and conditions of this Public License, 138 | the Licensor hereby grants You a worldwide, royalty-free, 139 | non-sublicensable, non-exclusive, irrevocable license to 140 | exercise the Licensed Rights in the Licensed Material to: 141 | 142 | a. reproduce and Share the Licensed Material, in whole or 143 | in part; and 144 | 145 | b. produce, reproduce, and Share Adapted Material. 146 | 147 | 2. Exceptions and Limitations. For the avoidance of doubt, where 148 | Exceptions and Limitations apply to Your use, this Public 149 | License does not apply, and You do not need to comply with 150 | its terms and conditions. 151 | 152 | 3. Term. The term of this Public License is specified in Section 153 | 6(a). 154 | 155 | 4. Media and formats; technical modifications allowed. The 156 | Licensor authorizes You to exercise the Licensed Rights in 157 | all media and formats whether now known or hereafter created, 158 | and to make technical modifications necessary to do so. The 159 | Licensor waives and/or agrees not to assert any right or 160 | authority to forbid You from making technical modifications 161 | necessary to exercise the Licensed Rights, including 162 | technical modifications necessary to circumvent Effective 163 | Technological Measures. For purposes of this Public License, 164 | simply making modifications authorized by this Section 2(a) 165 | (4) never produces Adapted Material. 166 | 167 | 5. Downstream recipients. 168 | 169 | a. Offer from the Licensor -- Licensed Material. Every 170 | recipient of the Licensed Material automatically 171 | receives an offer from the Licensor to exercise the 172 | Licensed Rights under the terms and conditions of this 173 | Public License. 174 | 175 | b. No downstream restrictions. You may not offer or impose 176 | any additional or different terms or conditions on, or 177 | apply any Effective Technological Measures to, the 178 | Licensed Material if doing so restricts exercise of the 179 | Licensed Rights by any recipient of the Licensed 180 | Material. 181 | 182 | 6. No endorsement. Nothing in this Public License constitutes or 183 | may be construed as permission to assert or imply that You 184 | are, or that Your use of the Licensed Material is, connected 185 | with, or sponsored, endorsed, or granted official status by, 186 | the Licensor or others designated to receive attribution as 187 | provided in Section 3(a)(1)(A)(i). 188 | 189 | b. Other rights. 190 | 191 | 1. Moral rights, such as the right of integrity, are not 192 | licensed under this Public License, nor are publicity, 193 | privacy, and/or other similar personality rights; however, to 194 | the extent possible, the Licensor waives and/or agrees not to 195 | assert any such rights held by the Licensor to the limited 196 | extent necessary to allow You to exercise the Licensed 197 | Rights, but not otherwise. 198 | 199 | 2. Patent and trademark rights are not licensed under this 200 | Public License. 201 | 202 | 3. To the extent possible, the Licensor waives any right to 203 | collect royalties from You for the exercise of the Licensed 204 | Rights, whether directly or through a collecting society 205 | under any voluntary or waivable statutory or compulsory 206 | licensing scheme. In all other cases the Licensor expressly 207 | reserves any right to collect such royalties. 208 | 209 | 210 | Section 3 -- License Conditions. 211 | 212 | Your exercise of the Licensed Rights is expressly made subject to the 213 | following conditions. 214 | 215 | a. Attribution. 216 | 217 | 1. If You Share the Licensed Material (including in modified 218 | form), You must: 219 | 220 | a. retain the following if it is supplied by the Licensor 221 | with the Licensed Material: 222 | 223 | i. identification of the creator(s) of the Licensed 224 | Material and any others designated to receive 225 | attribution, in any reasonable manner requested by 226 | the Licensor (including by pseudonym if 227 | designated); 228 | 229 | ii. a copyright notice; 230 | 231 | iii. a notice that refers to this Public License; 232 | 233 | iv. a notice that refers to the disclaimer of 234 | warranties; 235 | 236 | v. a URI or hyperlink to the Licensed Material to the 237 | extent reasonably practicable; 238 | 239 | b. indicate if You modified the Licensed Material and 240 | retain an indication of any previous modifications; and 241 | 242 | c. indicate the Licensed Material is licensed under this 243 | Public License, and include the text of, or the URI or 244 | hyperlink to, this Public License. 245 | 246 | 2. You may satisfy the conditions in Section 3(a)(1) in any 247 | reasonable manner based on the medium, means, and context in 248 | which You Share the Licensed Material. For example, it may be 249 | reasonable to satisfy the conditions by providing a URI or 250 | hyperlink to a resource that includes the required 251 | information. 252 | 253 | 3. If requested by the Licensor, You must remove any of the 254 | information required by Section 3(a)(1)(A) to the extent 255 | reasonably practicable. 256 | 257 | 4. If You Share Adapted Material You produce, the Adapter's 258 | License You apply must not prevent recipients of the Adapted 259 | Material from complying with this Public License. 260 | 261 | 262 | Section 4 -- Sui Generis Database Rights. 263 | 264 | Where the Licensed Rights include Sui Generis Database Rights that 265 | apply to Your use of the Licensed Material: 266 | 267 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 268 | to extract, reuse, reproduce, and Share all or a substantial 269 | portion of the contents of the database; 270 | 271 | b. if You include all or a substantial portion of the database 272 | contents in a database in which You have Sui Generis Database 273 | Rights, then the database in which You have Sui Generis Database 274 | Rights (but not its individual contents) is Adapted Material; and 275 | 276 | c. You must comply with the conditions in Section 3(a) if You Share 277 | all or a substantial portion of the contents of the database. 278 | 279 | For the avoidance of doubt, this Section 4 supplements and does not 280 | replace Your obligations under this Public License where the Licensed 281 | Rights include other Copyright and Similar Rights. 282 | 283 | 284 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 285 | 286 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 287 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 288 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 289 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 290 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 291 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 292 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 293 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 294 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 295 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 296 | 297 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 298 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 299 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 300 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 301 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 302 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 303 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 304 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 305 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 306 | 307 | c. The disclaimer of warranties and limitation of liability provided 308 | above shall be interpreted in a manner that, to the extent 309 | possible, most closely approximates an absolute disclaimer and 310 | waiver of all liability. 311 | 312 | 313 | Section 6 -- Term and Termination. 314 | 315 | a. This Public License applies for the term of the Copyright and 316 | Similar Rights licensed here. However, if You fail to comply with 317 | this Public License, then Your rights under this Public License 318 | terminate automatically. 319 | 320 | b. Where Your right to use the Licensed Material has terminated under 321 | Section 6(a), it reinstates: 322 | 323 | 1. automatically as of the date the violation is cured, provided 324 | it is cured within 30 days of Your discovery of the 325 | violation; or 326 | 327 | 2. upon express reinstatement by the Licensor. 328 | 329 | For the avoidance of doubt, this Section 6(b) does not affect any 330 | right the Licensor may have to seek remedies for Your violations 331 | of this Public License. 332 | 333 | c. For the avoidance of doubt, the Licensor may also offer the 334 | Licensed Material under separate terms or conditions or stop 335 | distributing the Licensed Material at any time; however, doing so 336 | will not terminate this Public License. 337 | 338 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 339 | License. 340 | 341 | 342 | Section 7 -- Other Terms and Conditions. 343 | 344 | a. The Licensor shall not be bound by any additional or different 345 | terms or conditions communicated by You unless expressly agreed. 346 | 347 | b. Any arrangements, understandings, or agreements regarding the 348 | Licensed Material not stated herein are separate from and 349 | independent of the terms and conditions of this Public License. 350 | 351 | 352 | Section 8 -- Interpretation. 353 | 354 | a. For the avoidance of doubt, this Public License does not, and 355 | shall not be interpreted to, reduce, limit, restrict, or impose 356 | conditions on any use of the Licensed Material that could lawfully 357 | be made without permission under this Public License. 358 | 359 | b. To the extent possible, if any provision of this Public License is 360 | deemed unenforceable, it shall be automatically reformed to the 361 | minimum extent necessary to make it enforceable. If the provision 362 | cannot be reformed, it shall be severed from this Public License 363 | without affecting the enforceability of the remaining terms and 364 | conditions. 365 | 366 | c. No term or condition of this Public License will be waived and no 367 | failure to comply consented to unless expressly agreed to by the 368 | Licensor. 369 | 370 | d. Nothing in this Public License constitutes or may be interpreted 371 | as a limitation upon, or waiver of, any privileges and immunities 372 | that apply to the Licensor or You, including from the legal 373 | processes of any jurisdiction or authority. 374 | 375 | 376 | ======================================================================= 377 | 378 | Creative Commons is not a party to its public 379 | licenses. Notwithstanding, Creative Commons may elect to apply one of 380 | its public licenses to material it publishes and in those instances 381 | will be considered the “Licensor.” The text of the Creative Commons 382 | public licenses is dedicated to the public domain under the CC0 Public 383 | Domain Dedication. Except for the limited purpose of indicating that 384 | material is shared under a Creative Commons public license or as 385 | otherwise permitted by the Creative Commons policies published at 386 | creativecommons.org/policies, Creative Commons does not authorize the 387 | use of the trademark "Creative Commons" or any other trademark or logo 388 | of Creative Commons without its prior written consent including, 389 | without limitation, in connection with any unauthorized modifications 390 | to any of its public licenses or any other arrangements, 391 | understandings, or agreements concerning use of licensed material. For 392 | the avoidance of doubt, this paragraph does not form part of the 393 | public licenses. 394 | 395 | Creative Commons may be contacted at creativecommons.org. 396 | -------------------------------------------------------------------------------- /releaseinfo/r5.0.1/releasenotes/rst/themes/rtd/static/rtd.css_t: -------------------------------------------------------------------------------- 1 | /* 2 | * rtd.css 3 | * ~~~~~~~~~~~~~~~ 4 | * 5 | * Sphinx stylesheet -- sphinxdoc theme. Originally created by 6 | * Armin Ronacher for Werkzeug. 7 | * 8 | * Customized for ReadTheDocs by Eric Pierce & Eric Holscher 9 | * 10 | * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. 11 | * :license: BSD, see LICENSE for details. 12 | * 13 | */ 14 | 15 | /* RTD colors 16 | * light blue: #e8ecef 17 | * medium blue: #8ca1af 18 | * dark blue: #465158 19 | * dark grey: #444444 20 | * 21 | * white hover: #d1d9df; 22 | * medium blue hover: #697983; 23 | * green highlight: #8ecc4c 24 | * light blue (project bar): #e8ecef 25 | */ 26 | 27 | @import url("basic.css"); 28 | 29 | /* PAGE LAYOUT -------------------------------------------------------------- */ 30 | 31 | body { 32 | font: 100%/1.5 "ff-meta-web-pro-1","ff-meta-web-pro-2",Arial,"Helvetica Neue",sans-serif; 33 | text-align: center; 34 | color: black; 35 | background-color: #465158; 36 | padding: 0; 37 | margin: 0; 38 | } 39 | 40 | div.document { 41 | text-align: left; 42 | background-color: #e8ecef; 43 | } 44 | 45 | div.bodywrapper { 46 | background-color: #ffffff; 47 | border-left: 1px solid #ccc; 48 | border-bottom: 1px solid #ccc; 49 | margin: 0 0 0 16em; 50 | } 51 | 52 | div.body { 53 | margin: 0; 54 | padding: 0.5em 1.3em; 55 | max-width: 55em; 56 | min-width: 20em; 57 | } 58 | 59 | div.related { 60 | font-size: 1em; 61 | background-color: #465158; 62 | } 63 | 64 | div.documentwrapper { 65 | float: left; 66 | width: 100%; 67 | background-color: #e8ecef; 68 | } 69 | 70 | 71 | /* HEADINGS --------------------------------------------------------------- */ 72 | 73 | h1 { 74 | margin: 0; 75 | padding: 0.7em 0 0.3em 0; 76 | font-size: 1.5em; 77 | line-height: 1.15; 78 | color: #111; 79 | clear: both; 80 | } 81 | 82 | h2 { 83 | margin: 2em 0 0.2em 0; 84 | font-size: 1.35em; 85 | padding: 0; 86 | color: #465158; 87 | } 88 | 89 | h3 { 90 | margin: 1em 0 -0.3em 0; 91 | font-size: 1.2em; 92 | color: #6c818f; 93 | } 94 | 95 | div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a { 96 | color: black; 97 | } 98 | 99 | h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { 100 | display: none; 101 | margin: 0 0 0 0.3em; 102 | padding: 0 0.2em 0 0.2em; 103 | color: #aaa !important; 104 | } 105 | 106 | h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, 107 | h5:hover a.anchor, h6:hover a.anchor { 108 | display: inline; 109 | } 110 | 111 | h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, 112 | h5 a.anchor:hover, h6 a.anchor:hover { 113 | color: #777; 114 | background-color: #eee; 115 | } 116 | 117 | 118 | /* LINKS ------------------------------------------------------------------ */ 119 | 120 | /* Normal links get a pseudo-underline */ 121 | a { 122 | color: #444; 123 | text-decoration: none; 124 | border-bottom: 1px solid #ccc; 125 | } 126 | 127 | /* Links in sidebar, TOC, index trees and tables have no underline */ 128 | .sphinxsidebar a, 129 | .toctree-wrapper a, 130 | .indextable a, 131 | #indices-and-tables a { 132 | color: #444; 133 | text-decoration: none; 134 | border-bottom: none; 135 | } 136 | 137 | /* Most links get an underline-effect when hovered */ 138 | a:hover, 139 | div.toctree-wrapper a:hover, 140 | .indextable a:hover, 141 | #indices-and-tables a:hover { 142 | color: #111; 143 | text-decoration: none; 144 | border-bottom: 1px solid #111; 145 | } 146 | 147 | /* Footer links */ 148 | div.footer a { 149 | color: #86989B; 150 | text-decoration: none; 151 | border: none; 152 | } 153 | div.footer a:hover { 154 | color: #a6b8bb; 155 | text-decoration: underline; 156 | border: none; 157 | } 158 | 159 | /* Permalink anchor (subtle grey with a red hover) */ 160 | div.body a.headerlink { 161 | color: #ccc; 162 | font-size: 1em; 163 | margin-left: 6px; 164 | padding: 0 4px 0 4px; 165 | text-decoration: none; 166 | border: none; 167 | } 168 | div.body a.headerlink:hover { 169 | color: #c60f0f; 170 | border: none; 171 | } 172 | 173 | 174 | /* NAVIGATION BAR --------------------------------------------------------- */ 175 | 176 | div.related ul { 177 | height: 2.5em; 178 | } 179 | 180 | div.related ul li { 181 | margin: 0; 182 | padding: 0.65em 0; 183 | float: left; 184 | display: block; 185 | color: white; /* For the >> separators */ 186 | font-size: 0.8em; 187 | } 188 | 189 | div.related ul li.right { 190 | float: right; 191 | margin-right: 5px; 192 | color: transparent; /* Hide the | separators */ 193 | } 194 | 195 | /* "Breadcrumb" links in nav bar */ 196 | div.related ul li a { 197 | order: none; 198 | background-color: inherit; 199 | font-weight: bold; 200 | margin: 6px 0 6px 4px; 201 | line-height: 1.75em; 202 | color: #ffffff; 203 | padding: 0.4em 0.8em; 204 | border: none; 205 | border-radius: 3px; 206 | } 207 | /* previous / next / modules / index links look more like buttons */ 208 | div.related ul li.right a { 209 | margin: 0.375em 0; 210 | background-color: #697983; 211 | text-shadow: 0 1px rgba(0, 0, 0, 0.5); 212 | border-radius: 3px; 213 | -webkit-border-radius: 3px; 214 | -moz-border-radius: 3px; 215 | } 216 | /* All navbar links light up as buttons when hovered */ 217 | div.related ul li a:hover { 218 | background-color: #8ca1af; 219 | color: #ffffff; 220 | text-decoration: none; 221 | border-radius: 3px; 222 | -webkit-border-radius: 3px; 223 | -moz-border-radius: 3px; 224 | } 225 | /* Take extra precautions for tt within links */ 226 | a tt, 227 | div.related ul li a tt { 228 | background: inherit !important; 229 | color: inherit !important; 230 | } 231 | 232 | 233 | /* SIDEBAR ---------------------------------------------------------------- */ 234 | 235 | div.sphinxsidebarwrapper { 236 | padding: 0; 237 | } 238 | 239 | div.sphinxsidebar { 240 | margin: 0; 241 | margin-left: -100%; 242 | float: left; 243 | top: 3em; 244 | left: 0; 245 | padding: 0 1em; 246 | width: 14em; 247 | font-size: 1em; 248 | text-align: left; 249 | background-color: #e8ecef; 250 | } 251 | 252 | div.sphinxsidebar img { 253 | max-width: 12em; 254 | } 255 | 256 | div.sphinxsidebar h3, div.sphinxsidebar h4 { 257 | margin: 1.2em 0 0.3em 0; 258 | font-size: 1em; 259 | padding: 0; 260 | color: #222222; 261 | font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; 262 | } 263 | 264 | div.sphinxsidebar h3 a { 265 | color: #444444; 266 | } 267 | 268 | div.sphinxsidebar ul, 269 | div.sphinxsidebar p { 270 | margin-top: 0; 271 | padding-left: 0; 272 | line-height: 130%; 273 | background-color: #e8ecef; 274 | } 275 | 276 | /* No bullets for nested lists, but a little extra indentation */ 277 | div.sphinxsidebar ul ul { 278 | list-style-type: none; 279 | margin-left: 1.5em; 280 | padding: 0; 281 | } 282 | 283 | /* A little top/bottom padding to prevent adjacent links' borders 284 | * from overlapping each other */ 285 | div.sphinxsidebar ul li { 286 | padding: 1px 0; 287 | } 288 | 289 | /* A little left-padding to make these align with the ULs */ 290 | div.sphinxsidebar p.topless { 291 | padding-left: 0 0 0 1em; 292 | } 293 | 294 | /* Make these into hidden one-liners */ 295 | div.sphinxsidebar ul li, 296 | div.sphinxsidebar p.topless { 297 | white-space: nowrap; 298 | overflow: hidden; 299 | } 300 | /* ...which become visible when hovered */ 301 | div.sphinxsidebar ul li:hover, 302 | div.sphinxsidebar p.topless:hover { 303 | overflow: visible; 304 | } 305 | 306 | /* Search text box and "Go" button */ 307 | #searchbox { 308 | margin-top: 2em; 309 | margin-bottom: 1em; 310 | background: #ddd; 311 | padding: 0.5em; 312 | border-radius: 6px; 313 | -moz-border-radius: 6px; 314 | -webkit-border-radius: 6px; 315 | } 316 | #searchbox h3 { 317 | margin-top: 0; 318 | } 319 | 320 | /* Make search box and button abut and have a border */ 321 | input, 322 | div.sphinxsidebar input { 323 | border: 1px solid #999; 324 | float: left; 325 | } 326 | 327 | /* Search textbox */ 328 | input[type="text"] { 329 | margin: 0; 330 | padding: 0 3px; 331 | height: 20px; 332 | width: 144px; 333 | border-top-left-radius: 3px; 334 | border-bottom-left-radius: 3px; 335 | -moz-border-radius-topleft: 3px; 336 | -moz-border-radius-bottomleft: 3px; 337 | -webkit-border-top-left-radius: 3px; 338 | -webkit-border-bottom-left-radius: 3px; 339 | } 340 | /* Search button */ 341 | input[type="submit"] { 342 | margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ 343 | height: 22px; 344 | color: #444; 345 | background-color: #e8ecef; 346 | padding: 1px 4px; 347 | font-weight: bold; 348 | border-top-right-radius: 3px; 349 | border-bottom-right-radius: 3px; 350 | -moz-border-radius-topright: 3px; 351 | -moz-border-radius-bottomright: 3px; 352 | -webkit-border-top-right-radius: 3px; 353 | -webkit-border-bottom-right-radius: 3px; 354 | } 355 | input[type="submit"]:hover { 356 | color: #ffffff; 357 | background-color: #8ecc4c; 358 | } 359 | 360 | div.sphinxsidebar p.searchtip { 361 | clear: both; 362 | padding: 0.5em 0 0 0; 363 | background: #ddd; 364 | color: #666; 365 | font-size: 0.9em; 366 | } 367 | 368 | /* Sidebar links are unusual */ 369 | div.sphinxsidebar li a, 370 | div.sphinxsidebar p a { 371 | background: #e8ecef; /* In case links overlap main content */ 372 | border-radius: 3px; 373 | -moz-border-radius: 3px; 374 | -webkit-border-radius: 3px; 375 | border: 1px solid transparent; /* To prevent things jumping around on hover */ 376 | padding: 0 5px 0 5px; 377 | } 378 | div.sphinxsidebar li a:hover, 379 | div.sphinxsidebar p a:hover { 380 | color: #111; 381 | text-decoration: none; 382 | border: 1px solid #888; 383 | } 384 | 385 | /* Tweak any link appearing in a heading */ 386 | div.sphinxsidebar h3 a { 387 | } 388 | 389 | 390 | 391 | 392 | /* OTHER STUFF ------------------------------------------------------------ */ 393 | 394 | cite, code, tt { 395 | font-family: 'Consolas', 'Deja Vu Sans Mono', 396 | 'Bitstream Vera Sans Mono', monospace; 397 | font-size: 0.95em; 398 | letter-spacing: 0.01em; 399 | } 400 | 401 | tt { 402 | background-color: #f2f2f2; 403 | color: #444; 404 | } 405 | 406 | tt.descname, tt.descclassname, tt.xref { 407 | border: 0; 408 | } 409 | 410 | hr { 411 | border: 1px solid #abc; 412 | margin: 2em; 413 | } 414 | 415 | pre, #_fontwidthtest { 416 | font-family: 'Consolas', 'Deja Vu Sans Mono', 417 | 'Bitstream Vera Sans Mono', monospace; 418 | margin: 1em 2em; 419 | font-size: 0.95em; 420 | letter-spacing: 0.015em; 421 | line-height: 120%; 422 | padding: 0.5em; 423 | border: 1px solid #ccc; 424 | background-color: #eee; 425 | border-radius: 6px; 426 | -moz-border-radius: 6px; 427 | -webkit-border-radius: 6px; 428 | } 429 | 430 | pre a { 431 | color: inherit; 432 | text-decoration: underline; 433 | } 434 | 435 | td.linenos pre { 436 | padding: 0.5em 0; 437 | } 438 | 439 | div.quotebar { 440 | background-color: #f8f8f8; 441 | max-width: 250px; 442 | float: right; 443 | padding: 2px 7px; 444 | border: 1px solid #ccc; 445 | } 446 | 447 | div.topic { 448 | background-color: #f8f8f8; 449 | } 450 | 451 | table { 452 | border-collapse: collapse; 453 | margin: 0 -0.5em 0 -0.5em; 454 | } 455 | 456 | table td, table th { 457 | padding: 0.2em 0.5em 0.2em 0.5em; 458 | } 459 | 460 | 461 | /* ADMONITIONS AND WARNINGS ------------------------------------------------- */ 462 | 463 | /* Shared by admonitions, warnings and sidebars */ 464 | div.admonition, 465 | div.warning, 466 | div.sidebar { 467 | font-size: 0.9em; 468 | margin: 2em; 469 | padding: 0; 470 | /* 471 | border-radius: 6px; 472 | -moz-border-radius: 6px; 473 | -webkit-border-radius: 6px; 474 | */ 475 | } 476 | div.admonition p, 477 | div.warning p, 478 | div.sidebar p { 479 | margin: 0.5em 1em 0.5em 1em; 480 | padding: 0; 481 | } 482 | div.admonition pre, 483 | div.warning pre, 484 | div.sidebar pre { 485 | margin: 0.4em 1em 0.4em 1em; 486 | } 487 | div.admonition p.admonition-title, 488 | div.warning p.admonition-title, 489 | div.sidebar p.sidebar-title { 490 | margin: 0; 491 | padding: 0.1em 0 0.1em 0.5em; 492 | color: white; 493 | font-weight: bold; 494 | font-size: 1.1em; 495 | text-shadow: 0 1px rgba(0, 0, 0, 0.5); 496 | } 497 | div.admonition ul, div.admonition ol, 498 | div.warning ul, div.warning ol, 499 | div.sidebar ul, div.sidebar ol { 500 | margin: 0.1em 0.5em 0.5em 3em; 501 | padding: 0; 502 | } 503 | 504 | 505 | /* Admonitions and sidebars only */ 506 | div.admonition, div.sidebar { 507 | border: 1px solid #609060; 508 | background-color: #e9ffe9; 509 | } 510 | div.admonition p.admonition-title, 511 | div.sidebar p.sidebar-title { 512 | background-color: #70A070; 513 | border-bottom: 1px solid #609060; 514 | } 515 | 516 | 517 | /* Warnings only */ 518 | div.warning { 519 | border: 1px solid #900000; 520 | background-color: #ffe9e9; 521 | } 522 | div.warning p.admonition-title { 523 | background-color: #b04040; 524 | border-bottom: 1px solid #900000; 525 | } 526 | 527 | 528 | /* Sidebars only */ 529 | div.sidebar { 530 | max-width: 200px; 531 | } 532 | 533 | 534 | 535 | div.versioninfo { 536 | margin: 1em 0 0 0; 537 | border: 1px solid #ccc; 538 | background-color: #DDEAF0; 539 | padding: 8px; 540 | line-height: 1.3em; 541 | font-size: 0.9em; 542 | } 543 | 544 | .viewcode-back { 545 | font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 546 | 'Verdana', sans-serif; 547 | } 548 | 549 | div.viewcode-block:target { 550 | background-color: #f4debf; 551 | border-top: 1px solid #ac9; 552 | border-bottom: 1px solid #ac9; 553 | } 554 | 555 | dl { 556 | margin: 1em 0 2.5em 0; 557 | } 558 | 559 | /* Highlight target when you click an internal link */ 560 | dt:target { 561 | background: #ffe080; 562 | } 563 | /* Don't highlight whole divs */ 564 | div.highlight { 565 | background: transparent; 566 | } 567 | /* But do highlight spans (so search results can be highlighted) */ 568 | span.highlight { 569 | background: #ffe080; 570 | } 571 | 572 | div.footer { 573 | background-color: #465158; 574 | color: #eeeeee; 575 | padding: 0 2em 2em 2em; 576 | clear: both; 577 | font-size: 0.8em; 578 | text-align: center; 579 | } 580 | 581 | p { 582 | margin: 0.8em 0 0.5em 0; 583 | } 584 | 585 | .section p img { 586 | margin: 1em 2em; 587 | } 588 | 589 | 590 | /* MOBILE LAYOUT -------------------------------------------------------------- */ 591 | 592 | @media screen and (max-width: 600px) { 593 | 594 | h1, h2, h3, h4, h5 { 595 | position: relative; 596 | } 597 | 598 | ul { 599 | padding-left: 1.25em; 600 | } 601 | 602 | div.bodywrapper a.headerlink, #indices-and-tables h1 a { 603 | color: #e6e6e6; 604 | font-size: 80%; 605 | float: right; 606 | line-height: 1.8; 607 | position: absolute; 608 | right: -0.7em; 609 | visibility: inherit; 610 | } 611 | 612 | div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { 613 | line-height: 1.5; 614 | } 615 | 616 | pre { 617 | font-size: 0.7em; 618 | overflow: auto; 619 | word-wrap: break-word; 620 | white-space: pre-wrap; 621 | } 622 | 623 | div.related ul { 624 | height: 2.5em; 625 | padding: 0; 626 | text-align: left; 627 | } 628 | 629 | div.related ul li { 630 | clear: both; 631 | color: #465158; 632 | padding: 0.2em 0; 633 | } 634 | 635 | div.related ul li:last-child { 636 | border-bottom: 1px dotted #8ca1af; 637 | padding-bottom: 0.4em; 638 | margin-bottom: 1em; 639 | width: 100%; 640 | } 641 | 642 | div.related ul li a { 643 | color: #465158; 644 | padding-right: 0; 645 | } 646 | 647 | div.related ul li a:hover { 648 | background: inherit; 649 | color: inherit; 650 | } 651 | 652 | div.related ul li.right { 653 | clear: none; 654 | padding: 0.65em 0; 655 | margin-bottom: 0.5em; 656 | } 657 | 658 | div.related ul li.right a { 659 | color: #fff; 660 | padding-right: 0.8em; 661 | } 662 | 663 | div.related ul li.right a:hover { 664 | background-color: #8ca1af; 665 | } 666 | 667 | div.body { 668 | clear: both; 669 | min-width: 0; 670 | word-wrap: break-word; 671 | } 672 | 673 | div.bodywrapper { 674 | margin: 0 0 0 0; 675 | } 676 | 677 | div.sphinxsidebar { 678 | float: none; 679 | margin: 0; 680 | width: auto; 681 | } 682 | 683 | div.sphinxsidebar input[type="text"] { 684 | height: 2em; 685 | line-height: 2em; 686 | width: 70%; 687 | } 688 | 689 | div.sphinxsidebar input[type="submit"] { 690 | height: 2em; 691 | margin-left: 0.5em; 692 | width: 20%; 693 | } 694 | 695 | div.sphinxsidebar p.searchtip { 696 | background: inherit; 697 | margin-bottom: 1em; 698 | } 699 | 700 | div.sphinxsidebar ul li, div.sphinxsidebar p.topless { 701 | white-space: normal; 702 | } 703 | 704 | .bodywrapper img { 705 | display: block; 706 | margin-left: auto; 707 | margin-right: auto; 708 | max-width: 100%; 709 | } 710 | 711 | div.documentwrapper { 712 | float: none; 713 | } 714 | 715 | div.admonition, div.warning, pre, blockquote { 716 | margin-left: 0em; 717 | margin-right: 0em; 718 | } 719 | 720 | .body p img { 721 | margin: 0; 722 | } 723 | 724 | #searchbox { 725 | background: transparent; 726 | } 727 | 728 | .related:not(:first-child) li { 729 | display: none; 730 | } 731 | 732 | .related:not(:first-child) li.right { 733 | display: block; 734 | } 735 | 736 | div.footer { 737 | padding: 1em; 738 | } 739 | 740 | .rtd_doc_footer .badge { 741 | float: none; 742 | margin: 1em auto; 743 | position: static; 744 | } 745 | 746 | .rtd_doc_footer .badge.revsys-inline { 747 | margin-right: auto; 748 | margin-bottom: 2em; 749 | } 750 | 751 | table.indextable { 752 | display: block; 753 | width: auto; 754 | } 755 | 756 | .indextable tr { 757 | display: block; 758 | } 759 | 760 | .indextable td { 761 | display: block; 762 | padding: 0; 763 | width: auto !important; 764 | } 765 | 766 | .indextable td dt { 767 | margin: 1em 0; 768 | } 769 | 770 | ul.search { 771 | margin-left: 0.25em; 772 | } 773 | 774 | ul.search li div.context { 775 | font-size: 90%; 776 | line-height: 1.1; 777 | margin-bottom: 1; 778 | margin-left: 0; 779 | } 780 | 781 | } 782 | 783 | /* Links in sidebar, TOC, index trees and tables have no underline */ 784 | .sphinxsidebar a, 785 | .toctree-wrapper a, 786 | .indextable a, 787 | #indices-and-tables a { 788 | color: {{ theme_dark_gray }}; 789 | text-decoration: none; 790 | border-bottom: none; 791 | } 792 | 793 | /* Most links get an underline-effect when hovered */ 794 | a:hover, 795 | div.toctree-wrapper a:hover, 796 | .indextable a:hover, 797 | #indices-and-tables a:hover { 798 | color: {{ theme_black }}; 799 | text-decoration: none; 800 | border-bottom: 1px solid {{ theme_black }}; 801 | } 802 | 803 | /* Footer links */ 804 | div.footer a { 805 | color: {{ theme_background_text_link }}; 806 | text-decoration: none; 807 | border: none; 808 | } 809 | div.footer a:hover { 810 | color: {{ theme_medium_color_link_hover }}; 811 | text-decoration: underline; 812 | border: none; 813 | } 814 | 815 | /* Permalink anchor (subtle grey with a red hover) */ 816 | div.body a.headerlink { 817 | color: {{ theme_lighter_gray }}; 818 | font-size: 1em; 819 | margin-left: 6px; 820 | padding: 0 4px 0 4px; 821 | text-decoration: none; 822 | border: none; 823 | } 824 | div.body a.headerlink:hover { 825 | color: {{ theme_negative_text }}; 826 | border: none; 827 | } 828 | 829 | 830 | /* NAVIGATION BAR --------------------------------------------------------- */ 831 | 832 | div.related ul { 833 | height: 2.5em; 834 | } 835 | 836 | div.related ul li { 837 | margin: 0; 838 | padding: 0.65em 0; 839 | float: left; 840 | display: block; 841 | color: {{ theme_background_link_half }}; /* For the >> separators */ 842 | font-size: 0.8em; 843 | } 844 | 845 | div.related ul li.right { 846 | float: right; 847 | margin-right: 5px; 848 | color: transparent; /* Hide the | separators */ 849 | } 850 | 851 | /* "Breadcrumb" links in nav bar */ 852 | div.related ul li a { 853 | order: none; 854 | background-color: inherit; 855 | font-weight: bold; 856 | margin: 6px 0 6px 4px; 857 | line-height: 1.75em; 858 | color: {{ theme_background_link }}; 859 | text-shadow: 0 1px rgba(0, 0, 0, 0.5); 860 | padding: 0.4em 0.8em; 861 | border: none; 862 | border-radius: 3px; 863 | } 864 | /* previous / next / modules / index links look more like buttons */ 865 | div.related ul li.right a { 866 | margin: 0.375em 0; 867 | background-color: {{ theme_medium_color_hover }}; 868 | text-shadow: 0 1px rgba(0, 0, 0, 0.5); 869 | border-radius: 3px; 870 | -webkit-border-radius: 3px; 871 | -moz-border-radius: 3px; 872 | } 873 | /* All navbar links light up as buttons when hovered */ 874 | div.related ul li a:hover { 875 | background-color: {{ theme_medium_color }}; 876 | color: {{ theme_white }}; 877 | text-decoration: none; 878 | border-radius: 3px; 879 | -webkit-border-radius: 3px; 880 | -moz-border-radius: 3px; 881 | } 882 | /* Take extra precautions for tt within links */ 883 | a tt, 884 | div.related ul li a tt { 885 | background: inherit !important; 886 | color: inherit !important; 887 | } 888 | 889 | 890 | /* SIDEBAR ---------------------------------------------------------------- */ 891 | 892 | div.sphinxsidebarwrapper { 893 | padding: 0; 894 | } 895 | 896 | div.sphinxsidebar { 897 | margin: 0; 898 | margin-left: -100%; 899 | float: left; 900 | top: 3em; 901 | left: 0; 902 | padding: 0 1em; 903 | width: 14em; 904 | font-size: 1em; 905 | text-align: left; 906 | background-color: {{ theme_light_color }}; 907 | } 908 | 909 | div.sphinxsidebar img { 910 | max-width: 12em; 911 | } 912 | 913 | div.sphinxsidebar h3, div.sphinxsidebar h4 { 914 | margin: 1.2em 0 0.3em 0; 915 | font-size: 1em; 916 | padding: 0; 917 | color: {{ theme_gray_2 }}; 918 | font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; 919 | } 920 | 921 | div.sphinxsidebar h3 a { 922 | color: {{ theme_grey_color }}; 923 | } 924 | 925 | div.sphinxsidebar ul, 926 | div.sphinxsidebar p { 927 | margin-top: 0; 928 | padding-left: 0; 929 | line-height: 130%; 930 | background-color: {{ theme_light_color }}; 931 | } 932 | 933 | /* No bullets for nested lists, but a little extra indentation */ 934 | div.sphinxsidebar ul ul { 935 | list-style-type: none; 936 | margin-left: 1.5em; 937 | padding: 0; 938 | } 939 | 940 | /* A little top/bottom padding to prevent adjacent links' borders 941 | * from overlapping each other */ 942 | div.sphinxsidebar ul li { 943 | padding: 1px 0; 944 | } 945 | 946 | /* A little left-padding to make these align with the ULs */ 947 | div.sphinxsidebar p.topless { 948 | padding-left: 0 0 0 1em; 949 | } 950 | 951 | /* Make these into hidden one-liners */ 952 | div.sphinxsidebar ul li, 953 | div.sphinxsidebar p.topless { 954 | white-space: nowrap; 955 | overflow: hidden; 956 | } 957 | /* ...which become visible when hovered */ 958 | div.sphinxsidebar ul li:hover, 959 | div.sphinxsidebar p.topless:hover { 960 | overflow: visible; 961 | } 962 | 963 | /* Search text box and "Go" button */ 964 | #searchbox { 965 | margin-top: 2em; 966 | margin-bottom: 1em; 967 | background: {{ theme_dirtier_white }}; 968 | padding: 0.5em; 969 | border-radius: 6px; 970 | -moz-border-radius: 6px; 971 | -webkit-border-radius: 6px; 972 | } 973 | #searchbox h3 { 974 | margin-top: 0; 975 | } 976 | 977 | /* Make search box and button abut and have a border */ 978 | input, 979 | div.sphinxsidebar input { 980 | border: 1px solid {{ theme_gray_9 }}; 981 | float: left; 982 | } 983 | 984 | /* Search textbox */ 985 | input[type="text"] { 986 | margin: 0; 987 | padding: 0 3px; 988 | height: 20px; 989 | width: 144px; 990 | border-top-left-radius: 3px; 991 | border-bottom-left-radius: 3px; 992 | -moz-border-radius-topleft: 3px; 993 | -moz-border-radius-bottomleft: 3px; 994 | -webkit-border-top-left-radius: 3px; 995 | -webkit-border-bottom-left-radius: 3px; 996 | } 997 | /* Search button */ 998 | input[type="submit"] { 999 | margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ 1000 | height: 22px; 1001 | color: {{ theme_dark_gray }}; 1002 | background-color: {{ theme_light_color }}; 1003 | padding: 1px 4px; 1004 | font-weight: bold; 1005 | border-top-right-radius: 3px; 1006 | border-bottom-right-radius: 3px; 1007 | -moz-border-radius-topright: 3px; 1008 | -moz-border-radius-bottomright: 3px; 1009 | -webkit-border-top-right-radius: 3px; 1010 | -webkit-border-bottom-right-radius: 3px; 1011 | } 1012 | input[type="submit"]:hover { 1013 | color: {{ theme_white }}; 1014 | background-color: {{ theme_green_highlight }}; 1015 | } 1016 | 1017 | div.sphinxsidebar p.searchtip { 1018 | clear: both; 1019 | padding: 0.5em 0 0 0; 1020 | background: {{ theme_dirtier_white }}; 1021 | color: {{ theme_gray }}; 1022 | font-size: 0.9em; 1023 | } 1024 | 1025 | /* Sidebar links are unusual */ 1026 | div.sphinxsidebar li a, 1027 | div.sphinxsidebar p a { 1028 | background: {{ theme_light_color }}; /* In case links overlap main content */ 1029 | border-radius: 3px; 1030 | -moz-border-radius: 3px; 1031 | -webkit-border-radius: 3px; 1032 | border: 1px solid transparent; /* To prevent things jumping around on hover */ 1033 | padding: 0 5px 0 5px; 1034 | } 1035 | div.sphinxsidebar li a:hover, 1036 | div.sphinxsidebar p a:hover { 1037 | color: {{ theme_black }}; 1038 | text-decoration: none; 1039 | border: 1px solid {{ theme_light_gray }}; 1040 | } 1041 | 1042 | /* Tweak any link appearing in a heading */ 1043 | div.sphinxsidebar h3 a { 1044 | } 1045 | 1046 | 1047 | 1048 | 1049 | /* OTHER STUFF ------------------------------------------------------------ */ 1050 | 1051 | cite, code, tt { 1052 | font-family: 'Consolas', 'Deja Vu Sans Mono', 1053 | 'Bitstream Vera Sans Mono', monospace; 1054 | font-size: 0.95em; 1055 | letter-spacing: 0.01em; 1056 | } 1057 | 1058 | tt { 1059 | background-color: {{ theme_code_background }}; 1060 | color: {{ theme_dark_gray }}; 1061 | } 1062 | 1063 | tt.descname, tt.descclassname, tt.xref { 1064 | border: 0; 1065 | } 1066 | 1067 | hr { 1068 | border: 1px solid {{ theme_ruler }}; 1069 | margin: 2em; 1070 | } 1071 | 1072 | pre, #_fontwidthtest { 1073 | font-family: 'Consolas', 'Deja Vu Sans Mono', 1074 | 'Bitstream Vera Sans Mono', monospace; 1075 | margin: 1em 2em; 1076 | font-size: 0.95em; 1077 | letter-spacing: 0.015em; 1078 | line-height: 120%; 1079 | padding: 0.5em; 1080 | border: 1px solid {{ theme_lighter_gray }}; 1081 | background-color: {{ theme_code_background }}; 1082 | border-radius: 6px; 1083 | -moz-border-radius: 6px; 1084 | -webkit-border-radius: 6px; 1085 | } 1086 | 1087 | pre a { 1088 | color: inherit; 1089 | text-decoration: underline; 1090 | } 1091 | 1092 | td.linenos pre { 1093 | padding: 0.5em 0; 1094 | } 1095 | 1096 | div.quotebar { 1097 | background-color: {{ theme_almost_white }}; 1098 | max-width: 250px; 1099 | float: right; 1100 | padding: 2px 7px; 1101 | border: 1px solid {{ theme_lighter_gray }}; 1102 | } 1103 | 1104 | div.topic { 1105 | background-color: {{ theme_almost_white }}; 1106 | } 1107 | 1108 | table { 1109 | border-collapse: collapse; 1110 | margin: 0 -0.5em 0 -0.5em; 1111 | } 1112 | 1113 | table td, table th { 1114 | padding: 0.2em 0.5em 0.2em 0.5em; 1115 | } 1116 | 1117 | 1118 | /* ADMONITIONS AND WARNINGS ------------------------------------------------- */ 1119 | 1120 | /* Shared by admonitions, warnings and sidebars */ 1121 | div.admonition, 1122 | div.warning, 1123 | div.sidebar { 1124 | font-size: 0.9em; 1125 | margin: 2em; 1126 | padding: 0; 1127 | /* 1128 | border-radius: 6px; 1129 | -moz-border-radius: 6px; 1130 | -webkit-border-radius: 6px; 1131 | */ 1132 | } 1133 | div.admonition p, 1134 | div.warning p, 1135 | div.sidebar p { 1136 | margin: 0.5em 1em 0.5em 1em; 1137 | padding: 0; 1138 | } 1139 | div.admonition pre, 1140 | div.warning pre, 1141 | div.sidebar pre { 1142 | margin: 0.4em 1em 0.4em 1em; 1143 | } 1144 | div.admonition p.admonition-title, 1145 | div.warning p.admonition-title, 1146 | div.sidebar p.sidebar-title { 1147 | margin: 0; 1148 | padding: 0.1em 0 0.1em 0.5em; 1149 | color: white; 1150 | font-weight: bold; 1151 | font-size: 1.1em; 1152 | text-shadow: 0 1px rgba(0, 0, 0, 0.5); 1153 | } 1154 | div.admonition ul, div.admonition ol, 1155 | div.warning ul, div.warning ol, 1156 | div.sidebar ul, div.sidebar ol { 1157 | margin: 0.1em 0.5em 0.5em 3em; 1158 | padding: 0; 1159 | } 1160 | 1161 | 1162 | /* Admonitions and sidebars only */ 1163 | div.admonition, div.sidebar { 1164 | border: 1px solid {{ theme_positive_dark }}; 1165 | background-color: {{ theme_positive_light }}; 1166 | } 1167 | div.admonition p.admonition-title, 1168 | div.sidebar p.sidebar-title { 1169 | background-color: {{ theme_positive_medium }}; 1170 | border-bottom: 1px solid {{ theme_positive_dark }}; 1171 | } 1172 | 1173 | 1174 | /* Warnings only */ 1175 | div.warning { 1176 | border: 1px solid {{ theme_negative_dark }}; 1177 | background-color: {{ theme_negative_light }}; 1178 | } 1179 | div.warning p.admonition-title { 1180 | background-color: {{ theme_negative_medium }}; 1181 | border-bottom: 1px solid {{ theme_negative_dark }}; 1182 | } 1183 | 1184 | 1185 | /* Sidebars only */ 1186 | div.sidebar { 1187 | max-width: 200px; 1188 | } 1189 | 1190 | 1191 | 1192 | div.versioninfo { 1193 | margin: 1em 0 0 0; 1194 | border: 1px solid {{ theme_lighter_gray }}; 1195 | background-color: {{ theme_light_medium_color }}; 1196 | padding: 8px; 1197 | line-height: 1.3em; 1198 | font-size: 0.9em; 1199 | } 1200 | 1201 | .viewcode-back { 1202 | font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 1203 | 'Verdana', sans-serif; 1204 | } 1205 | 1206 | div.viewcode-block:target { 1207 | background-color: {{ theme_viewcode_bg }}; 1208 | border-top: 1px solid {{ theme_viewcode_border }}; 1209 | border-bottom: 1px solid {{ theme_viewcode_border }}; 1210 | } 1211 | 1212 | dl { 1213 | margin: 1em 0 2.5em 0; 1214 | } 1215 | 1216 | /* Highlight target when you click an internal link */ 1217 | dt:target { 1218 | background: {{ theme_highlight }}; 1219 | } 1220 | /* Don't highlight whole divs */ 1221 | div.highlight { 1222 | background: transparent; 1223 | } 1224 | /* But do highlight spans (so search results can be highlighted) */ 1225 | span.highlight { 1226 | background: {{ theme_highlight }}; 1227 | } 1228 | 1229 | div.footer { 1230 | background-color: {{ theme_background }}; 1231 | color: {{ theme_background_text }}; 1232 | padding: 0 2em 2em 2em; 1233 | clear: both; 1234 | font-size: 0.8em; 1235 | text-align: center; 1236 | } 1237 | 1238 | p { 1239 | margin: 0.8em 0 0.5em 0; 1240 | } 1241 | 1242 | .section p img { 1243 | margin: 1em 2em; 1244 | } 1245 | 1246 | 1247 | /* MOBILE LAYOUT -------------------------------------------------------------- */ 1248 | 1249 | @media screen and (max-width: 600px) { 1250 | 1251 | h1, h2, h3, h4, h5 { 1252 | position: relative; 1253 | } 1254 | 1255 | ul { 1256 | padding-left: 1.75em; 1257 | } 1258 | 1259 | div.bodywrapper a.headerlink, #indices-and-tables h1 a { 1260 | color: {{ theme_almost_dirty_white }}; 1261 | font-size: 80%; 1262 | float: right; 1263 | line-height: 1.8; 1264 | position: absolute; 1265 | right: -0.7em; 1266 | visibility: inherit; 1267 | } 1268 | 1269 | div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { 1270 | line-height: 1.5; 1271 | } 1272 | 1273 | pre { 1274 | font-size: 0.7em; 1275 | overflow: auto; 1276 | word-wrap: break-word; 1277 | white-space: pre-wrap; 1278 | } 1279 | 1280 | div.related ul { 1281 | height: 2.5em; 1282 | padding: 0; 1283 | text-align: left; 1284 | } 1285 | 1286 | div.related ul li { 1287 | clear: both; 1288 | color: {{ theme_dark_color }}; 1289 | padding: 0.2em 0; 1290 | } 1291 | 1292 | div.related ul li:last-child { 1293 | border-bottom: 1px dotted {{ theme_medium_color }}; 1294 | padding-bottom: 0.4em; 1295 | margin-bottom: 1em; 1296 | width: 100%; 1297 | } 1298 | 1299 | div.related ul li a { 1300 | color: {{ theme_dark_color }}; 1301 | padding-right: 0; 1302 | } 1303 | 1304 | div.related ul li a:hover { 1305 | background: inherit; 1306 | color: inherit; 1307 | } 1308 | 1309 | div.related ul li.right { 1310 | clear: none; 1311 | padding: 0.65em 0; 1312 | margin-bottom: 0.5em; 1313 | } 1314 | 1315 | div.related ul li.right a { 1316 | color: {{ theme_white }}; 1317 | padding-right: 0.8em; 1318 | } 1319 | 1320 | div.related ul li.right a:hover { 1321 | background-color: {{ theme_medium_color }}; 1322 | } 1323 | 1324 | div.body { 1325 | clear: both; 1326 | min-width: 0; 1327 | word-wrap: break-word; 1328 | } 1329 | 1330 | div.bodywrapper { 1331 | margin: 0 0 0 0; 1332 | } 1333 | 1334 | div.sphinxsidebar { 1335 | float: none; 1336 | margin: 0; 1337 | width: auto; 1338 | } 1339 | 1340 | div.sphinxsidebar input[type="text"] { 1341 | height: 2em; 1342 | line-height: 2em; 1343 | width: 70%; 1344 | } 1345 | 1346 | div.sphinxsidebar input[type="submit"] { 1347 | height: 2em; 1348 | margin-left: 0.5em; 1349 | width: 20%; 1350 | } 1351 | 1352 | div.sphinxsidebar p.searchtip { 1353 | background: inherit; 1354 | margin-bottom: 1em; 1355 | } 1356 | 1357 | div.sphinxsidebar ul li, div.sphinxsidebar p.topless { 1358 | white-space: normal; 1359 | } 1360 | 1361 | .bodywrapper img { 1362 | display: block; 1363 | margin-left: auto; 1364 | margin-right: auto; 1365 | max-width: 100%; 1366 | } 1367 | 1368 | div.documentwrapper { 1369 | float: none; 1370 | } 1371 | 1372 | div.admonition, div.warning, pre, blockquote { 1373 | margin-left: 0em; 1374 | margin-right: 0em; 1375 | } 1376 | 1377 | .body p img { 1378 | margin: 0; 1379 | } 1380 | 1381 | #searchbox { 1382 | background: transparent; 1383 | } 1384 | 1385 | .related:not(:first-child) li { 1386 | display: none; 1387 | } 1388 | 1389 | .related:not(:first-child) li.right { 1390 | display: block; 1391 | } 1392 | 1393 | div.footer { 1394 | padding: 1em; 1395 | } 1396 | 1397 | .rtd_doc_footer .badge { 1398 | float: none; 1399 | margin: 1em auto; 1400 | position: static; 1401 | } 1402 | 1403 | .rtd_doc_footer .badge.revsys-inline { 1404 | margin-right: auto; 1405 | margin-bottom: 2em; 1406 | } 1407 | 1408 | table.indextable { 1409 | display: block; 1410 | width: auto; 1411 | } 1412 | 1413 | .indextable tr { 1414 | display: block; 1415 | } 1416 | 1417 | .indextable td { 1418 | display: block; 1419 | padding: 0; 1420 | width: auto !important; 1421 | } 1422 | 1423 | .indextable td dt { 1424 | margin: 1em 0; 1425 | } 1426 | 1427 | ul.search { 1428 | margin-left: 0.25em; 1429 | } 1430 | 1431 | ul.search li div.context { 1432 | font-size: 90%; 1433 | line-height: 1.1; 1434 | margin-bottom: 1; 1435 | margin-left: 0; 1436 | } 1437 | 1438 | } 1439 | --------------------------------------------------------------------------------