Project

General

Profile

Task #5041

Redefine EndpointId as a string

Added by Teng Liang 3 months ago. Updated about 2 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Faces
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

The EndpointId is designed to identify the sender of a packet received from a multicast face, which is necessary info for unicast face creation. The current EndpointId is defined as an integer of 64 bits. Potentially, the packet sender can be identified by Ethernet address (48-bit), UDP4 address (32+16=48 bits), and UDP6 address (128+16=142bits). Mapping UDP6 (142-bit) to EndpointId (64-bit) is challenging, so is the reverse mapping.

As discussed in 2019-11-25 NFD call, EndpointId is redefined as variant<ethernet::Address, ip::udp::endpoint>.

History

#1

Updated by Davide Pesavento about 2 months ago

  • Category set to Faces
  • Start date deleted (10/31/2019)

Teng Liang wrote:

Mapping UDP6 (142-bit) to EndpointId (64-bit) is challenging, so is the reverse mapping.

Why is it challenging?

However, if EndpointId is redefined as string, then we can define EndpointId with the following format:

I really dislike using strings unless absolutely necessary. Also keep in mind that this means converting the remote address to a string, converting the port number to a string, and combining the two strings, all of this for every packet received on a multicast face.

If we need to change EndpointId type, I suggest using a variant.

#2

Updated by Teng Liang about 2 months ago

Davide Pesavento wrote:

Teng Liang wrote:

Mapping UDP6 (142-bit) to EndpointId (64-bit) is challenging, so is the reverse mapping.

Why is it challenging?

I don't see a simple way to do reverse mapping.

However, if EndpointId is redefined as string, then we can define EndpointId with the following format:

I really dislike using strings unless absolutely necessary. Also keep in mind that this means converting the remote address to a string, converting the port number to a string, and combining the two strings, all of this for every packet received on a multicast face.

If we need to change EndpointId type, I suggest using a variant.

So how about variant<int64_t, int64_t*>, the former one is used for Ethernet and UDP4, and the latter one needs 3 64-bit for UDP6?

#3

Updated by Teng Liang about 2 months ago

  • Description updated (diff)

Also available in: Atom PDF