[TF] Add access to public via access router

Set extra route to access router if TF is enabled

Related-PROD: PRODX-17734
Change-Id: I67866244b2a9715d322c30dc99e82076a70ab4fb
diff --git a/de/heat-templates/fragments/NetworkAccVM.yaml b/de/heat-templates/fragments/NetworkAccVM.yaml
index 751f40f..9cd2c77 100644
--- a/de/heat-templates/fragments/NetworkAccVM.yaml
+++ b/de/heat-templates/fragments/NetworkAccVM.yaml
@@ -11,6 +11,20 @@
   control_network_host_routes:
     type: json
     default: []
+  tungstenfabric_enabled:
+    type: boolean
+  control_network_vsrx_peering_ip:
+    type: string
+    default: ''
+  private_floating_network_cidr:
+    type: string
+    default: ''
+
+conditions:
+  cond_extra_routes:
+    equals:
+      - get_param: tungstenfabric_enabled
+      - true
 
 resources:
 
@@ -34,6 +48,13 @@
     properties:
       router: { get_resource: router }
       subnet: { get_resource: subnet }
+  extra_routes:
+    type: OS::Neutron::ExtraRoute
+    condition: cond_extra_routes
+    properties:
+      destination: { get_param: private_floating_network_cidr }
+      nexthop: { get_param: control_network_vsrx_peering_ip }
+      router_id: { get_resource: router }
 
 
 outputs:
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index c5688b8..d3bab41 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -357,6 +357,9 @@
       control_network_cidr: { get_param: control_network_cidr }
       dns_nameservers: { get_param: dns_nameservers }
       control_network_host_routes: { get_param: control_network_host_routes }
+      tungstenfabric_enabled: { get_param: tungstenfabric_enabled }
+      control_network_vsrx_peering_ip: { get_param: control_network_vsrx_peering_ip }
+      private_floating_network_cidr: { get_param: private_floating_network_cidr }
 
   tun_network:
     type: MCP2::NetworkTun