Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[doc] Add HLD for Private Link Redirect Map #664

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

jimmyzhai
Copy link
Collaborator

No description provided.

@mssonicbld
Copy link

/azp run

Copy link

Commenter does not have sufficient privileges for PR 664 in repo sonic-net/DASH

@mssonicbld
Copy link

/azp run

Copy link

Commenter does not have sufficient privileges for PR 664 in repo sonic-net/DASH

@jimmyzhai jimmyzhai force-pushed the pl_redirect_map_hld branch from 7ef1f8e to deb4fc3 Compare January 28, 2025 04:58
@mssonicbld
Copy link

/azp run

Copy link

Commenter does not have sufficient privileges for PR 664 in repo sonic-net/DASH

@jimmyzhai jimmyzhai force-pushed the pl_redirect_map_hld branch from deb4fc3 to 4b2a85d Compare January 28, 2025 05:10
@mssonicbld
Copy link

/azp run

Copy link

Commenter does not have sufficient privileges for PR 664 in repo sonic-net/DASH

@jimmyzhai jimmyzhai force-pushed the pl_redirect_map_hld branch from 4b2a85d to ba72c71 Compare January 28, 2025 05:13
@mssonicbld
Copy link

/azp run

Copy link

Commenter does not have sufficient privileges for PR 664 in repo sonic-net/DASH

@jimmyzhai jimmyzhai force-pushed the pl_redirect_map_hld branch from ba72c71 to 0fb019e Compare January 28, 2025 05:17
@mssonicbld
Copy link

/azp run

Copy link

Commenter does not have sufficient privileges for PR 664 in repo sonic-net/DASH


#### 5.1.1 Private Link
1. **VNI Lookup**: First, we will look up the VNI to determine the packet direction. In this case, we consider all the packets from on-premises network as outbound direction from the floating NIC perspective.
```json
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it will be better to describe the things in the form of SAI API in DASH, and leaving the SONiC dash tables into the SONiC-DASH HLD as DB schema and etc.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

## 4. Resource modeling, requirement, and SLA
### 4.1 Scaling requirement
The scaling requirement for PL redirect map are listed as below. The metrics are based on a 200Gbps DPU:
| Metric | Requirement |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update to refer to SONiC DASH HLD.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

@mssonicbld
Copy link

/azp run

Copy link

Commenter does not have sufficient privileges for PR 664 in repo sonic-net/DASH

@mssonicbld
Copy link

/azp run

Copy link

Commenter does not have sufficient privileges for PR 664 in repo sonic-net/DASH

@KrisNey-MSFT
Copy link
Collaborator

hi @jimmyzhai and @r12f - is this one ready to go?


The only difference is that the IP address used in underlay routing and 4to6 action will be specified by a port-based service mapping – for a specified port range, different IP or destination port can be used for crafting the packet.

![PL Redirect VM-to-PLS direction](images/private-link-redirect-vm-to-pls.svg)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will be better to export svg using this setting:

image

When PL NSG is enabled, the extra encap for tunneling the packet to NSG will still be added on top the original PL encap. And the return packet will be exactly the same as the regular case without PL NSG.

### 3.3 Redirect map with fast path
The Fast Path here is not ER Fast Path, but the fast path that required by PLS. Fast path ICMP flow redirection will still take effect when redirect map is used.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Fast Path here is not ER Fast Path, but the fast path that required by PLS.

We have defined LB fast path in DASH, we can add link and refer to the doc.


| Attribute name | Type | Description |
| --- | --- | --- |
| SAI_OUTBOUND_PORT_MAP_ATTR_COUNTER_ID | sai_object_id_t | Attach a counter. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what does this counter actually do?

| --- | --- | --- |
| SAI_OUTBOUND_PORT_MAP_ATTR_COUNTER_ID | sai_object_id_t | Attach a counter. |

NOTE: More attributes could be added in the future for SNAT/DNAT scenarios.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not defined, so better removing it to avoid confusion.

The Fast Path here is not ER Fast Path, but the fast path that required by PLS. Fast path ICMP flow redirection will still take effect when redirect map is used.

- If PL NSG is not used, it changes the flow just like regular PL case.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install markdownlint extension and fix the format.

| --- | --- | --- |
| entry.port_map_id | `sai_object_id_t` | (SAI object ID of the port map) |

Later in the stage of outbound port map, the port map id and inner packet destination port consists of a match key to look up table outbound_port_map_port_range, the matched table entry contains a rewrite info for the redirect map.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will be better to split the section into 2:
6.1.1. Mapping - VNET
6.1.2. Mapping - Port Mapping

### 6.1 VM-to-PLS direction (Outbound)

**Mapping - VNET**:
Each mapping will be associated with a port map object:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here, it will be better to add a bit more context on what mapping it is.

| entry_attr.SAI_OUTBOUND_PORT_MAP_PORT_RANGE_ENTRY_ATTR_BACKEND_PORT_BASE | `sai_uint16_t` | `11000` |

### 6.2. PLS-to-VM direction
None of changes.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing the PL NSG case explanation here, although it works the same way.

SAI_OUTBOUND_PORT_MAP_PORT_RANGE_ENTRY_ACTION_SKIP_MAPPING,
SAI_OUTBOUND_PORT_MAP_PORT_RANGE_ENTRY_ACTION_MAP_TO_PRIVATE_LINK_SERVICE,
} sai_outbound_port_map_port_range_entry_action_t;
```
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the packet is not hit any mapping, it should be skipped the mapping by default.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not drop

| SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_OUTBOUND_PORT_MAP_ID | sai_object_id_t | Outbound port map id. |

## 6. DASH pipeline behavior
Following [DASH pipeline behavior of private link service](https://github.com/sonic-net/DASH/blob/main/documentation/private-link-service/private-link-service.md#6-dash-pipeline-behavior), it adds updates for redirect map.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to explain more clearly where the redirect map is added.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after CA-PA mapping stage.

| ER | [ExpressRoute]( https://learn.microsoft.com/en-gb/azure/expressroute/expressroute-introduction)|
| MSEE | Microsoft Enterprise Edge |
| CE | Customer Edge |
| MSEE/CE routers | Microsoft Enterprise Edge / Customer Edge routers. CE and MSEE routers are directly connected and forming pairs. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MSEE/CE are not required here for PL redirect map doc

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ER is the same.


| Attribute name | Type | Description |
| --- | --- | --- |
| SAI_OUTBOUND_PORT_MAP_ATTR_COUNTER_ID | sai_object_id_t | Attach a counter. |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

svc rewrite info is missing in the port map attributes, such as src prefix, dst prefix.

| entry_attr.SAI_OUTBOUND_PORT_MAP_PORT_RANGE_ENTRY_ATTR_BACKEND_IP | `sai_ip_address_t` | `3.3.3.1` |
| entry_attr.SAI_OUTBOUND_PORT_MAP_PORT_RANGE_ENTRY_ATTR_MATCH_PORT_BASE | `sai_uint16_t` | `2000` |
| entry_attr.SAI_OUTBOUND_PORT_MAP_PORT_RANGE_ENTRY_ATTR_BACKEND_PORT_BASE | `sai_uint16_t` | `11000` |

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

better add a clarification of metering. it follows the CA-PA mapping one, and currently doesn't have any special action in port map.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants