def _processRelaySendMeCell(self, cell, origin):
        '''Called when this circuit receives a RelaySendMeCell.

        If this is a circuit-level sendme cell (i.e. its stream id is zero)
        then increment this circuit's packaging window. If this circuit
        is currently in state CState.BUFFERING **and** receiving this
        sendme cell has incremented its packaging window > 0, then begin
        listening for incoming data again (i.e. self._pollWriteQueue).

        If this is a stream-level sendme cell, increment the corresponding
        stream's packaging window. Drop the cell if we have no reference
        to the stream associated with its stream id.

        Drop this cell if it's received while we're still building the
        circuit.

        :param oppy.cell.relay.RelaySendMeCell cell: relay sendme cell
            recieved from the network
        :param int origin: which node on the circuit's path this cell
            came from
        '''
        sid = cell.rheader.stream_id

        if sid == 0:
            self._incPackageWindow()
        else:
            try:
                self._streams[sid].incPackageWindow()
            except __HOLE__:
                msg = ("Circuit {} received a RelaySendMe cell on nonexistent"
                       " stream {}. Dropping cell."
                       .format(self.circuit_id, sid))
                logging.debug(msg)
dataset/ETHPy150Open nskinkel/oppy/oppy/circuit/circuit.py/Circuit._processRelaySendMeCell