mbox series

[ovs-dev,ovn,v4,00/13] OVN Interconnection

Message ID 1580327768-36501-1-git-send-email-hzhou@ovn.org
Headers show
Series OVN Interconnection | expand

Message

Han Zhou Jan. 29, 2020, 7:55 p.m. UTC
The series supports interconnecting multiple OVN deployments (e.g.  located at
multiple data centers) through logical routers connected with tansit logical
switches with overlay tunnels, managed through OVN control plane.  See the
ovn-architecture.rst document updates for more details, and find the
instructions in Documentation/tutorials/ovn-interconnection.rst.

v3 -> v4: rebase on master

v2 -> v3:

  - Addressed Numan's comments:
    - Rename ovn-inbctl => ovn-ic-nbctl ovn-isbctl => ovn-ic-sbctl.
    - Update tunnel keys through northd instead of directly update SB-DB by
      ovn-ic.
    - Rename is-interconn to ovn-is-interconn in chassis ovsdb settings.
    - Add a section in ovn-architecture for "A day in the life of a packet
      crossing AZs".
    - Set hostname for chassis in test cases.

  - In addition, there are some other changes:
    - Avoid unnecessary tunnel and bfd sessions to remote chassis.
    - Use external_ids keys "is-remote" and "is-interconn" in SB Chassis
      table, instead of adding new columns is_remote and is_interconn, to
      avoid too many columns.

Han Zhou (13):
  ovn-architecture: Add documentation for OVN interconnection feature.
  ovn-ic-nb: Interconnection northbound DB schema and CLI.
  ovn-ic-sb: Interconnection southbound DB schema and CLI.
  ovn-ic: Interconnection controller with AZ registeration.
  ovn-northd.c: Refactor allocate_tnlid.
  ovn-ic: Transit switch controller.
  ovn-sb: Add keys is_interconn and is_remote to Chassis's external_ids.
  ovn-ic: Interconnection gateway controller.
  ovn-ic: Interconnection port controller.
  ovn.at: e2e test for OVN interconnection.
  ovn-ctl: Refactor to reduce redundant code.
  ovn-ctl: Support commands for interconnection.
  tutorial: Add tutorial for OVN Interconnection.

 .gitignore                                      |    6 +
 Documentation/automake.mk                       |    1 +
 Documentation/tutorials/index.rst               |    1 +
 Documentation/tutorials/ovn-interconnection.rst |  188 ++++
 Makefile.am                                     |    1 +
 NEWS                                            |    5 +
 TODO.rst                                        |    6 +
 automake.mk                                     |   71 ++
 controller/bfd.c                                |    6 +-
 controller/binding.c                            |    6 +-
 controller/chassis.c                            |   25 +-
 controller/encaps.c                             |   15 +-
 controller/encaps.h                             |    3 +-
 controller/ovn-controller.8.xml                 |    6 +
 controller/ovn-controller.c                     |    2 +-
 debian/ovn-common.install                       |    2 +
 debian/ovn-common.manpages                      |    4 +
 ic/.gitignore                                   |    2 +
 ic/automake.mk                                  |   10 +
 ic/ovn-ic.8.xml                                 |  120 +++
 ic/ovn-ic.c                                     | 1104 +++++++++++++++++++++++
 lib/.gitignore                                  |    6 +
 lib/automake.mk                                 |   31 +-
 lib/ovn-ic-nb-idl.ann                           |    9 +
 lib/ovn-ic-sb-idl.ann                           |    9 +
 lib/ovn-util.c                                  |   92 ++
 lib/ovn-util.h                                  |   17 +
 northd/ovn-northd.c                             |  224 +++--
 ovn-architecture.7.xml                          |  144 ++-
 ovn-ic-nb.ovsschema                             |   75 ++
 ovn-ic-nb.xml                                   |  371 ++++++++
 ovn-ic-sb.ovsschema                             |  129 +++
 ovn-ic-sb.xml                                   |  582 ++++++++++++
 ovn-nb.ovsschema                                |    5 +-
 ovn-nb.xml                                      |   66 +-
 ovn-sb.xml                                      |   24 +
 tests/automake.mk                               |    8 +-
 tests/ovn-ic-nbctl.at                           |   65 ++
 tests/ovn-ic-sbctl.at                           |  112 +++
 tests/ovn-ic.at                                 |  188 ++++
 tests/ovn-macros.at                             |  161 +++-
 tests/ovn.at                                    |  147 +++
 tests/testsuite.at                              |    3 +
 tutorial/ovs-sandbox                            |   78 +-
 utilities/.gitignore                            |    4 +
 utilities/automake.mk                           |   16 +
 utilities/ovn-ctl                               |  425 ++++++++-
 utilities/ovn-ctl.8.xml                         |   91 ++
 utilities/ovn-ic-nbctl.8.xml                    |  174 ++++
 utilities/ovn-ic-nbctl.c                        |  950 +++++++++++++++++++
 utilities/ovn-ic-sbctl.8.xml                    |  148 +++
 utilities/ovn-ic-sbctl.c                        | 1017 +++++++++++++++++++++
 52 files changed, 6788 insertions(+), 167 deletions(-)
 create mode 100644 Documentation/tutorials/ovn-interconnection.rst
 create mode 100644 ic/.gitignore
 create mode 100644 ic/automake.mk
 create mode 100644 ic/ovn-ic.8.xml
 create mode 100644 ic/ovn-ic.c
 create mode 100644 lib/ovn-ic-nb-idl.ann
 create mode 100644 lib/ovn-ic-sb-idl.ann
 create mode 100644 ovn-ic-nb.ovsschema
 create mode 100644 ovn-ic-nb.xml
 create mode 100644 ovn-ic-sb.ovsschema
 create mode 100644 ovn-ic-sb.xml
 create mode 100644 tests/ovn-ic-nbctl.at
 create mode 100644 tests/ovn-ic-sbctl.at
 create mode 100644 tests/ovn-ic.at
 create mode 100644 utilities/ovn-ic-nbctl.8.xml
 create mode 100644 utilities/ovn-ic-nbctl.c
 create mode 100644 utilities/ovn-ic-sbctl.8.xml
 create mode 100644 utilities/ovn-ic-sbctl.c

