Quality of service in virtual service networks
A switch in a slice-based network can be used to enforce quality of service (“QoS”). Agents can run in the switches, such as in the core of each switch. The switches can sort ingress packets into slice-specific ingress queues in a slice-based pool. The slices can have different QoS prioritizations. A switch-wide policing algorithm can move the slice-specific packets to egress interfaces. Then, one or more user-defined egress policing algorithms can prioritize which packets are sent out into the network first based on slice classifications.
1. A method for enforcing Quality of Service (“QoS”) in a Virtual Service Network (“VSN”), comprising:
receiving first and second packets at a physical switch having ingress ports and egress ports, the first and second packets corresponding to different slices in the VSN;
queuing the first and second packets into different ingress queues, the different ingress queues corresponding to different slices in the VSN, wherein the queuing is based on associating the first and second packets with the different slices;
enqueuing the first and second packets, from the ingress queues, to different egress queues, wherein enqueuing from the ingress queues is prioritized based on policies for the different slices;
forwarding the first and second packets from the egress queues; and
utilizing slice prioritization for both (1) enqueueing the first and second packets to the egress queues and (2) forwarding the first and second packets from the egress queues.
2. The method of claim 1 , wherein an agent executing on the physical switch queues the first and second packets into the different ingress queues.
3. The method of claim 1 , wherein a slice-weighted round robin (“SWRR”) is used to enqueue the first and second packets from the ingress queues to the egress queues.
4. The method of claim 3 , wherein the SWRR prioritizes a first ingress queue relative to a second ingress queue based on a first slice being allocated more bandwidth than a second slice.
5. The method of claim 1 , wherein a slice-weighted round robin (“SWRR”) is used for prioritizing forwarding from the egress queues.
6. The method of claim 1 , further comprising:
defining, in a virtual layer, bandwidth values for first and second slices; and
weighting the first slice based on its bandwidth value relative to the bandwidth values of the second slice.
7. A non-transitory, computer-readable medium comprising instructions that, when executed by a processor, perform stages for enforcing Quality of Service (“QoS”) in a Virtual Service Network (“VSN”), the stages comprising:
receiving first and second packets at a physical switch having ingress ports and egress ports, the first and second packets corresponding to different slices in the VSN;
queuing the first and second packets into different ingress queues, the different ingress queues corresponding to different slices in the VSN, wherein the queuing is based on associating the first and second packets with the different slices;
enqueuing the first and second packets, from the ingress queues, to different egress queues, wherein enqueuing from the ingress queues is prioritized based on policies for the different slices;
forwarding the first and second packets from the egress queues; and
utilizing slice prioritization for both (1) enqueueing the first and second packets to the egress queues and (2) forwarding the first and second packets from the egress queues.
8. The non-transitory, computer-readable medium of claim 7 , wherein an agent executing on the physical switch queues the first and second packets into the different ingress queues.
9. The non-transitory, computer-readable medium of claim 7 , wherein a slice-weighted round robin (“SWRR”) is used to enqueue the first and second packets from the ingress queues to the egress queues.
10. The non-transitory, computer-readable medium of claim 9 , wherein the SWRR prioritizes a first ingress queue relative to a second ingress queue based on a first slice being allocated more bandwidth than a second slice.
11. The non-transitory, computer-readable medium of claim 7 , wherein a slice-weighted round robin (“SWRR”) is used for prioritizing forwarding from the egress queues.
12. The non-transitory, computer-readable medium of claim 7 , the stages further comprising:
defining, in a virtual layer, bandwidth values for first and second slices; and
weighting the first slice based on its bandwidth value relative to the bandwidth values of the second slice.
13. A system for enforcing Quality of Service (“QoS”) in a Virtual Service Network (“VSN”), comprising:
a non-transitory, computer-readable medium containing instructions; and
a processor that executes the instructions to perform stages comprising:
receiving first and second packets at a physical switch having ingress ports and egress ports, the first and second packets corresponding to different slices in the VSN;
queuing the first and second packets, into different ingress queues, the different ingress queues corresponding to different slices in the VSN, wherein the queuing is based on associating the first and second packets with the different slices;
enqueuing the first and second packets from the ingress queues, to different egress queues, wherein enqueuing from the ingress queues is prioritized based on policies for the different slices;
forwarding the first and second packets from the egress queues; and
utilizing slice prioritization for both (1) enqueueing the first and second packets to the egress queues and (2) forwarding the first and second packets from the egress queues.
14. The system of claim 13 , wherein an agent executing on the physical switch queues the first and second packets into the different ingress queues.
15. The system of claim 13 , wherein a slice-weighted round robin (“SWRR”) is used to enqueue the first and second packets from the ingress queues to the egress queues.
16. The system of claim 13 , wherein a slice-weighted round robin (“SWRR”) is used for prioritizing forwarding from the egress queues.
17. The system of claim 13 , the stages further comprising:
defining, in a virtual layer, bandwidth values for first and second slices; and
weighting the first slice based on its bandwidth value relative to the bandwidth values of the second slice.