Patents by Inventor Sarang Dharmapurikar
Sarang Dharmapurikar has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 10530712Abstract: Techniques for providing a reflexive access control list (ACL) on a virtual switch are provided. Embodiments receive a first packet corresponding to a first network flow and a second packet corresponding to a second network flow. Upon determining that a SYN flag is set within the first packet, a first entry is created in the reflexive ACL for the first network flow. Upon determining that the first packet was received over a client port of the first physical switch, the first packet is forwarded to a second physical switch within virtual switch. Upon determining that the second packet has a SYN flag enabled, a second entry is created in the reflexive ACL. Finally, upon determining that the second packet was received from the second physical switch, the second packet is forwarded over an uplink port to a destination defined by the second packet.Type: GrantFiled: December 9, 2016Date of Patent: January 7, 2020Assignee: Cisco Technology, Inc.Inventors: Sameer Dilip Merchant, Sarang Dharmapurikar, Praveen Jain
-
Patent number: 10432628Abstract: Disclosed are systems, methods, and computer-readable storage media for minimizing the number of entries in network access control lists (ACLs). In some embodiments of the present technology a networking device can receive, from a first computing device, a first data transmission intended for a second computing device, the first data transmission including first transmission data. The networking device can normalize at least a subset of the first transmission data based on a predetermined normalization algorithm, yielding a first normalized data set for the first data transmission. Subsequently, the networking device can identify a first access control list entry from a set of access control list entries based on the first normalized data set, the first access control list entry identifying a first action, and implement the first action in relation to the first data transmission.Type: GrantFiled: February 23, 2016Date of Patent: October 1, 2019Assignee: CISCO TECHNOLOGY, INC.Inventors: Thomas J. Edsall, Smita Rai, Satyam Sinha, Kit Chiu Chu, Sarang Dharmapurikar, Ashutosh Agrawal, Ravikanth Nasika
-
Patent number: 10382345Abstract: In one embodiment, a next set of packets in a first flow may be identified. A counter may be incremented, where the counter indicates a first number of initial sets of packets in first flow that have been identified. The identified next set of packets may be prioritized such that the first number of initial sets of packets in the first flow are prioritized and a sequential order of all packets in the first flow is maintained. The identifying, incrementing, and prioritizing may be repeated until no further sets of packets in the first flow remain to be identified or the first number of initial sets of packets is equal to a first predefined number.Type: GrantFiled: August 21, 2017Date of Patent: August 13, 2019Assignee: CISCO TECHNOLOGY, INC.Inventors: Mohammadreza Alizadeh Attar, Thomas James Edsall, Sarang Dharmapurikar
-
Patent number: 10305799Abstract: Presented herein are techniques for performing packet forwarding or routing using a pipeline of a plurality of tiles. A method includes receiving a packet, parsing the packet to generate a vector, passing the vector to a first tile dedicated to a first type of lookup, performing a lookup in the first tile, storing a result of the first type of lookup in the vector to obtain a first updated vector, passing the first updated vector to a second tile dedicated to a second type of lookup, performing a lookup in the second tile, storing a result of the second type of lookup in the vector to obtain a second updated vector, and transmitting the packet from the network routing device via an output port thereof selected based on the second updated vector.Type: GrantFiled: August 17, 2016Date of Patent: May 28, 2019Assignee: Cisco Technology, Inc.Inventors: Sarang Dharmapurikar, Kit Chiu, Ganlin Wu, Alexandru Seibulescu, Francisco Matus, Wanli Wu
-
Patent number: 10142168Abstract: Systems, methods, and computer-readable media for improving debugging and troubleshooting of datacenter networks, and more particularly improving the speed of forwarding/data path related problems without going into ASIC level debugging. A switch could, for example, have a processor which communicates with an ASIC. The processor can receive flow information and a notification from the ASIC, the notification indicating a predefined error condition has been identified in a packet. The processor can modify the ASIC programming based on the notification, such that the ASIC records additional, more-detailed, flow information for the switch. The processor can then receive, from the modified ASIC, the additional flow information. The additional flow information can then be used (either by the processor or by an operator) to identify the exact reason for the errors in the flow path.Type: GrantFiled: July 27, 2016Date of Patent: November 27, 2018Assignee: CISCO TECHNOLOGY, INC.Inventors: Ramanan Vaidyanathan, Ajay Modi, Azeem Suleman, Krishna Doddapaneni, Sarang Dharmapurikar, Ganlin Wu
-
Publication number: 20180167338Abstract: Techniques for providing a reflexive access control list (ACL) on a virtual switch are provided. Embodiments receive a first packet corresponding to a first network flow and a second packet corresponding to a second network flow. Upon determining that a SYN flag is set within the first packet, a first entry is created in the reflexive ACL for the first network flow. Upon determining that the first packet was received over a client port of the first physical switch, the first packet is forwarded to a second physical switch within virtual switch. Upon determining that the second packet has a SYN flag enabled, a second entry is created in the reflexive ACL. Finally, upon determining that the second packet was received from the second physical switch, the second packet is forwarded over an uplink port to a destination defined by the second packet.Type: ApplicationFiled: December 9, 2016Publication date: June 14, 2018Inventors: Sameer Dilip MERCHANT, Sarang DHARMAPURIKAR, Praveen JAIN
-
Publication number: 20180054385Abstract: Presented herein are techniques for performing packet forwarding or routing using a pipeline of a plurality of tiles. A method includes receiving a packet, parsing the packet to generate a vector, passing the vector to a first tile dedicated to a first type of lookup, performing a lookup in the first tile, storing a result of the first type of lookup in the vector to obtain a first updated vector, passing the first updated vector to a second tile dedicated to a second type of lookup, performing a lookup in the second tile, storing a result of the second type of lookup in the vector to obtain a second updated vector, and transmitting the packet from the network routing device via an output port thereof selected based on the second updated vector.Type: ApplicationFiled: August 17, 2016Publication date: February 22, 2018Inventors: Sarang Dharmapurikar, Kit Chiu, Ganlin Wu, Alexandru Seibulescu, Francisco Matus, Wanli Wu
-
Publication number: 20180034686Abstract: Systems, methods, and computer-readable media for improving debugging and troubleshooting of datacenter networks, and more particularly improving the speed of forwarding/data path related problems without going into ASIC level debugging. A switch could, for example, have a processor which communicates with an ASIC. The processor can receive flow information and a notification from the ASIC, the notification indicating a predefined error condition has been identified in a packet. The processor can modify the ASIC programming based on the notification, such that the ASIC records additional, more-detailed, flow information for the switch. The processor can then receive, from the modified ASIC, the additional flow information. The additional flow information can then be used (either by the processor or by an operator) to identify the exact reason for the errors in the flow path.Type: ApplicationFiled: July 27, 2016Publication date: February 1, 2018Inventors: Ramanan Vaidyanathan, Ajay Modi, Azeem Suleman, Krishna Doddapaneni, Sarang Dharmapurikar, Ganlin Wu
-
Publication number: 20170346748Abstract: In one embodiment, a next set of packets in a first flow may be identified. A counter may be incremented, where the counter indicates a first number of initial sets of packets in first flow that have been identified. The identified next set of packets may be prioritized such that the first number of initial sets of packets in the first flow are prioritized and a sequential order of all packets in the first flow is maintained. The identifying, incrementing, and prioritizing may be repeated until no further sets of packets in the first flow remain to be identified or the first number of initial sets of packets is equal to a first predefined number.Type: ApplicationFiled: August 21, 2017Publication date: November 30, 2017Inventors: Mohammadreza Alizadeh Attar, Thomas James Edsall, Sarang Dharmapurikar
-
Patent number: 9817574Abstract: According to one aspect, a method includes determining whether at least one memory storage unit in a first stage of a multi-stage array is available for use by a first counter associated with the first stage, and allocating the at least one memory storage unit for use by the first counter when the at least one memory storage unit is available. When the at least one memory storage unit is not available for use by the first counter, the method includes identifying a second counter stored in a first location in the first stage, the first location including a first memory storage unit and a second memory storage unit, and moving the second counter to a second stage of the multi-stage array, storing a pointer to the second stage in the first memory storage unit, and allocating the second memory storage unit to the first counter.Type: GrantFiled: January 22, 2016Date of Patent: November 14, 2017Assignee: Cisco Technology, Inc.Inventors: Sarang Dharmapurikar, Ganlin Wu, Alex Seibulescu, Wanli Wu
-
Patent number: 9769078Abstract: In one embodiment, a next set of packets in a first flow may be identified. A counter may be incremented, where the counter indicates a first number of initial sets of packets in first flow that have been identified. The identified next set of packets may be prioritized such that the first number of initial sets of packets in the first flow are prioritized and a sequential order of all packets in the first flow is maintained. The identifying, incrementing, and prioritizing may be repeated until no further sets of packets in the first flow remain to be identified or the first number of initial sets of packets is equal to a first predefined number.Type: GrantFiled: December 6, 2013Date of Patent: September 19, 2017Assignee: Cisco Technology, Inc.Inventors: Mohammadreza Alizadeh Attar, Thomas James Edsall, Sarang Dharmapurikar
-
Publication number: 20170244645Abstract: Disclosed are systems, methods, and computer-readable storage media for minimizing the number of entries in network access control lists (ACLs). In some embodiments of the present technology a networking device can receive, from a first computing device, a first data transmission intended for a second computing device, the first data transmission including first transmission data. The networking device can normalize at least a subset of the first transmission data based on a predetermined normalization algorithm, yielding a first normalized data set for the first data transmission. Subsequently, the networking device can identify a first access control list entry from a set of access control list entries based on the first normalized data set, the first access control list entry identifying a first action, and implement the first action in relation to the first data transmission.Type: ApplicationFiled: February 23, 2016Publication date: August 24, 2017Inventors: Thomas J. Edsall, Smita Rai, Satyam Sinha, Kit Chiu Chu, Sarang Dharmapurikar, Ashutosh Agrawal, Ravikanth Nasika
-
Publication number: 20170212684Abstract: According to one aspect, a method includes determining whether at least one memory storage unit in a first stage of a multi-stage array is available for use by a first counter associated with the first stage, and allocating the at least one memory storage unit for use by the first counter when the at least one memory storage unit is available. When the at least one memory storage unit is not available for use by the first counter, the method includes identifying a second counter stored in a first location in the first stage, the first location including a first memory storage unit and a second memory storage unit, and moving the second counter to a second stage of the multi-stage array, storing a pointer to the second stage in the first memory storage unit, and allocating the second memory storage unit to the first counter.Type: ApplicationFiled: January 22, 2016Publication date: July 27, 2017Inventors: Sarang Dharmapurikar, Ganlin Wu, Alex Seibulescu, Wanli Wu
-
Patent number: 9502111Abstract: In some implementations, network traffic can be routed along equal cost paths based on weights assigned to each path. For example, weighted equal cost multipath routing can be implemented by assigning weights to each equal cost path (e.g., uplink, next hop node) to a destination device. When the network device receives a packet, the network device can generate a key (e.g., a random value, a hash value based on packet data, a value between 0 and n, etc.). The key can be used to select an uplink or path upon which to forward the packet. A key can be generated for a packet flow or flowlet. Each flow can be associated with the same key so that each packet in a flow will be forwarded along the same path. Each flowlet can be forwarded along a different uplink.Type: GrantFiled: August 1, 2014Date of Patent: November 22, 2016Assignee: CISCO TECHNOLOGY, INC.Inventors: Sarang Dharmapurikar, Mohammadreza Alizadeh Attar, Navindra Yadav, Ramanan Vaidyanathan, Kit Chiu Chu
-
Publication number: 20150124652Abstract: In some implementations, network traffic can be routed along equal cost paths based on weights assigned to each path. For example, weighted equal cost multipath routing can be implemented by assigning weights to each equal cost path (e.g., uplink, next hop node) to a destination device. When the network device receives a packet, the network device can generate a key (e.g., a random value, a hash value based on packet data, a value between 0 and n, etc.). The key can be used to select an uplink or path upon which to forward the packet. A key can be generated for a packet flow or flowlet. Each flow can be associated with the same key so that each packet in a flow will be forwarded along the same path. Each flowlet can be forwarded along a different uplink.Type: ApplicationFiled: August 1, 2014Publication date: May 7, 2015Inventors: Sarang Dharmapurikar, Mohammadreza Alizadeh Attar, Navindra Yadav, Ramanan Vaidyanathan, Kit Chiu Chu
-
Publication number: 20150124611Abstract: In one embodiment, a next set of packets in a first flow may be identified. A counter may be incremented, where the counter indicates a first number of initial sets of packets in first flow that have been identified. The identified next set of packets may be prioritized such that the first number of initial sets of packets in the first flow are prioritized and a sequential order of all packets in the first flow is maintained. The identifying, incrementing, and prioritizing may be repeated until no further sets of packets in the first flow remain to be identified or the first number of initial sets of packets is equal to a first predefined number.Type: ApplicationFiled: December 6, 2013Publication date: May 7, 2015Inventors: Mohammadreza Alizadeh Attar, Thomas James Edsall, Sarang Dharmapurikar
-
Patent number: 8873558Abstract: In one embodiment, a method includes receiving a packet at an interface at a network device having a plurality of interfaces connected to a plurality of links forming a bundle, performing a Reverse Path Forwarding (RPF) check on the received packet, and forwarding the packet if it passes the RPF check. The RPF check includes a lookup in an RPF table having a plurality of entries for the bundle, each of the entries including the bundle and one of the links in the bundle, and verification that the interface receiving the packet is connected to one of the links in the bundle identified in the lookup. An apparatus is also disclosed.Type: GrantFiled: August 3, 2011Date of Patent: October 28, 2014Assignee: Cisco Technology, Inc.Inventors: Sarang Dharmapurikar, Mahesh Maddury, Francisco Matus
-
Publication number: 20130064246Abstract: Techniques are provided for forwarding packets via an intermediate network device. A packet comprising a destination MAC address is received at a first port of a network device having a plurality of bi-directional ports. A second port of the network device to which the packet should be forwarded is identified through the use of at least an approximate ingress table at the first port comprising a plurality of compressed destination MAC addresses each having an associated egress port, and the packet is forwarded to the second port. At the second port, a subsequent network device to which the packet should be forwarded is identified through the use of an exact egress table at the second port including exact destination MAC addresses each associated with a network device connected to the second port, and the packet is forwarded to the subsequent network device.Type: ApplicationFiled: September 12, 2011Publication date: March 14, 2013Applicant: CISCO TECHNOLOGY, INC.Inventors: Sarang Dharmapurikar, Kit Chiu Chu, Mahesh Maddury, Dinesh G. Dutt, Francisco Matus
-
Publication number: 20130034097Abstract: In one embodiment, a method includes receiving a packet at an interface at a network device having a plurality of interfaces connected to a plurality of links forming a bundle, performing a Reverse Path Forwarding (RPF) check on the received packet, and forwarding the packet if it passes the RPF check. The RPF check includes a lookup in an RPF table having a plurality of entries for the bundle, each of the entries including the bundle and one of the links in the bundle, and verification that the interface receiving the packet is connected to one of the links in the bundle identified in the lookup. An apparatus is also disclosed.Type: ApplicationFiled: August 3, 2011Publication date: February 7, 2013Applicant: CISCO TECHNOLOGY, INC.Inventors: Sarang Dharmapurikar, Mahesh Maddury, Francisco Matus
-
Publication number: 20100098081Abstract: Methods and systems for performing parallel membership queries to Bloom filters for Longest Prefix Matching, where address prefix memberships are determined in sets of prefixes sorted by prefix length. Hash tables corresponding to each prefix length are probed from the longest to the shortest match in the vector, terminating when a match is found or all of the lengths are searched. The performance, as determined by the number of dependent memory accesses per lookup, is held constant for longer address lengths or additional unique address prefix lengths in the forwarding table given that memory resources scale linearly with the number of prefixes in the forwarding table. For less than 2 Mb of embedded RAM and a commodity SRAM, the present technique achieves average performance of one hash probe per lookup and a worst case of two hash probes and one array access per lookup.Type: ApplicationFiled: September 24, 2009Publication date: April 22, 2010Inventors: Sarang Dharmapurikar, Praveen Krishnamurthy, David Edward Taylor