| dc.contributor.author | McKeown, Nick | |
| dc.contributor.author | Chole, Sharad | |
| dc.contributor.author | Chuang, Shang-Tse | |
| dc.contributor.author | Agrawal, Anurag | |
| dc.contributor.author | Edsall, Tom | |
| dc.contributor.author | Sivaraman Kaushalram, Anirudh | |
| dc.contributor.author | Subramanian, Suvinay | |
| dc.contributor.author | Alizadeh Attar, Mohammadreza | |
| dc.contributor.author | Balakrishnan, Hari | |
| dc.contributor.author | Katti, Sachin Rajsekhar | |
| dc.date.accessioned | 2017-07-18T16:17:54Z | |
| dc.date.available | 2017-07-18T16:17:54Z | |
| dc.date.issued | 2016-08 | |
| dc.identifier.isbn | 9781450341936 | |
| dc.identifier.uri | http://hdl.handle.net/1721.1/110763 | |
| dc.description.abstract | Switches today provide a small menu of scheduling algorithms. While we can tweak scheduling parameters, we cannot modify algorithmic logic, or add a completely new algorithm, after the switch has been designed. This paper presents a design for a {\em programmable} packet scheduler, which allows scheduling algorithms---potentially algorithms that are unknown today---to be programmed into a switch without requiring hardware redesign. Our design uses the property that scheduling algorithms make two decisions: in what order to schedule packets and when to schedule them. Further, we observe that in many scheduling algorithms, definitive decisions on these two questions can be made when packets are enqueued. We use these observations to build a programmable scheduler using a single abstraction: the push-in first-out queue (PIFO), a priority queue that maintains the scheduling order or time. We show that a PIFO-based scheduler lets us program a wide variety of scheduling algorithms. We present a hardware design for this scheduler for a 64-port 10 Gbit/s shared-memory (output-queued) switch. Our design costs an additional 4% in chip area. In return, it lets us program many sophisticated algorithms, such as a 5-level hierarchical scheduler with programmable decisions at each level. | en_US |
| dc.description.sponsorship | National Science Foundation (U.S.) (Grant CNS-1563826) | en_US |
| dc.description.sponsorship | Cisco Research Center | en_US |
| dc.language.iso | en_US | |
| dc.publisher | Association for Computing Machinery | en_US |
| dc.relation.isversionof | http://dx.doi.org/10.1145/2934872.2934899 | en_US |
| dc.rights | Creative Commons Attribution-Noncommercial-Share Alike | en_US |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/4.0/ | en_US |
| dc.source | MIT Web Domain | en_US |
| dc.title | Programmable Packet Scheduling at Line Rate | en_US |
| dc.type | Article | en_US |
| dc.identifier.citation | Sivaraman, Anirudh, Nick McKeown, Suvinay Subramanian, Mohammad Alizadeh, Sharad Chole, Shang-Tse Chuang, Anurag Agrawal, Hari Balakrishnan, Tom Edsall, and Sachin Katti. “Programmable Packet Scheduling at Line Rate.” Proceedings of the 2016 Conference on ACM SIGCOMM 2016 Conference - SIGCOMM ’16 (2016). | en_US |
| dc.contributor.department | Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science | en_US |
| dc.contributor.mitauthor | Sivaraman Kaushalram, Anirudh | |
| dc.contributor.mitauthor | Subramanian, Suvinay | |
| dc.contributor.mitauthor | Alizadeh Attar, Mohammadreza | |
| dc.contributor.mitauthor | Balakrishnan, Hari | |
| dc.contributor.mitauthor | Katti, Sachin Rajsekhar | |
| dc.relation.journal | Proceedings of the 2016 conference on ACM SIGCOMM 2016 Conference - SIGCOMM '16 | en_US |
| dc.eprint.version | Author's final manuscript | en_US |
| dc.type.uri | http://purl.org/eprint/type/JournalArticle | en_US |
| eprint.status | http://purl.org/eprint/status/NonPeerReviewed | en_US |
| dspace.orderedauthors | Sivaraman, Anirudh; McKeown, Nick; Subramanian, Suvinay; Alizadeh, Mohammad; Chole, Sharad; Chuang, Shang-Tse; Agrawal, Anurag; Balakrishnan, Hari; Edsall, Tom; Katti, Sachin | en_US |
| dspace.embargo.terms | N | en_US |
| dc.identifier.orcid | https://orcid.org/0000-0003-4034-0918 | |
| dc.identifier.orcid | https://orcid.org/0000-0001-7701-8303 | |
| dc.identifier.orcid | https://orcid.org/0000-0002-0014-6742 | |
| dc.identifier.orcid | https://orcid.org/0000-0002-1455-9652 | |
| mit.license | OPEN_ACCESS_POLICY | en_US |