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: 11063876
    Abstract: 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: Grant
    Filed: July 8, 2019
    Date of Patent: July 13, 2021
    Assignee: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
  • Patent number: 10715455
    Abstract: 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: Grant
    Filed: July 28, 2017
    Date of Patent: July 14, 2020
    Assignee: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Naader Hasani, Mohammed Ismael Tatar, David Delano Ward
  • Publication number: 20190334827
    Abstract: 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: Application
    Filed: July 8, 2019
    Publication date: October 31, 2019
    Applicant: Cisco Technology, Inc., a California corporation
    Inventors: John J. WILLIAMS, JR., Mohammed Ismael TATAR, David Delano WARD
  • Patent number: 10367751
    Abstract: 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: Grant
    Filed: February 22, 2017
    Date of Patent: July 30, 2019
    Assignee: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Dipankar Bhatt Acharya, Mohammed Ismael Tatar, David Delano Ward
  • Patent number: 10367749
    Abstract: 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: Grant
    Filed: July 5, 2017
    Date of Patent: July 30, 2019
    Assignee: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
  • Patent number: 10320686
    Abstract: 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: Grant
    Filed: December 7, 2016
    Date of Patent: June 11, 2019
    Assignee: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
  • Patent number: 10305787
    Abstract: 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: Grant
    Filed: April 15, 2015
    Date of Patent: May 28, 2019
    Assignee: Cisco Technology, Inc.
    Inventors: Guglielmo Marco Morandin, John J. Williams, Jr.
  • Patent number: 10205805
    Abstract: 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: Grant
    Filed: November 21, 2016
    Date of Patent: February 12, 2019
    Assignee: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
  • Publication number: 20190036832
    Abstract: 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: Application
    Filed: July 28, 2017
    Publication date: January 31, 2019
    Applicant: Cisco Technology, Inc.
    Inventors: John J. Williams, JR., Naader Hasani, Mohammed Ismael Tatar, David Delano Ward
  • Publication number: 20190014052
    Abstract: 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: Application
    Filed: July 5, 2017
    Publication date: January 10, 2019
    Applicant: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
  • Publication number: 20180241688
    Abstract: 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: Application
    Filed: February 22, 2017
    Publication date: August 23, 2018
    Applicant: Cisco Technology, Inc.
    Inventors: John J. Williams, JR., Dipankar Bhatt Acharya, Mohammed Ismael Tatar, David Delano Ward
  • Publication number: 20180159779
    Abstract: 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: Application
    Filed: December 7, 2016
    Publication date: June 7, 2018
    Applicant: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Mohammed Ismael Tatar, David Delano Ward
  • Publication number: 20180146074
    Abstract: 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: Application
    Filed: November 21, 2016
    Publication date: May 24, 2018
    Applicant: Cisco Technology, Inc.
    Inventors: John J. Williams, JR., Mohammed Ismael Tatar, David Delano Ward
  • Patent number: 9503396
    Abstract: 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: Grant
    Filed: March 18, 2015
    Date of Patent: November 22, 2016
    Assignee: Cisco Technology, Inc.
    Inventors: Doron Shoham, John J. Williams, Jr.
  • Publication number: 20160308754
    Abstract: 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: Application
    Filed: April 15, 2015
    Publication date: October 20, 2016
    Applicant: Cisco Technology, Inc., a corporation of California
    Inventors: Guglielmo Marco Morandin, John J. Williams, JR.
  • Publication number: 20160277323
    Abstract: 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: Application
    Filed: March 18, 2015
    Publication date: September 22, 2016
    Applicant: Cisco Technology, Inc., a corporation of California
    Inventors: Doron Shoham, John J. Williams, JR.
  • Patent number: 9444731
    Abstract: 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: Grant
    Filed: May 24, 2013
    Date of Patent: September 13, 2016
    Assignee: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., George Azevedo, David Lipschutz
  • Publication number: 20140351282
    Abstract: 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: Application
    Filed: May 24, 2013
    Publication date: November 27, 2014
    Applicant: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., George Azevedo, David Lipschutz
  • Patent number: 8139488
    Abstract: 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: Grant
    Filed: May 30, 2008
    Date of Patent: March 20, 2012
    Assignee: Cisco Technology, Inc.
    Inventors: John J. Williams, Jr., Eric John Chesters
  • Patent number: 8112584
    Abstract: 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: Grant
    Filed: June 28, 2004
    Date of Patent: February 7, 2012
    Assignee: Cisco Technology, Inc
    Inventors: John J. Williams, Jr., John Andrew Fingerhut, Man Kit Tang, Barry Scott Burns