Comments

Numan Siddique Jan. 30, 2020, 6:06 p.m. UTC | #1
On Thu, Jan 30, 2020 at 1:26 AM Han Zhou <hzhou@ovn.org> wrote:
>
> The series supports interconnecting multiple OVN deployments (e.g.  located at
> multiple data centers) through logical routers connected with tansit logical
> switches with overlay tunnels, managed through OVN control plane.  See the
> ovn-architecture.rst document updates for more details, and find the
> instructions in Documentation/tutorials/ovn-interconnection.rst.
>
> v3 -> v4: rebase on master
>
> v2 -> v3:
>
>   - Addressed Numan's comments:
>     - Rename ovn-inbctl => ovn-ic-nbctl ovn-isbctl => ovn-ic-sbctl.
>     - Update tunnel keys through northd instead of directly update SB-DB by
>       ovn-ic.
>     - Rename is-interconn to ovn-is-interconn in chassis ovsdb settings.
>     - Add a section in ovn-architecture for "A day in the life of a packet
>       crossing AZs".
>     - Set hostname for chassis in test cases.
>
>   - In addition, there are some other changes:
>     - Avoid unnecessary tunnel and bfd sessions to remote chassis.
>     - Use external_ids keys "is-remote" and "is-interconn" in SB Chassis
>       table, instead of adding new columns is_remote and is_interconn, to
>       avoid too many columns.
>
> Han Zhou (13):
>   ovn-architecture: Add documentation for OVN interconnection feature.
>   ovn-ic-nb: Interconnection northbound DB schema and CLI.
>   ovn-ic-sb: Interconnection southbound DB schema and CLI.
>   ovn-ic: Interconnection controller with AZ registeration.
>   ovn-northd.c: Refactor allocate_tnlid.
>   ovn-ic: Transit switch controller.
>   ovn-sb: Add keys is_interconn and is_remote to Chassis's external_ids.
>   ovn-ic: Interconnection gateway controller.
>   ovn-ic: Interconnection port controller.
>   ovn.at: e2e test for OVN interconnection.
>   ovn-ctl: Refactor to reduce redundant code.
>   ovn-ctl: Support commands for interconnection.
>   tutorial: Add tutorial for OVN Interconnection.

