src/dpdk/drivers/net/ixgbe/base/ixgbe_82599.c
void ixgbe_set_fdir_drop_queue_82599(struct ixgbe_hw *hw, u8 dropqueue)
{
	u32 fdirctrl;

	DEBUGFUNC("ixgbe_set_fdir_drop_queue_82599");
	/* Clear init done bit and drop queue field */
	fdirctrl = IXGBE_READ_REG(hw, IXGBE_FDIRCTRL);
	fdirctrl &= ~(IXGBE_FDIRCTRL_DROP_Q_MASK | IXGBE_FDIRCTRL_INIT_DONE);

	/* Set drop queue */
	fdirctrl |= (dropqueue << IXGBE_FDIRCTRL_DROP_Q_SHIFT);
	if ((hw->mac.type == ixgbe_mac_X550) ||
	    (hw->mac.type == ixgbe_mac_X550EM_x) ||
	    (hw->mac.type == ixgbe_mac_X550EM_a))
		fdirctrl |= IXGBE_FDIRCTRL_DROP_NO_MATCH;

	IXGBE_WRITE_REG(hw, IXGBE_FDIRCMD,
			(IXGBE_READ_REG(hw, IXGBE_FDIRCMD) |
			 IXGBE_FDIRCMD_CLEARHT));
	IXGBE_WRITE_FLUSH(hw);
	IXGBE_WRITE_REG(hw, IXGBE_FDIRCMD,
			(IXGBE_READ_REG(hw, IXGBE_FDIRCMD) &
			 ~IXGBE_FDIRCMD_CLEARHT));
	IXGBE_WRITE_FLUSH(hw);

	/* write hashes and fdirctrl register, poll for completion */
	ixgbe_fdir_enable_82599(hw, fdirctrl);
}
/**
 * ixgbe_set_fdir_drop_queue_82599 - Set Flow Director drop queue
 * @hw: pointer to hardware structure
 * @dropqueue: Rx queue index used for the dropped packets
 **/
Set Flow Director drop queue
@hw: pointer to hardware structure
@dropqueue: Rx queue index used for the dropped packets
Set Flow Director drop queue @hw : pointer to hardware structure @dropqueue : Rx queue index used for the dropped packets
void ixgbe_set_fdir_drop_queue_82599(struct ixgbe_hw *hw, u8 dropqueue)
{
	u32 fdirctrl;
	DEBUGFUNC("ixgbe_set_fdir_drop_queue_82599");
	fdirctrl = IXGBE_READ_REG(hw, IXGBE_FDIRCTRL);
	fdirctrl &= ~(IXGBE_FDIRCTRL_DROP_Q_MASK | IXGBE_FDIRCTRL_INIT_DONE);
	fdirctrl |= (dropqueue << IXGBE_FDIRCTRL_DROP_Q_SHIFT);
	if ((hw->mac.type == ixgbe_mac_X550) ||
	    (hw->mac.type == ixgbe_mac_X550EM_x) ||
	    (hw->mac.type == ixgbe_mac_X550EM_a))
		fdirctrl |= IXGBE_FDIRCTRL_DROP_NO_MATCH;
	IXGBE_WRITE_REG(hw, IXGBE_FDIRCMD,
			(IXGBE_READ_REG(hw, IXGBE_FDIRCMD) |
			 IXGBE_FDIRCMD_CLEARHT));
	IXGBE_WRITE_FLUSH(hw);
	IXGBE_WRITE_REG(hw, IXGBE_FDIRCMD,
			(IXGBE_READ_REG(hw, IXGBE_FDIRCMD) &
			 ~IXGBE_FDIRCMD_CLEARHT));
	IXGBE_WRITE_FLUSH(hw);
	ixgbe_fdir_enable_82599(hw, fdirctrl);
}
void ixgbe_set_fdir_drop_queue_82599 ( struct ixgbe_hw * hw , u8 dropqueue ) { u32 fdirctrl ; DEBUGFUNC ( " " ) ; fdirctrl = IXGBE_READ_REG ( hw , IXGBE_FDIRCTRL ) ; fdirctrl &= ~ ( IXGBE_FDIRCTRL_DROP_Q_MASK | IXGBE_FDIRCTRL_INIT_DONE ) ; fdirctrl |= ( dropqueue << IXGBE_FDIRCTRL_DROP_Q_SHIFT ) ; if ( ( hw -> mac . type == ixgbe_mac_X550 ) || ( hw -> mac . type == ixgbe_mac_X550EM_x ) || ( hw -> mac . type == ixgbe_mac_X550EM_a ) ) fdirctrl |= IXGBE_FDIRCTRL_DROP_NO_MATCH ; IXGBE_WRITE_REG ( hw , IXGBE_FDIRCMD , ( IXGBE_READ_REG ( hw , IXGBE_FDIRCMD ) | IXGBE_FDIRCMD_CLEARHT ) ) ; IXGBE_WRITE_FLUSH ( hw ) ; IXGBE_WRITE_REG ( hw , IXGBE_FDIRCMD , ( IXGBE_READ_REG ( hw , IXGBE_FDIRCMD ) & ~ IXGBE_FDIRCMD_CLEARHT ) ) ; IXGBE_WRITE_FLUSH ( hw ) ; ixgbe_fdir_enable_82599 ( hw , fdirctrl ) ; }
ixgbe_set_fdir_drop_queue_82599 - Set Flow Director drop queue
 @hw: pointer to hardware structure
 @dropqueue: Rx queue index used for the dropped packets
ixgbe_set_fdir_drop_queue_82599 - Set Flow Director drop queue @hw : pointer to hardware structure @dropqueue : Rx queue index used for the dropped packets
/* Clear init done bit and drop queue field */ /* Set drop queue */ /* write hashes and fdirctrl register, poll for completion */