Patents by Inventor John J. Williams, Jr.
John J. Williams, Jr. 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: 11063876Abstract: In one embodiment, a network node automatically cycles among packet traffic flows and subjects the currently selected packet flows to varying drop probabilities in a packet network, such as, but not limited to in response to congestion in a device or network. Packets of a currently selected packet traffic flow are subjected to a drop or forward decision with a higher drop probability than packets of a currently non-selected flow. By cycling through all of these packet traffic flows, all of these packet flows are subjected to the drop or forward decision in the long term approximately uniformly, thus providing fairness to all packet traffic flows. In the short term, packets of a currently selected flow are targeted for possible dropping with a higher drop probability providing unfairness to the currently selected flows over the non-selected flows.Type: GrantFiled: July 8, 2019Date of Patent: July 13, 2021Assignee: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
-
Patent number: 10715455Abstract: In one embodiment, for each distribution period of time, each packet flow is assigned to a path through a packet switching device (e.g., switch fabric) with all packets of the packet flow being sent in order over the assigned path. For a next distribution period, different paths are assigned for these packet flows, with all packets being sent in order over the new corresponding selected path. In one embodiment, these paths are switched often enough to prevent congestion, yet infrequent enough so as to minimize resources for reordering. In one embodiment, the reordering is done at the egress and only for predefined high bandwidth flows (e.g., elephant flows). A distribution period indication is typically associated with each packet to identify its corresponding distribution period. In one embodiment, each routing and egress switching stage in a switching fabric performs reordering.Type: GrantFiled: July 28, 2017Date of Patent: July 14, 2020Assignee: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Naader Hasani, Mohammed Ismael Tatar, David Delano Ward
-
Publication number: 20190334827Abstract: In one embodiment, a network node automatically cycles among packet traffic flows and subjects the currently selected packet flows to varying drop probabilities in a packet network, such as, but not limited to in response to congestion in a device or network. Packets of a currently selected packet traffic flow are subjected to a drop or forward decision with a higher drop probability than packets of a currently non-selected flow. By cycling through all of these packet traffic flows, all of these packet flows are subjected to the drop or forward decision in the long term approximately uniformly, thus providing fairness to all packet traffic flows. In the short term, packets of a currently selected flow are targeted for possible dropping with a higher drop probability providing unfairness to the currently selected flows over the non-selected flows.Type: ApplicationFiled: July 8, 2019Publication date: October 31, 2019Applicant: Cisco Technology, Inc., a California corporationInventors: John J. WILLIAMS, JR., Mohammed Ismael TATAR, David Delano WARD
-
Patent number: 10367751Abstract: One embodiment includes multiple distribution nodes sending packets of different ordered sets of packets among multiple packet switching devices arranged in a single stage topology to reach a reordering node. The reordering node receives these packets sent over the different paths and stores them in reordering storage, such as, but not limited to, in queues for each distribution node and packet switching device combination. The reordering node sends packets stored in the reordering storage from the reordering node in original orderings. In response to determining that an aggregation quantum of packets received from the multiple distribution nodes via a particular packet switching device and stored in the reordering storage is outside a range or value, packets being communicated via the particular packet switching device to the reordering node are rate limited.Type: GrantFiled: February 22, 2017Date of Patent: July 30, 2019Assignee: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Dipankar Bhatt Acharya, Mohammed Ismael Tatar, David Delano Ward
-
Patent number: 10367749Abstract: In one embodiment, a network node automatically cycles among packet traffic flows and subjects the currently selected packet flows to varying drop probabilities in a packet network, such as, but not limited to in response to congestion in a device or network. Packets of the currently selected packet traffic flows are subjected to a drop or forward decision, while packets of other packet traffic flows are not. By cycling through all of these packet traffic flows, all of these packet flows are subjected to the drop or forward decision in the long term approximately uniformly providing fairness to all packet traffic flows. In the short term, only packets of a currently selected flow are targeted for possible dropping providing unfairness to the currently selected flows, while possibly providing communication efficiencies by affecting the currently selected, but not all flows.Type: GrantFiled: July 5, 2017Date of Patent: July 30, 2019Assignee: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
-
Patent number: 10320686Abstract: One embodiment includes a packet switching device load balancing eligible packets in response to a policing drop decision. The packet switching device sends packets of a particular packet flow out of the packet switching device over a first path in the network towards a destination node; and in response to a policer discipline determining to drop a particular packet of the particular packet flow, switching from said sending packets over the first path to sending packets of the particular packet flow out of the packet switching device over a second path in the network towards the destination node (possibly by switching output queues associated with the two different paths), with the second path being different than the first path, and with the particular packet not being dropped but being sent out of the packet switching device towards the destination node.Type: GrantFiled: December 7, 2016Date of Patent: June 11, 2019Assignee: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
-
Patent number: 10305787Abstract: In one embodiment, cells of a same packet are sent among multiple paths within a packet switching device. Each of these cells is associated with a same drop value for use in determining whether to drop or forward the cell at multiple positions within a packet switching fabric of a packet switching device in light of a current congestion measurement. In one embodiment, the drop value is calculated at each of these multiple positions based on fields of the cell that are packet variant, but not cell variant, so a same drop value is calculated by each cell of a packet. In one embodiment, at least one of these fields provides entropy (e.g., a timestamp of the packet) such that a produced drop value has, or approximately has, an equal probability of being any value within a predetermined range for fairness purposes.Type: GrantFiled: April 15, 2015Date of Patent: May 28, 2019Assignee: Cisco Technology, Inc.Inventors: Guglielmo Marco Morandin, John J. Williams, Jr.
-
Patent number: 10205805Abstract: One embodiment is associated with dropping or admitting packets to an output queue using occupancy values of virtual destination queues which are updated according to different independent disciplines upon the enqueuing of a packet to an output queue, and the dequeuing of that packet from an output queue. In one embodiment, a virtual destination queue is determined for a packet. A policing decision is made whether to drop the packet or admit the packet to the output queue based on the occupancy level of the determined virtual destination queue, which is updated upon admission. Packets are dequeued in first-in-first-out order from the output queue. For a dequeued one or more packets, one or more of the occupancy values of the virtual destination queues are updated based a scheduling policy that is independent of the particular virtual destination queue(s) associated with the dequeued packets.Type: GrantFiled: November 21, 2016Date of Patent: February 12, 2019Assignee: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
-
Publication number: 20190036832Abstract: In one embodiment, for each distribution period of time, each packet flow is assigned to a path through a packet switching device (e.g., switch fabric) with all packets of the packet flow being sent in order over the assigned path. For a next distribution period, different paths are assigned for these packet flows, with all packets being sent in order over the new corresponding selected path. In one embodiment, these paths are switched often enough to prevent congestion, yet infrequent enough so as to minimize resources for reordering. In one embodiment, the reordering is done at the egress and only for predefined high bandwidth flows (e.g., elephant flows). A distribution period indication is typically associated with each packet to identify its corresponding distribution period. In one embodiment, each routing and egress switching stage in a switching fabric performs reordering.Type: ApplicationFiled: July 28, 2017Publication date: January 31, 2019Applicant: Cisco Technology, Inc.Inventors: John J. Williams, JR., Naader Hasani, Mohammed Ismael Tatar, David Delano Ward
-
Publication number: 20190014052Abstract: In one embodiment, a network node automatically cycles among packet traffic flows and subjects the currently selected packet flows to varying drop probabilities in a packet network, such as, but not limited to in response to congestion in a device or network. Packets of the currently selected packet traffic flows are subjected to a drop or forward decision, while packets of other packet traffic flows are not. By cycling through all of these packet traffic flows, all of these packet flows are subjected to the drop or forward decision in the long term approximately uniformly providing fairness to all packet traffic flows. In the short term, only packets of a currently selected flow are targeted for possible dropping providing unfairness to the currently selected flows, while possibly providing communication efficiencies by affecting the currently selected, but not all flows.Type: ApplicationFiled: July 5, 2017Publication date: January 10, 2019Applicant: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
-
Publication number: 20180241688Abstract: One embodiment includes multiple distribution nodes sending packets of different ordered sets of packets among multiple packet switching devices arranged in a single stage topology to reach a reordering node. The reordering node receives these packets sent over the different paths and stores them in reordering storage, such as, but not limited to, in queues for each distribution node and packet switching device combination. The reordering node sends packets stored in the reordering storage from the reordering node in original orderings. In response to determining that an aggregation quantum of packets received from the multiple distribution nodes via a particular packet switching device and stored in the reordering storage is outside a range or value, packets being communicated via the particular packet switching device to the reordering node are rate limited.Type: ApplicationFiled: February 22, 2017Publication date: August 23, 2018Applicant: Cisco Technology, Inc.Inventors: John J. Williams, JR., Dipankar Bhatt Acharya, Mohammed Ismael Tatar, David Delano Ward
-
Publication number: 20180159779Abstract: One embodiment includes a packet switching device load balancing eligible packets in response to a policing drop decision. The packet switching device sends packets of a particular packet flow out of the packet switching device over a first path in the network towards a destination node; and in response to a policer discipline determining to drop a particular packet of the particular packet flow, switching from said sending packets over the first path to sending packets of the particular packet flow out of the packet switching device over a second path in the network towards the destination node (possibly by switching output queues associated with the two different paths), with the second path being different than the first path, and with the particular packet not being dropped but being sent out of the packet switching device towards the destination node.Type: ApplicationFiled: December 7, 2016Publication date: June 7, 2018Applicant: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
-
Publication number: 20180146074Abstract: One embodiment is associated with dropping or admitting packets to an output queue using occupancy values of virtual destination queues which are updated according to different independent disciplines upon the enqueuing of a packet to an output queue, and the dequeuing of that packet from an output queue. In one embodiment, a virtual destination queue is determined for a packet. A policing decision is made whether to drop the packet or admit the packet to the output queue based on the occupancy level of the determined virtual destination queue, which is updated upon admission. Packets are dequeued in first-in-first-out order from the output queue. For a dequeued one or more packets, one or more of the occupancy values of the virtual destination queues are updated based a scheduling policy that is independent of the particular virtual destination queue(s) associated with the dequeued packets.Type: ApplicationFiled: November 21, 2016Publication date: May 24, 2018Applicant: Cisco Technology, Inc.Inventors: John J. Williams, JR., Mohammed Ismael Tatar, David Delano Ward
-
Patent number: 9503396Abstract: In one embodiment, packets are sent a packet switching mechanism of a packet switching device, which includes partitioning each particular packet into a plurality of cells with each particular packet and cell derived therefrom associated with a same particular timestamp and a same particular ingress point identifier representing an ingress point of a plurality of ingress points of the packet switching mechanism. These cells are sent through the packet switching mechanism by selecting and forwarding, at each of a plurality of points within the packet switching mechanism. A tie-breaking value is determined based on a manipulation of ingress point identifier associated with said identifiable cell in a manner to vary the tie-breaking selection ordering of ingress point identifiers for different timestamp values. The tie-breaking value is used in selecting a next cell to forward when cells are associated with a same timestamp.Type: GrantFiled: March 18, 2015Date of Patent: November 22, 2016Assignee: Cisco Technology, Inc.Inventors: Doron Shoham, John J. Williams, Jr.
-
Publication number: 20160308754Abstract: In one embodiment, cells of a same packet are sent among multiple paths within a packet switching device. Each of these cells is associated with a same drop value for use in determining whether to drop or forward the cell at multiple positions within a packet switching fabric of a packet switching device in light of a current congestion measurement. In one embodiment, the drop value is calculated at each of these multiple positions based on fields of the cell that are packet variant, but not cell variant, so a same drop value is calculated by each cell of a packet. In one embodiment, at least one of these fields provides entropy (e.g., a timestamp of the packet) such that a produced drop value has, or approximately has, an equal probability of being any value within a predetermined range for fairness purposes.Type: ApplicationFiled: April 15, 2015Publication date: October 20, 2016Applicant: Cisco Technology, Inc., a corporation of CaliforniaInventors: Guglielmo Marco Morandin, John J. Williams, JR.
-
Publication number: 20160277323Abstract: In one embodiment, packets are sent a packet switching mechanism of a packet switching device, which includes partitioning each particular packet into a plurality of cells with each particular packet and cell derived therefrom associated with a same particular timestamp and a same particular ingress point identifier representing an ingress point of a plurality of ingress points of the packet switching mechanism. These cells are sent through the packet switching mechanism by selecting and forwarding, at each of a plurality of points within the packet switching mechanism. A tie-breaking value is determined based on a manipulation of ingress point identifier associated with said identifiable cell in a manner to vary the tie-breaking selection ordering of ingress point identifiers for different timestamp values. The tie-breaking value is used in selecting a next cell to forward when cells are associated with a same timestamp.Type: ApplicationFiled: March 18, 2015Publication date: September 22, 2016Applicant: Cisco Technology, Inc., a corporation of CaliforniaInventors: Doron Shoham, John J. Williams, JR.
-
Patent number: 9444731Abstract: Optimizing a bitmap data tree and a corresponding lookup operation in the bit map data tree may be provided. A number of branches for each search node of a data tree may be counted. The data tree may comprise a plurality of search nodes. Then an optimum depth for the plurality of search nodes may be identified based on the number of branches in the data tree. Next, a hash node may be added to replace a search node of the data tree when a number of branches for the search node is greater than the identified optimum depth.Type: GrantFiled: May 24, 2013Date of Patent: September 13, 2016Assignee: Cisco Technology, Inc.Inventors: John J. Williams, Jr., George Azevedo, David Lipschutz
-
Publication number: 20140351282Abstract: Optimizing a bitmap data tree and a corresponding lookup operation in the bit map data tree may be provided. A number of branches for each search node of a data tree may be counted. The data tree may comprise a plurality of search nodes. Then an optimum depth for the plurality of search nodes may be identified based on the number of branches in the data tree. Next, a hash node may be added to replace a search node of the data tree when a number of branches for the search node is greater than the identified optimum depth.Type: ApplicationFiled: May 24, 2013Publication date: November 27, 2014Applicant: Cisco Technology, Inc.Inventors: John J. Williams, Jr., George Azevedo, David Lipschutz
-
Patent number: 8139488Abstract: Disclosed are, inter alia, methods, apparatus, computer-storage media, mechanisms, and means associated with cooperative flow locks distributed among multiple components, such as on different application-specific integrated circuits in a packet switching device. Flow locks are typically used for maintaining the order of packets and operations performed thereon by the coordination of a context (e.g., the processing of a packet by a packet processor) with a corresponding flow lock interface, and by the manner of communication performed among the flow lock interface and the distributed flow locks.Type: GrantFiled: May 30, 2008Date of Patent: March 20, 2012Assignee: Cisco Technology, Inc.Inventors: John J. Williams, Jr., Eric John Chesters
-
Patent number: 8112584Abstract: Disclosed are, inter alia, methods, apparatus, data structures, computer-readable media, mechanisms, and means for a storage controller (e.g., memory controller, disk controller, etc.) performing a set of multiple operations on cached data with a no-miss guarantee until the multiple operations are complete, which may, for example, be used by a packet processor to quickly update multiple statistics values (e.g., byte, packet, error counts, etc.) based on processed packets. Operations to be performed on data at the same address and/or in a common data structure are grouped together and burst so that they arrive at the storage system in contiguous succession for the storage controller to perform. By not allowing the storage controller to flush the data from its cache until all of the operations are performed, even a tiny cache attached to the storage controller can reduce the bandwidth and latency of updating the data.Type: GrantFiled: June 28, 2004Date of Patent: February 7, 2012Assignee: Cisco Technology, IncInventors: John J. Williams, Jr., John Andrew Fingerhut, Man Kit Tang, Barry Scott Burns