Thanks for v4.

Acked-by: Numan Siddique <numans@ovn.org> for the entire series.

Numan

>
>  .gitignore                                      |    6 +
>  Documentation/automake.mk                       |    1 +
>  Documentation/tutorials/index.rst               |    1 +
>  Documentation/tutorials/ovn-interconnection.rst |  188 ++++
>  Makefile.am                                     |    1 +
>  NEWS                                            |    5 +
>  TODO.rst                                        |    6 +
>  automake.mk                                     |   71 ++
>  controller/bfd.c                                |    6 +-
>  controller/binding.c                            |    6 +-
>  controller/chassis.c                            |   25 +-
>  controller/encaps.c                             |   15 +-
>  controller/encaps.h                             |    3 +-
>  controller/ovn-controller.8.xml                 |    6 +
>  controller/ovn-controller.c                     |    2 +-
>  debian/ovn-common.install                       |    2 +
>  debian/ovn-common.manpages                      |    4 +
>  ic/.gitignore                                   |    2 +
>  ic/automake.mk                                  |   10 +
>  ic/ovn-ic.8.xml                                 |  120 +++
>  ic/ovn-ic.c                                     | 1104 +++++++++++++++++++++++
>  lib/.gitignore                                  |    6 +
>  lib/automake.mk                                 |   31 +-
>  lib/ovn-ic-nb-idl.ann                           |    9 +
>  lib/ovn-ic-sb-idl.ann                           |    9 +
>  lib/ovn-util.c                                  |   92 ++
>  lib/ovn-util.h                                  |   17 +
>  northd/ovn-northd.c                             |  224 +++--
>  ovn-architecture.7.xml                          |  144 ++-
>  ovn-ic-nb.ovsschema                             |   75 ++
>  ovn-ic-nb.xml                                   |  371 ++++++++
>  ovn-ic-sb.ovsschema                             |  129 +++
>  ovn-ic-sb.xml                                   |  582 ++++++++++++
>  ovn-nb.ovsschema                                |    5 +-
>  ovn-nb.xml                                      |   66 +-
>  ovn-sb.xml                                      |   24 +
>  tests/automake.mk                               |    8 +-
>  tests/ovn-ic-nbctl.at                           |   65 ++
>  tests/ovn-ic-sbctl.at                           |  112 +++
>  tests/ovn-ic.at                                 |  188 ++++
>  tests/ovn-macros.at                             |  161 +++-
>  tests/ovn.at                                    |  147 +++
>  tests/testsuite.at                              |    3 +
>  tutorial/ovs-sandbox                            |   78 +-
>  utilities/.gitignore                            |    4 +
>  utilities/automake.mk                           |   16 +
>  utilities/ovn-ctl                               |  425 ++++++++-
>  utilities/ovn-ctl.8.xml                         |   91 ++
>  utilities/ovn-ic-nbctl.8.xml                    |  174 ++++
>  utilities/ovn-ic-nbctl.c                        |  950 +++++++++++++++++++
>  utilities/ovn-ic-sbctl.8.xml                    |  148 +++
>  utilities/ovn-ic-sbctl.c                        | 1017 +++++++++++++++++++++
>  52 files changed, 6788 insertions(+), 167 deletions(-)
>  create mode 100644 Documentation/tutorials/ovn-interconnection.rst
>  create mode 100644 ic/.gitignore
>  create mode 100644 ic/automake.mk
>  create mode 100644 ic/ovn-ic.8.xml
>  create mode 100644 ic/ovn-ic.c
>  create mode 100644 lib/ovn-ic-nb-idl.ann
>  create mode 100644 lib/ovn-ic-sb-idl.ann
>  create mode 100644 ovn-ic-nb.ovsschema
>  create mode 100644 ovn-ic-nb.xml
>  create mode 100644 ovn-ic-sb.ovsschema
>  create mode 100644 ovn-ic-sb.xml
>  create mode 100644 tests/ovn-ic-nbctl.at
>  create mode 100644 tests/ovn-ic-sbctl.at
>  create mode 100644 tests/ovn-ic.at
>  create mode 100644 utilities/ovn-ic-nbctl.8.xml
>  create mode 100644 utilities/ovn-ic-nbctl.c
>  create mode 100644 utilities/ovn-ic-sbctl.8.xml
>  create mode 100644 utilities/ovn-ic-sbctl.c
>
> --
> 2.1.0
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
Han Zhou Jan. 31, 2020, 2 a.m. UTC | #2
Thanks Numan. I applied to master earlier today but forgot to reply.

