Juniper has a good description of a Virtual Output Port queued switch. There are also some references here. Wikipedia also has an entry for VoQ switching. Output port buffered switches are rare in new designs. Cisco Cisco Catalyst 6500 and HP 4000Ms have substantial output port buffers.

The main theme for the buffer page is How much buffer is there for a single flow? Packet buffers for a single queue is essentially the same thing. This question is easier in a shared memory architecture. In VoQ, we would need to know the switch policies for dynamic buffer assignment. If the switch has 100 output ports and 8 queues per port, it could be that buffers are permanently allocated to the 100 x 8 = 800 port-queues. If 12 ports are sharing a single input ASIC and its 4 GByte packet buffer and there are 800 port-queues per input port, there is on average about a 0.5 Mbyte per queue. Pretty whimpy.

It would be very unlikely that buffer from one ASIC could be loaned to another ASIC, so sharing on the input side probably can't happen. On the other hand, if an output port is oversubscribed by traffic coming in from more than one input, VoQ memory on the several input ports could contribute to virtual output port buffer capacity.

Whether dynamic or fixed allocations on each input buffer are used will be implementation dependent. Arista seems to favor dynamic allocation with a cap of 50 mS for any one queue. Whether or not that is exactly what Arista has done, at least they have said something. Juniper sets the maximum for the QFX10000 at 100 mS per port. Pretty generous. Sadly, this sort of information rarely populates data sheets. [added June 2020] The question dynamic vs static is answered for Broadcom in an Arista architecture white paper. Buffer allocation is dynamic. Quoting:

. . . the majority of the buffer is allocated in a dynamic manner wherever it is required across potentially millions of VoQs per system:
  • ~30% buffer reserved for traffic per Traffic Class per Output Port
  • ~15% buffer for multi-destination traffic
  • ~55% available as a dynamic buffer pool

    Output Port CharacteristicMax Packet Buffer DepthMax Packet Buffer Depth (msec)
    10 Gb/s output port50 MByte40 msec
    25 Gb/s output port125 MByte40 msec
    40 Gb/s output port200 MByte40 msec
    50 Gb/s output port250 MByte40 msec
    100 Gb/s output port500 MByte40 msec
    400 Gb/s output port500 MByte10 msec