2015-01-14 15:17:34 -08:00
/*
* This file is part of the Chelsio T4 Ethernet driver for Linux .
* Copyright ( C ) 2003 - 2014 Chelsio Communications . All rights reserved .
*
* Written by Deepak ( deepak . s @ chelsio . com )
*
* This program is distributed in the hope that it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the LICENSE file included in this
* release for licensing terms and conditions .
*/
2017-10-20 10:23:35 +03:00
# include <linux/refcount.h>
2015-01-14 15:17:34 -08:00
struct clip_entry {
spinlock_t lock ; /* Hold while modifying clip reference */
2017-10-20 10:23:35 +03:00
refcount_t refcnt ;
2015-01-14 15:17:34 -08:00
struct list_head list ;
2015-02-18 15:29:45 -08:00
union {
struct sockaddr_in addr ;
struct sockaddr_in6 addr6 ;
} ;
2015-01-14 15:17:34 -08:00
} ;
struct clip_tbl {
unsigned int clipt_start ;
unsigned int clipt_size ;
rwlock_t lock ;
atomic_t nfree ;
struct list_head ce_free_head ;
void * cl_list ;
2020-02-24 10:30:24 -06:00
struct list_head hash_list [ ] ;
2015-01-14 15:17:34 -08:00
} ;
enum {
CLIPT_MIN_HASH_BUCKETS = 2 ,
} ;
struct clip_tbl * t4_init_clip_tbl ( unsigned int clipt_start ,
unsigned int clipt_end ) ;
int cxgb4_clip_get ( const struct net_device * dev , const u32 * lip , u8 v6 ) ;
void cxgb4_clip_release ( const struct net_device * dev , const u32 * lip , u8 v6 ) ;
int clip_tbl_show ( struct seq_file * seq , void * v ) ;
int cxgb4_update_root_dev_clip ( struct net_device * dev ) ;
void t4_cleanup_clip_tbl ( struct adapter * adap ) ;