Various improvements

- Refer to fabric-v1model.p4 in quickstart and mention the future plan
- Remove reference to private docker registry from deployment guide
- Update port ID in both netcfg and chassis config
- Remove private links from ignore list
- Update link to QoS config generator script
- Add link to SD-Fabric helm chart in PFCP configuration section
- Fix GitHub link anchor issue

Change-Id: I5272cb7363176d741a03145242a40db502d2fb24
diff --git a/advanced/qos.rst b/advanced/qos.rst
index d51b0ae..713acf2 100644
--- a/advanced/qos.rst
+++ b/advanced/qos.rst
@@ -115,7 +115,7 @@
 <https://github.com/stratum/stratum/blob/main/stratum/hal/bin/barefoot/README.run.md>`_
 in the Stratum repository.
 
-We provide a convenient `script <https://github.com/stratum/fabric-tna/blob/main/util/gen-stratum-qos-config.py>`_
+We provide a convenient `script <https://github.com/stratum/fabric-tna/blob/main/util/gen-qos-config.py>`_
 to generate the configuration starting from a higher-level description provided via a YAML file.
 This file allows to configure the parameters for the traffic classes listed in the above section.
 
diff --git a/advanced/upf.rst b/advanced/upf.rst
index a7ddb2b..48ab38c 100644
--- a/advanced/upf.rst
+++ b/advanced/upf.rst
@@ -234,7 +234,7 @@
 
 PFCP Agent can be deployed as part of the SD-Fabric Helm Chart.
 
-See the Helm Chart documentation for more information on the configuration
+See the `SD-Fabric Helm Chart README <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/HEAD/sdfabric/README.md>`_ for more information on the configuration
 parameters. Once deployed, use ``kubectl get services -n sdfabric`` to find out
 the exact UDP endpoint used to listen for PFCP connection requests.
 
diff --git a/conf.py b/conf.py
index af16176..7fa7edf 100644
--- a/conf.py
+++ b/conf.py
@@ -246,10 +246,6 @@
 # -- Options for linkcheck ---------------------------------------------------
 # The link checker strips off .md from links and then complains
 linkcheck_ignore = [
-    r'https://github.com/stratum/fabric-tna/*',  # Fabric-TNA private repo
-    r'https://github.com/opennetworkinglab/sdfabric-utils',  # Private repo
-    r'https://github.com/omec-project/up4/*',  # UP4 private repo
-    r'https://github.com/omec-project/dbuf/*',  # DBUF private repo
     r'https://jenkins.aetherproject.org/view/SD-Fabric%20Nightly%20Tests/'  # Jenkins View, requires login
 ]
 
diff --git a/configuration/chassis.rst b/configuration/chassis.rst
index 2a8a317..11b433a 100644
--- a/configuration/chassis.rst
+++ b/configuration/chassis.rst
@@ -77,6 +77,15 @@
 A ``singleton port`` uniquely identifies a switch port and it contains the following fields:
 
 * ``id``: An arbitrary ID, unique in the scope of a chassis. **Required**
+
+    .. note::
+        We recommend using the following naming convention for both ONOS network config and Stratum chassis config:
+            - For unchannelized ports, use the **front panel port** number directly.
+            - For channelized ports, use the **front panel port number * 100 + channel id**.
+              For example, we can use port id ``2903`` for port ``29/3`` (port 29 channel 3).
+            - Note that we use **zero-based** channel number for singleton port ``id``
+              but the ``channel`` field described below uses **one-based** channel number.
+
 * ``name``: An optional user friendly name for the port (e.g., ``10/1`` to identify channel
   1 of front-panel port 10). **Required**
 
diff --git a/configuration/network.rst b/configuration/network.rst
index 1ab1766..6f6d0d0 100644
--- a/configuration/network.rst
+++ b/configuration/network.rst
@@ -115,19 +115,9 @@
 Before describing the ONOS netcfg, it is worth nothing how we refer to ports for
 Tofino-based devices. Netcfg uses the format ``device:<name>/<port-number>``.
 
-``<port-number>`` is a special value that is usually different than the number
-shown in the switch front panel. It is the same number used for P4 table
-programming and depends on the specific Tofino ASIC SKU (e.g., dual-pipe vs.
-quad-pipe) and switch vendor/platform. In Stratum this is often referred to as
-the *SDK port ID*, as this is the number used for all Tofino SDK calls. In Intel
-documentation this is referred to as the ``DP_ID``. We plan to remove this
-dependency on such a low level detail in future releases, but for now, to find
-out the mapping between front-panel ports and ``DP_ID`` you have the following
-options:
-
-- Ask your switch vendor
-- Use the command `pm.show` on the BF shell of a running Stratum instance
-  (see :ref:`troubleshooting_guide`)
+``<port-number>`` is a unique, arbitrary value that should be consistent
+with the ``id`` field defined in Stratum chassis config.
+See :ref:`singleton_port` for more details.
 
 Bridging and Unicast Routing
 ----------------------------
diff --git a/deployment.rst b/deployment.rst
index 6d4b6a0..c55d3aa 100644
--- a/deployment.rst
+++ b/deployment.rst
@@ -21,20 +21,15 @@
    Kubernetes ``label`` and ``taint`` are used to configure switches as special Kubernetes worker nodes.
    This is to make sure we deploy Stratum (and only Stratum) on switches.
 
-3. **Prepare access credential for SD-Fabric images**
-
-   SD-Fabric images are hosted on an ONF member-only Docker registry.
-   You need to obtain access token and supply that as part of the Helm value in Step 6.
-
-4. **Prepare ONOS network configuration**
+3. **Prepare ONOS network configuration**
 
    Network configuration defines properties such as switch pipeconf, subnet and VLAN.
 
-5. **Prepare Stratum chassis configuration for each switch**
+4. **Prepare Stratum chassis configuration for each switch**
 
    Chassis config defines switch properties such as port speed and breakout.
 
-6. **Install SD-Fabric** using Helm
+5. **Install SD-Fabric** using Helm
 
    Finally, we are going to install SD-Fabric with the information we prepared in Step 1 to 5.
 
@@ -114,35 +109,17 @@
      leaf1   Ready    worker   27d   v1.18.8
      leaf2   Ready    worker   27d   v1.18.8
 
-
-Step 3: Prepare access credential for SD-Fabric images
-------------------------------------------------------
-
-Container images can be download from ONF self-hosted container registry but you have to gain the access token first.
-
-1. Login to `Aether Harbor Registry <https://registry.aetherproject.org/harbor/sign-in?redirect_url=%2Fharbor%2Fprojects>`_ using your ONF Crowd credential,
-2. Select ``User Profile`` drop-down menu in the upper-right corner
-3. Generate the CLI secret and it's the secret token you have to access the container registry via CLI tool.
-4. Login to the container registry with your username and access token
-   by ``docker login command`` to ensure you can access it.
-
-.. code-block::
-
-      ╰─$ docker login registry.aetherproject.org --username hwchiu
-      Password:
-      Login Succeeded
-
-Step 4: Prepare ONOS network configuration
+Step 3: Prepare ONOS network configuration
 ------------------------------------------
    See :ref:`onos_network_config` for instructions
 
-Step 5: Prepare Stratum chassis configuration
+Step 4: Prepare Stratum chassis configuration
 ---------------------------------------------
    See See :ref:`stratum_chassis_config` for instructions
 
 .. _install_sd_fabric:
 
-Step 6: Install SD-Fabric with Helm
+Step 5: Install SD-Fabric with Helm
 -----------------------------------
 
 To install SD-Fabric into your Kubernetes cluster, follow instructions
diff --git a/dict.txt b/dict.txt
index 684e44c..3e7bd66 100644
--- a/dict.txt
+++ b/dict.txt
@@ -128,6 +128,7 @@
 tna
 tolerations
 topologies
+unchannelized
 unconfigured
 unicast
 untagged
diff --git a/quickstart.rst b/quickstart.rst
index eb66267..43917d9 100644
--- a/quickstart.rst
+++ b/quickstart.rst
@@ -5,6 +5,8 @@
 ===========
 
 .. note::
-    We are recently migrating BMV2 version of ``fabric.p4`` to ``fabric-tna`` repository.
-    We will be able to build a software emulated environment for SD-Fabric once that is done.
+    We have recently migrated the BMV2 version of ``fabric.p4`` to ``fabric-tna`` repository (and renamed it to ``fabric-v1model.p4``).
+    We plan to build a software-emulated, Docker-based environment using ``fabric-v1model.p4``
+    such that people can easily try out SD-Fabric without hardware equipments.
+    We also plan to use the same environment for SD-Fabric smoke test in the future.
     Stay tuned.
diff --git a/testing/pipeline.rst b/testing/pipeline.rst
index 506b3c0..ca8cb87 100644
--- a/testing/pipeline.rst
+++ b/testing/pipeline.rst
@@ -24,23 +24,23 @@
 Test plans
 ----------
 
-See `test plans <https://github.com/stratum/fabric-tna/tree/main/ptf#the-unary-test-plan>`_ section in the fabric-TNA repository
+See `test plans <https://github.com/stratum/fabric-tna/tree/main/ptf#user-content-the-unary-test-plan>`_ section in the fabric-TNA repository
 
 Run tests
 ---------
 
-See `step to run tests <https://github.com/stratum/fabric-tna/tree/main/ptf#steps-to-run-tests-on-tofino-model-with-stratum>`_
+See `step to run tests <https://github.com/stratum/fabric-tna/tree/main/ptf#user-content-steps-to-run-tests-on-tofino-model-with-stratum>`_
 section in the Fabric-TNA repository.
 
 Test result
 -----------
 
-See `test result <https://github.com/stratum/fabric-tna/tree/main/ptf#test-result>`_
+See `test result <https://github.com/stratum/fabric-tna/tree/main/ptf#user-content-test-result>`_
 section in the Fabric-TNA repository.
 
 
 Contribute new test cases
 -------------------------
 
-See `contribute new test cases <https://github.com/stratum/fabric-tna/tree/main/ptf#contribute-new-test-cases>`_
+See `contribute new test cases <https://github.com/stratum/fabric-tna/tree/main/ptf#user-content-contribute-new-test-cases>`_
 section in the Fabric-TNA repository.