Lines Matching refs:spi
44 u32 spi; member
61 u32 spi; member
82 static inline unsigned int xfrm6_tunnel_spi_hash_byspi(u32 spi) in xfrm6_tunnel_spi_hash_byspi() argument
84 return spi % XFRM6_TUNNEL_SPI_BYSPI_HSIZE; in xfrm6_tunnel_spi_hash_byspi()
105 u32 spi; in xfrm6_tunnel_spi_lookup() local
109 spi = x6spi ? x6spi->spi : 0; in xfrm6_tunnel_spi_lookup()
111 return htonl(spi); in xfrm6_tunnel_spi_lookup()
115 static int __xfrm6_tunnel_spi_check(struct net *net, u32 spi) in __xfrm6_tunnel_spi_check() argument
119 int index = xfrm6_tunnel_spi_hash_byspi(spi); in __xfrm6_tunnel_spi_check()
124 if (x6spi->spi == spi) in __xfrm6_tunnel_spi_check()
133 u32 spi; in __xfrm6_tunnel_alloc_spi() local
137 if (xfrm6_tn->spi < XFRM6_TUNNEL_SPI_MIN || in __xfrm6_tunnel_alloc_spi()
138 xfrm6_tn->spi >= XFRM6_TUNNEL_SPI_MAX) in __xfrm6_tunnel_alloc_spi()
139 xfrm6_tn->spi = XFRM6_TUNNEL_SPI_MIN; in __xfrm6_tunnel_alloc_spi()
141 xfrm6_tn->spi++; in __xfrm6_tunnel_alloc_spi()
143 for (spi = xfrm6_tn->spi; spi <= XFRM6_TUNNEL_SPI_MAX; spi++) { in __xfrm6_tunnel_alloc_spi()
144 index = __xfrm6_tunnel_spi_check(net, spi); in __xfrm6_tunnel_alloc_spi()
148 for (spi = XFRM6_TUNNEL_SPI_MIN; spi < xfrm6_tn->spi; spi++) { in __xfrm6_tunnel_alloc_spi()
149 index = __xfrm6_tunnel_spi_check(net, spi); in __xfrm6_tunnel_alloc_spi()
153 spi = 0; in __xfrm6_tunnel_alloc_spi()
156 xfrm6_tn->spi = spi; in __xfrm6_tunnel_alloc_spi()
162 x6spi->spi = spi; in __xfrm6_tunnel_alloc_spi()
170 return spi; in __xfrm6_tunnel_alloc_spi()
176 u32 spi; in xfrm6_tunnel_alloc_spi() local
182 spi = x6spi->spi; in xfrm6_tunnel_alloc_spi()
184 spi = __xfrm6_tunnel_alloc_spi(net, saddr); in xfrm6_tunnel_alloc_spi()
187 return htonl(spi); in xfrm6_tunnel_alloc_spi()
236 __be32 spi; in xfrm6_tunnel_rcv() local
238 spi = xfrm6_tunnel_spi_lookup(net, (const xfrm_address_t *)&iph->saddr); in xfrm6_tunnel_rcv()
239 return xfrm6_rcv_spi(skb, IPPROTO_IPV6, spi); in xfrm6_tunnel_rcv()
334 xfrm6_tn->spi = 0; in xfrm6_tunnel_net_init()