pipe bidirectional