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

[TSN feature] GCL capacity in GateScheduleConfiguratorBase or PeriodicGate #771

Closed
yue2388253 opened this issue Jun 20, 2022 · 10 comments
Closed
Assignees
Labels
Milestone

Comments

@yue2388253
Copy link

Hi all,

The number of a gate control list is limited in a real TSN switch (e.g., 1024 gate control entries).
Current implementation does not take this limitation into consideration.
Is it possible to implement this feature?

Best regards,

Lam

@levy
Copy link
Contributor

levy commented Jun 20, 2022

The gate schedule configurator modules configure all existing gates in the network. Obviously, there's no way to configure a gate that doesn't exist, so all it could do perhaps is not to configure some of the gates which are there. I don't know if that makes sense, because then how could the configurator make sure that the jitter and latency limits are met.

This feature doesn't make too much sense to me. Can you describe the use case you are trying to solve?

@yue2388253
Copy link
Author

The gate state is controlled by a gate control list (GCL) according to IEEE 802.1Qbv standard[1], as shown below.
image

The length of a GCL is not inifinte, due to the limited hardware capacity. In fact, a typical TSN switch can only support 1024 gate control entries. Therefore, a GateConfigurator should take this GCL limitation into consideration, otherwise the calculated schedule would be impractical.

I think it would be great to set a upper bound for the GCL length and verify whether the output of a GateConfigurator is feasible.

Reference:
[1] "IEEE Standard for Local and metropolitan area networks -- Bridges and Bridged Networks - Amendment 25: Enhancements for Scheduled Traffic," in IEEE Std 802.1Qbv-2015 (Amendment to IEEE Std 802.1Q-2014 as amended by IEEE Std 802.1Qca-2015, IEEE Std 802.1Qcd-2015, and IEEE Std 802.1Q-2014/Cor 1-2015) , vol., no., pp.1-57, 18 March 2016, doi: 10.1109/IEEESTD.2016.8613095.

@levy
Copy link
Contributor

levy commented Jun 20, 2022 via email

@yue2388253
Copy link
Author

yue2388253 commented Jun 22, 2022

Currently the time aware shaper is implemented via PeriodicGate, which is configured individually, and is different from the IEEE 802.1Qbv standard where gates are configured by a GCL.
Is there any plan to re-implement it?
I am currently doing some research on the GCL synthesis problem, and maybe I can be of some help.

@levy
Copy link
Contributor

levy commented Jun 22, 2022 via email

@levy
Copy link
Contributor

levy commented Jun 22, 2022 via email

@yue2388253
Copy link
Author

yue2388253 commented Jun 23, 2022 via email

@yue2388253
Copy link
Author

yue2388253 commented Jun 24, 2022

Hi Levy,

In the TSN TAS showcase ("showcases/tsn/trafficshaping/timeawareshaper/omnetpp.ini"), the gates are configured as follows:

*.switch.eth[*].macLayer.queue.transmissionGate[0].offset = 0ms
*.switch.eth[*].macLayer.queue.transmissionGate[0].durations = [4ms, 6ms] # period is 10 # length of periods
*.switch.eth[*].macLayer.queue.transmissionGate[1].offset = 6ms
*.switch.eth[*].macLayer.queue.transmissionGate[1].durations = [2ms, 8ms]

I'd like to implement a GCL module so that one can configure the gate states as follows, which is totally the same as the configuration above.

*.switch.eth[*].macLayer.queue.gateControlList.offset = 0ms
*.switch.eth[*].macLayer.queue.gateControlList.entries = ["01", "00", "10", "00"] // Or may be ["11111101", "11111100", "11111110", "11111100"]
*.switch.eth[*].macLayer.queue.gateControlList.durations = [4ms, 2ms, 2ms, 2ms]

Could you give me some advices that how to implement such a module? Thanks.

Best regards,
Lin

@levy
Copy link
Contributor

levy commented Jun 24, 2022 via email

@levy
Copy link
Contributor

levy commented May 18, 2023

The GateControlList module that was submitted in a pull request has already been merged into INET and it is part of INET 4.5. So I guess I can close this issue.

@levy levy closed this as completed May 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants