-
Notifications
You must be signed in to change notification settings - Fork 486
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
[802.1CB TSN FRER] *FeatureReq*: Expand stream identification parameters for StreamDecoder #873
Comments
I think it makes sense to have something along these lines. I'm not sure about the implementation though. Perhaps it would be better to allow arbitrary packet filter expressions as in ContentBasedFilter for example. Then it would be possible to match for any protocol field or meta data of a packet as shown in PacketFilter_1.test I'm not sure if this is really needs to be a StreamDecoder function though. Perhaps it's the function of the StreamIdentifier module, which is responsible for identifying the packets of the outgoing stream, and this module already supports arbitrary packet filter expressions. That is you can match for IP addresses, port numbers, etc. Even if we were doing the same with the StreamDecoder module, I don't see how that will work in the StreamEncoder part. If some module replace the stream identifier on the packet, how will this be reflected in IP addresses and port numbers? So my question is this: are you sure that this functionality belongs to the StreamDecoder and not the StreamIdentifier module? |
Hello levy! First of all thanks for the superfast reply! I really appreciate your commitment! 😊 Why do I need this?I do research on the PSFP topic. Expected behaviourWhen using the StreamDecoder, the StreamInd Tag should be attached to the packet after passing the module. Actual behaviourWhen using the StreamDecoder, the StreamReq Tag is attached to the packets, before passing the module. When using the StreamIdentifier, I can not see any Tag - neither StreamInd nor StreamReq - on the packet after passing the Module. Nevertheless, the StreamFilter is just working fine and pushes the packets to the right branch. So good news is that I can do my research with the StreamIdentifier Module instead of the StreamDecoder. Remaining questionsNevertheless I am wondering:
For reproductionomnet Version: 6.0.1 Thank you in advance 😊 |
I think there's a slight misunderstanding about what is the function of the StreamIdentifier and StreamDecoder modules. The StreamIdentifier module determines the stream of outgoing packets inside a TSN host. For example, an application generates UDP packets and the StreamIdentifier is configured to look at the IP destination address and the UDP destination port to determine which stream does the packet belong to. The StreamIdentifier attaches a StreamReq with the determined stream name to the packet in the bridging layer. Later on the StreamEncoder determines the 802.1 VLAN ID and PCP value for the given stream and the packet is transmitted to the wire. In contrast, the StreamDecoder module determines the stream for incoming packets inside a TSN switch. For example, an incoming packet contains a specific 802.1 VLAN ID and PCP value, and the StreamDecoder attaches the stream identifier to the packet in the form of a StreamInd. When the packet is turned from incoming into outgoing packet in the TSN bridging layer, the StreamInd is turned into a StreamReq. Similarly to the above the StreamEncoder determines the 802.1 VLAN ID and PCP value for the outgoing packet. For outgoing packets StreamReq specifies the requested stream identifier, for incoming packets StreamInd specifies the indicated stream identifier. The ingress stream filter for incoming packets is supposed to work based on the StreamInd, while the egress stream filter for outgoing packets is supposed to work based on the StreamReq. |
Forgot to answer your questions:
|
Thanks for clearification! Then I simply should not use the StreamIdentifier instead of the StreamDecoder as the packets will be mistagged. But as I already stated out above the following problem arises: IMO, the arbitrary filter expression should be implemented into the StreamDecoder. |
Hello dears 🙂
Problem
The StreamDecoder Module currently can decode an incoming stream by means of:
According to 802.1CB, further stream indicators are defined (see also screenshot of IEEE802.1CB-2017, Table 6-1):
Feature Request
Implementation of additional stream identifiers (SrcIP, DestIP, dscpValue, IpNext, SrcPort, DestPort).
I am not sure whether this should be implemented in the StreamDecoder module as it is acting only at layer two at the moment.
Usecase
Imagine sending two different streams from one host to another with just different source/destination ports. The streams can only differentiated by the src/dest port.
What do you think about this?
Kind regards 🙂
The text was updated successfully, but these errors were encountered: