|
1 | | -from dash_api.eni_pb2 import State |
| 1 | +from dash_api.eni_pb2 import State, EniMode |
2 | 2 | from dash_api.route_type_pb2 import ActionType, EncapType, RoutingType |
3 | 3 | from dash_api.types_pb2 import IpVersion |
4 | 4 |
|
|
24 | 24 |
|
25 | 25 | APPLIANCE_ID = "100" |
26 | 26 | LOCAL_REGION_ID = "100" |
27 | | -VM_VNI = "4321" |
| 27 | +VM_VNI = 4321 |
28 | 28 | ENCAP_VNI = 100 |
| 29 | +NSG_OUTBOUND_VNI = 100 |
29 | 30 | VNET1 = "Vnet1" |
| 31 | +VNET2 = "Vnet2" |
30 | 32 | VNET1_VNI = "2001" |
31 | 33 | VNET1_GUID = "559c6ce8-26ab-4193-b946-ccc6e8f930b2" |
| 34 | +VNET2_GUID = "559c6ce8-26ab-4193-b946-ccc6e8f930b3" |
32 | 35 | VM_MAC = "44:E3:9F:EF:C4:6E" |
33 | 36 | ENI_MAC = "F4:93:9F:EF:C4:7E" |
34 | 37 | ENI_MAC_STRING = ENI_MAC.replace(":", "") |
|
41 | 44 | ROUTE_GROUP1_GUID = "48af6ce8-26cc-4293-bfa6-0126e8fcdeb2" |
42 | 45 | ROUTE_GROUP2_GUID = "58cf62e0-22cc-4693-baa6-012358fcdec9" |
43 | 46 | OUTBOUND_DIR_LOOKUP = "dst_mac" |
| 47 | +TUNNEL1 = "Tunnel1" |
| 48 | +ENI_ID2 = "497f23d7-f0ac-4c99-a98f-59b470e8c7bd" |
| 49 | +TUNNEL1_ENDPOINT_IP = "40.40.40.40" |
| 50 | +TUNNEL2 = "Tunnel2" |
| 51 | +TUNNEL1_ENDPOINT_IPS = [TUNNEL1_ENDPOINT_IP] |
| 52 | +TUNNEL2_ENDPOINT_IPS = ["60.60.60.60", "70.70.70.70"] |
| 53 | +TUNNEL3 = "Tunnel3" |
| 54 | +TUNNEL3_ENDPOINT_IPS = ["80.80.80.80"] |
| 55 | +TUNNEL4 = "Tunnel4" |
| 56 | +TUNNEL4_ENDPOINT_IPS = ["90.90.90.90", "10.10.10.10"] |
| 57 | +ENI_TRUSTED_VNI = "800" |
44 | 58 | METER_POLICY_V4 = "MeterPolicyV4" |
45 | 59 | METER_RULE_V4_PREFIX1 = "48.10.5.0/24" |
46 | 60 | METER_RULE_V4_PREFIX2 = "92.6.0.0/16" |
|
49 | 63 | f"DASH_APPLIANCE_TABLE:{APPLIANCE_ID}": { |
50 | 64 | "sip": APPLIANCE_VIP, |
51 | 65 | "vm_vni": VM_VNI, |
52 | | - "local_region_id": LOCAL_REGION_ID |
| 66 | + "local_region_id": LOCAL_REGION_ID, |
| 67 | + "trusted_vnis": [ENCAP_VNI, NSG_OUTBOUND_VNI], |
| 68 | + } |
| 69 | +} |
| 70 | + |
| 71 | +APPLIANCE_FNIC_CONFIG = { |
| 72 | + f"DASH_APPLIANCE_TABLE:{APPLIANCE_ID}": { |
| 73 | + "sip": APPLIANCE_VIP, |
| 74 | + "vm_vni": VM_VNI, |
| 75 | + "outbound_direction_lookup": OUTBOUND_DIR_LOOKUP, |
| 76 | + "local_region_id": LOCAL_REGION_ID, |
| 77 | + "trusted_vnis": ENCAP_VNI |
53 | 78 | } |
54 | 79 | } |
55 | 80 |
|
|
60 | 85 | } |
61 | 86 | } |
62 | 87 |
|
| 88 | +VNET2_CONFIG = { |
| 89 | + f"DASH_VNET_TABLE:{VNET2}": { |
| 90 | + "vni": VM_VNI, |
| 91 | + "guid": VNET2_GUID |
| 92 | + } |
| 93 | +} |
| 94 | + |
| 95 | +ENI_FNIC_CONFIG = { |
| 96 | + f"DASH_ENI_TABLE:{ENI_ID}": { |
| 97 | + "vnet": VNET1, |
| 98 | + "underlay_ip": VM1_PA, |
| 99 | + "mac_address": ENI_MAC, |
| 100 | + "eni_id": ENI_ID2, |
| 101 | + "admin_state": State.STATE_ENABLED, |
| 102 | + "pl_underlay_sip": APPLIANCE_VIP, |
| 103 | + "pl_sip_encoding": f"{PL_ENCODING_IP}/{PL_ENCODING_MASK}", |
| 104 | + "eni_mode": EniMode.MODE_FNIC, |
| 105 | + "trusted_vnis": ENI_TRUSTED_VNI, |
| 106 | + } |
| 107 | +} |
| 108 | + |
63 | 109 | ENI_CONFIG = { |
64 | 110 | f"DASH_ENI_TABLE:{ENI_ID}": { |
65 | 111 | "vnet": VNET1, |
|
70 | 116 | "pl_underlay_sip": APPLIANCE_VIP, |
71 | 117 | "pl_sip_encoding": f"{PL_ENCODING_IP}/{PL_ENCODING_MASK}", |
72 | 118 | "v4_meter_policy_id": METER_POLICY_V4, |
| 119 | + "trusted_vnis": VM_VNI |
73 | 120 | } |
74 | 121 | } |
75 | 122 |
|
|
83 | 130 | } |
84 | 131 | } |
85 | 132 |
|
86 | | -VM1_VNET_MAPPING_CONFIG = { |
87 | | - f"DASH_VNET_MAPPING_TABLE:{VNET1}:{VM1_CA}": { |
88 | | - "routing_type": RoutingType.ROUTING_TYPE_VNET, |
89 | | - "underlay_ip": VM1_PA, |
90 | | - "metering_class_or": "2", |
| 133 | +PE_PLNSG_SINGLE_ENDPOINT_VNET_MAPPING_CONFIG = { |
| 134 | + f"DASH_VNET_MAPPING_TABLE:{VNET1}:{PE_CA}": { |
| 135 | + "routing_type": RoutingType.ROUTING_TYPE_PRIVATELINK, |
| 136 | + "underlay_ip": PE_PA, |
| 137 | + "overlay_sip_prefix": f"{PL_OVERLAY_SIP}/{PL_OVERLAY_SIP_MASK}", |
| 138 | + "overlay_dip_prefix": f"{PL_OVERLAY_DIP}/{PL_OVERLAY_DIP_MASK}", |
| 139 | + "metering_class_or": "1586", |
| 140 | + "tunnel": TUNNEL3, |
| 141 | + } |
| 142 | +} |
| 143 | + |
| 144 | +PE_PLNSG_MULTI_ENDPOINT_VNET_MAPPING_CONFIG = { |
| 145 | + f"DASH_VNET_MAPPING_TABLE:{VNET1}:{PE_CA}": { |
| 146 | + "routing_type": RoutingType.ROUTING_TYPE_PRIVATELINK, |
| 147 | + "underlay_ip": PE_PA, |
| 148 | + "overlay_sip_prefix": f"{PL_OVERLAY_SIP}/{PL_OVERLAY_SIP_MASK}", |
| 149 | + "overlay_dip_prefix": f"{PL_OVERLAY_DIP}/{PL_OVERLAY_DIP_MASK}", |
| 150 | + "metering_class_or": "1586", |
| 151 | + "tunnel": TUNNEL4, |
| 152 | + } |
| 153 | +} |
| 154 | + |
| 155 | +TUNNEL1_CONFIG = { |
| 156 | + f"DASH_TUNNEL_TABLE:{TUNNEL1}": { |
| 157 | + "endpoints": TUNNEL1_ENDPOINT_IPS, |
| 158 | + "vni": ENCAP_VNI, |
| 159 | + "encap_type": EncapType.ENCAP_TYPE_VXLAN |
| 160 | + } |
| 161 | +} |
| 162 | + |
| 163 | +TUNNEL2_CONFIG = { |
| 164 | + f"DASH_TUNNEL_TABLE:{TUNNEL2}": { |
| 165 | + "endpoints": TUNNEL2_ENDPOINT_IPS, |
| 166 | + "encap_type": EncapType.ENCAP_TYPE_VXLAN, |
| 167 | + "vni": ENCAP_VNI, |
| 168 | + } |
| 169 | +} |
| 170 | + |
| 171 | +TUNNEL3_CONFIG = { |
| 172 | + f"DASH_TUNNEL_TABLE:{TUNNEL3}": { |
| 173 | + "endpoints": TUNNEL3_ENDPOINT_IPS, |
| 174 | + "vni": NSG_OUTBOUND_VNI, |
| 175 | + "encap_type": EncapType.ENCAP_TYPE_VXLAN, |
| 176 | + } |
| 177 | +} |
| 178 | + |
| 179 | +TUNNEL4_CONFIG = { |
| 180 | + f"DASH_TUNNEL_TABLE:{TUNNEL4}": { |
| 181 | + "endpoints": TUNNEL4_ENDPOINT_IPS, |
| 182 | + "vni": NSG_OUTBOUND_VNI, |
| 183 | + "encap_type": EncapType.ENCAP_TYPE_VXLAN, |
| 184 | + } |
| 185 | +} |
| 186 | + |
| 187 | +INBOUND_VNI_ROUTE_RULE_CONFIG = { |
| 188 | + f"DASH_ROUTE_RULE_TABLE:{ENI_ID}:{ENCAP_VNI}:{PE_PA}/32": { |
| 189 | + "action_type": ActionType.ACTION_TYPE_DECAP, |
| 190 | + "priority": 1 |
| 191 | + } |
| 192 | +} |
| 193 | + |
| 194 | +# For floating NIC, outbound packet will pass through inbound pipeline first before going to the outbound pipeline |
| 195 | +# Need this route rule entry to prevent the packet from being dropped in the inbound pipeline |
| 196 | +TRUSTED_VNI_ROUTE_RULE_CONFIG = { |
| 197 | + f"DASH_ROUTE_RULE_TABLE:{ENI_ID}:{ENI_TRUSTED_VNI}:{VM1_PA}/32": { |
| 198 | + "action_type": ActionType.ACTION_TYPE_DECAP, |
| 199 | + "priority": 1 |
| 200 | + } |
| 201 | +} |
| 202 | + |
| 203 | +VM_SUBNET_ROUTE_WITH_TUNNEL_MULTI_ENDPOINT = { |
| 204 | + f"DASH_ROUTE_TABLE:{ROUTE_GROUP1}:{VM_CA_SUBNET}": { |
| 205 | + "routing_type": RoutingType.ROUTING_TYPE_DIRECT, |
| 206 | + "tunnel": TUNNEL2 |
| 207 | + } |
| 208 | +} |
| 209 | + |
| 210 | +VM_SUBNET_ROUTE_WITH_TUNNEL_SINGLE_ENDPOINT = { |
| 211 | + f"DASH_ROUTE_TABLE:{ROUTE_GROUP1}:{VM_CA_SUBNET}": { |
| 212 | + "routing_type": RoutingType.ROUTING_TYPE_DIRECT, |
| 213 | + "tunnel": TUNNEL1 |
| 214 | + } |
| 215 | +} |
| 216 | + |
| 217 | +VM_VNI_ROUTE_RULE_CONFIG = { |
| 218 | + f"DASH_ROUTE_RULE_TABLE:{ENI_ID}:{VM_VNI}:{VM1_PA}/32": { |
| 219 | + "action_type": ActionType.ACTION_TYPE_DECAP, |
| 220 | + "priority": 1 |
91 | 221 | } |
92 | 222 | } |
93 | 223 |
|
|
0 commit comments