Add some documentation about Rendezvous (#2749)

diff --git a/docs/Doxyfile b/docs/Doxyfile
index 1417c8c..7ec2532 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -2476,7 +2476,7 @@
 # command).
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOTFILE_DIRS           =
+DOTFILE_DIRS           = docs/dots/
 
 # The MSCFILE_DIRS tag can be used to specify one or more directories that
 # contain msc files that are included in the documentation (see the \mscfile
diff --git a/docs/dots/Rendezvous/RendezvousSessionGeneral.dot b/docs/dots/Rendezvous/RendezvousSessionGeneral.dot
new file mode 100644
index 0000000..b11110f
--- /dev/null
+++ b/docs/dots/Rendezvous/RendezvousSessionGeneral.dot
@@ -0,0 +1,37 @@
+digraph RendezvousSession
+{
+  node [shape=box, fillcolor="white:gray", gradientangle=90, style=filled]
+
+  # This section represents controller-only elements
+  subgraph cluster_controller {
+    label=<<b>Controller</b>>
+
+    ChipDeviceController [shape=record label=<{ChipDeviceController|<font point-size="11">RendezvousSessionDelegate</font>}>, URL="@ref chip::DeviceController::ChipDeviceController"]
+  }
+
+  # This section represents device-only elements
+  subgraph cluster_device {
+    label=<<b>Device</b>>
+
+    RendezvousDeviceDelegate [shape=record label=<{RendezvousDeviceDelegate|<font point-size="11">RendezvousSessionDelegate</font>}> URL="@ref chip::RendezvousSessionDelegate"]
+  }
+
+  # This section represents elements which belongs to src/transport/
+  subgraph cluster_transport {
+    label=<<b>Transport</b>>
+
+    RendezvousSession [shape=record, label=<{RendezvousSession|<font point-size="11">SecurePairingSessionDelegate</font>}>, URL="@ref chip::SecurePairingSessionDelegate"]
+    TransportBle [label="Transport::BLE", URL="@ref chip::Transport::BLE"]
+    TransportInet [label="Transport::?", style=dashed, color=gray]
+  }
+
+  #############################
+  # Main relationships
+  #############################
+  RendezvousParameters [shape=ellipse, URL="@ref chip::RendezvousParameters"]
+  RendezvousParameters -> { ChipDeviceController, RendezvousDeviceDelegate} [arrowhead=none]
+
+  {ChipDeviceController, RendezvousDeviceDelegate} -> RendezvousSession
+  RendezvousSession -> TransportBle
+  RendezvousSession -> TransportInet [style=dashed, color=gray]
+}
diff --git a/docs/dots/Rendezvous/RendezvousSessionInit.dot b/docs/dots/Rendezvous/RendezvousSessionInit.dot
new file mode 100644
index 0000000..7c5a294
--- /dev/null
+++ b/docs/dots/Rendezvous/RendezvousSessionInit.dot
@@ -0,0 +1,83 @@
+digraph RendezvousSession
+{
+  node [fillcolor="gray", style=filled]
+
+  # This section represents controller-only elements
+  subgraph cluster_controller {
+    label=<<b>Controller</b>>
+    node [fillcolor="white:gray", gradientangle=90]
+
+    ChipDeviceController [shape=record label=<{ChipDeviceController|<font point-size="11">RendezvousSessionDelegate</font>}>, URL="@ref chip::DeviceController::ChipDeviceController"]
+  }
+
+  # This section represents device-only elements
+  subgraph cluster_device {
+    label=<<b>Device</b>>
+    node [fillcolor="white:gray", gradientangle=90]
+
+    RendezvousDeviceDelegate [shape=record label=<{RendezvousDeviceDelegate|<font point-size="11">RendezvousSessionDelegate</font>}> URL="@ref chip::RendezvousSessionDelegate"]
+  }
+
+  # This section represents elements which belongs to src/transport/
+  subgraph rendezvousSession {
+    node [fillcolor="white:gray", gradientangle=90]
+
+    RendezvousSession [shape=record, label=<{RendezvousSession|<font point-size="11">SecurePairingSessionDelegate</font>}>, URL="@ref chip::SecurePairingSessionDelegate"]
+  }
+
+  # This section represents methods which belongs to SecurePairingSession
+  subgraph cluster_securePairingSession {
+    label=<<b>SecurePairingSession</b>>
+    node [fillcolor="gray"]
+
+    WaitForPairing [URL="@ref chip::SecurePairingSession::WaitForPairing"]
+    Pair [URL="@ref chip::SecurePairingSession::Pair"]
+    DeriveSecureSession [URL="@ref chip::SecurePairingSession::DeriveSecureSession"]
+  }
+
+  # This section represents methods which belongs to RendezvousParameters
+  subgraph cluster_RendezvousParameters {
+    label=<<b>RendezvousParameters</b>>
+    node [fillcolor="gray"]
+
+    HasDiscriminator [URL="@ref chip::RendezvousParameters::HasDiscriminator"]
+    HasConnectionObject [URL="@ref chip::RendezvousParameters::HasConnectionObject"]
+  }
+
+  # This section represents callbacks which belongs to RendezvousSessionDelegate
+  subgraph cluster_rendezvousSessionDelegate {
+    label=<<b>RendezvousSessionDelegate</b>>
+    node [fillcolor="white"]
+
+    OnRendezvousConnectionOpened [URL="@ref chip::RendezvousSessionDelegate::OnRendezvousConnectionOpened"]
+    OnRendezvousConnectionClosed [URL="@ref chip::RendezvousSessionDelegate::OnRendezvousConnectionClosed"]
+    OnRendezvousError [URL="@ref chip::RendezvousSessionDelegate::OnRendezvousError"]
+  }
+
+  # This section represents callbacks which belongs to SecurePairingSessionDelegate
+  subgraph cluster_securePairingSessionDelegate {
+    label=<<b>SecurePairingSessionDelegate</b>>
+    node [fillcolor="white"]
+
+    OnPairingError [URL="@ref chip::SecurePairingSessionDelegate::OnPairingError"]
+    OnPairingComplete [URL="@ref chip::SecurePairingSessionDelegate::OnPairingComplete"]
+  }
+
+  #############################
+  # Main relationships
+  #############################
+  {ChipDeviceController, RendezvousDeviceDelegate} -> RendezvousSession
+
+  RendezvousSession -> HasDiscriminator
+
+  HasDiscriminator -> DelegateConnection [label=YES]
+  DelegateConnection -> Pair
+
+  HasDiscriminator -> HasConnectionObject [label=NO]
+  HasConnectionObject -> Pair [label=YES]
+
+  HasConnectionObject -> WaitForPairing [label=NO]
+
+  OnPairingError -> OnRendezvousError
+  OnPairingComplete -> DeriveSecureSession -> OnRendezvousConnectionOpened
+}