Han

On Thu, Jan 30, 2020 at 10:06 AM Numan Siddique <numans@ovn.org> wrote:

> On Thu, Jan 30, 2020 at 1:26 AM Han Zhou <hzhou@ovn.org> wrote:
> >
> > The series supports interconnecting multiple OVN deployments (e.g.
> located at
> > multiple data centers) through logical routers connected with tansit
> logical
> > switches with overlay tunnels, managed through OVN control plane.  See
> the
> > ovn-architecture.rst document updates for more details, and find the
> > instructions in Documentation/tutorials/ovn-interconnection.rst.
> >
> > v3 -> v4: rebase on master
> >
> > v2 -> v3:
> >
> >   - Addressed Numan's comments:
> >     - Rename ovn-inbctl => ovn-ic-nbctl ovn-isbctl => ovn-ic-sbctl.
> >     - Update tunnel keys through northd instead of directly update SB-DB
> by
> >       ovn-ic.
> >     - Rename is-interconn to ovn-is-interconn in chassis ovsdb settings.
> >     - Add a section in ovn-architecture for "A day in the life of a
> packet
> >       crossing AZs".
> >     - Set hostname for chassis in test cases.
> >
> >   - In addition, there are some other changes:
> >     - Avoid unnecessary tunnel and bfd sessions to remote chassis.
> >     - Use external_ids keys "is-remote" and "is-interconn" in SB Chassis
> >       table, instead of adding new columns is_remote and is_interconn, to
> >       avoid too many columns.
> >
> > Han Zhou (13):
> >   ovn-architecture: Add documentation for OVN interconnection feature.
> >   ovn-ic-nb: Interconnection northbound DB schema and CLI.
> >   ovn-ic-sb: Interconnection southbound DB schema and CLI.
> >   ovn-ic: Interconnection controller with AZ registeration.
> >   ovn-northd.c: Refactor allocate_tnlid.
> >   ovn-ic: Transit switch controller.
> >   ovn-sb: Add keys is_interconn and is_remote to Chassis's external_ids.
> >   ovn-ic: Interconnection gateway controller.
> >   ovn-ic: Interconnection port controller.
> >   ovn.at: e2e test for OVN interconnection.
> >   ovn-ctl: Refactor to reduce redundant code.
> >   ovn-ctl: Support commands for interconnection.
> >   tutorial: Add tutorial for OVN Interconnection.
>
> Thanks for v4.
>
> Acked-by: Numan Siddique <numans@ovn.org> for the entire series.
>
> Numan
>
> >
> >  .gitignore                                      |    6 +
> >  Documentation/automake.mk                       |    1 +
> >  Documentation/tutorials/index.rst               |    1 +
> >  Documentation/tutorials/ovn-interconnection.rst |  188 ++++
> >  Makefile.am                                     |    1 +
> >  NEWS                                            |    5 +
> >  TODO.rst                                        |    6 +
> >  automake.mk                                     |   71 ++
> >  controller/bfd.c                                |    6 +-
> >  controller/binding.c                            |    6 +-
> >  controller/chassis.c                            |   25 +-
> >  controller/encaps.c                             |   15 +-
> >  controller/encaps.h                             |    3 +-
> >  controller/ovn-controller.8.xml                 |    6 +
> >  controller/ovn-controller.c                     |    2 +-
> >  debian/ovn-common.install                       |    2 +
> >  debian/ovn-common.manpages                      |    4 +
> >  ic/.gitignore                                   |    2 +
> >  ic/automake.mk                                  |   10 +
> >  ic/ovn-ic.8.xml                                 |  120 +++
> >  ic/ovn-ic.c                                     | 1104
> +++++++++++++++++++++++
> >  lib/.gitignore                                  |    6 +
> >  lib/automake.mk                                 |   31 +-
> >  lib/ovn-ic-nb-idl.ann                           |    9 +
> >  lib/ovn-ic-sb-idl.ann                           |    9 +
> >  lib/ovn-util.c                                  |   92 ++
> >  lib/ovn-util.h                                  |   17 +
> >  northd/ovn-northd.c                             |  224 +++--
> >  ovn-architecture.7.xml                          |  144 ++-
> >  ovn-ic-nb.ovsschema                             |   75 ++
> >  ovn-ic-nb.xml                                   |  371 ++++++++
> >  ovn-ic-sb.ovsschema                             |  129 +++
> >  ovn-ic-sb.xml                                   |  582 ++++++++++++
> >  ovn-nb.ovsschema                                |    5 +-
> >  ovn-nb.xml                                      |   66 +-
> >  ovn-sb.xml                                      |   24 +
> >  tests/automake.mk                               |    8 +-
> >  tests/ovn-ic-nbctl.at                           |   65 ++
> >  tests/ovn-ic-sbctl.at                           |  112 +++
> >  tests/ovn-ic.at                                 |  188 ++++
> >  tests/ovn-macros.at                             |  161 +++-
> >  tests/ovn.at                                    |  147 +++
> >  tests/testsuite.at                              |    3 +
> >  tutorial/ovs-sandbox                            |   78 +-
> >  utilities/.gitignore                            |    4 +
> >  utilities/automake.mk                           |   16 +
> >  utilities/ovn-ctl                               |  425 ++++++++-
> >  utilities/ovn-ctl.8.xml                         |   91 ++
> >  utilities/ovn-ic-nbctl.8.xml                    |  174 ++++
> >  utilities/ovn-ic-nbctl.c                        |  950
> +++++++++++++++++++
> >  utilities/ovn-ic-sbctl.8.xml                    |  148 +++
> >  utilities/ovn-ic-sbctl.c                        | 1017
> +++++++++++++++++++++
> >  52 files changed, 6788 insertions(+), 167 deletions(-)
> >  create mode 100644 Documentation/tutorials/ovn-interconnection.rst
> >  create mode 100644 ic/.gitignore
> >  create mode 100644 ic/automake.mk
> >  create mode 100644 ic/ovn-ic.8.xml
> >  create mode 100644 ic/ovn-ic.c
> >  create mode 100644 lib/ovn-ic-nb-idl.ann
> >  create mode 100644 lib/ovn-ic-sb-idl.ann
> >  create mode 100644 ovn-ic-nb.ovsschema
> >  create mode 100644 ovn-ic-nb.xml
> >  create mode 100644 ovn-ic-sb.ovsschema
> >  create mode 100644 ovn-ic-sb.xml
> >  create mode 100644 tests/ovn-ic-nbctl.at
> >  create mode 100644 tests/ovn-ic-sbctl.at
> >  create mode 100644 tests/ovn-ic.at
> >  create mode 100644 utilities/ovn-ic-nbctl.8.xml
> >  create mode 100644 utilities/ovn-ic-nbctl.c
> >  create mode 100644 utilities/ovn-ic-sbctl.8.xml
> >  create mode 100644 utilities/ovn-ic-sbctl.c
> >
> > --
> > 2.1.0
> >
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> >
>