ip_ftable.h revision f4b3ec61df05330d25f55a36b975b4d7519fdeb1
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * CDDL HEADER START
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * The contents of this file are subject to the terms of the
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * Common Development and Distribution License (the "License").
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * You may not use this file except in compliance with the License.
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * See the License for the specific language governing permissions
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * and limitations under the License.
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * When distributing Covered Code, include this CDDL HEADER in each
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * If applicable, add the following below this CDDL HEADER, with the
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * fields enclosed by brackets "[]" replaced with your own identifying
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * information: Portions Copyright [yyyy] [name of copyright owner]
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * CDDL HEADER END
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dh * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * Use is subject to license terms.
c793af95640863cd29868fc7c419c5d2496b207bsangeeta#pragma ident "%Z%%M% %I% %E% SMI"
c793af95640863cd29868fc7c419c5d2496b207bsangeetaextern "C" {
c793af95640863cd29868fc7c419c5d2496b207bsangeeta struct radix_node rt_nodes[2]; /* tree glue, and other values */
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * struct rt_entry must begin with a struct radix_node (or two!)
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * to a 'struct rt_entry *'
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * multiple routes to same dest/mask via varying gate/ifp are stored
c793af95640863cd29868fc7c419c5d2496b207bsangeeta * in the rt_irb bucket.
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dh * vehicle for passing args through rn_walktree
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dh * The comment below (and for other netstack_t references) refers
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dh * to the fact that we only do netstack_hold in particular cases,
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dh * such as the references from open streams (ill_t and conn_t's
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dh * pointers). Internally within IP we rely on IP's ability to cleanup e.g.
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dh * ire_t's when an ill goes away.
c793af95640863cd29868fc7c419c5d2496b207bsangeetaextern ire_t *ire_ftable_lookup(ipaddr_t, ipaddr_t, ipaddr_t, int,
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dhextern ire_t *ire_lookup_multi(ipaddr_t, zoneid_t, ip_stack_t *);
c793af95640863cd29868fc7c419c5d2496b207bsangeetaextern ire_t *ipif_lookup_multi_ire(ipif_t *, ipaddr_t);
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dhextern void ire_delete_host_redirects(ipaddr_t, ip_stack_t *);
c793af95640863cd29868fc7c419c5d2496b207bsangeetaextern ire_t *ire_forward(ipaddr_t, boolean_t *, ire_t *, ire_t *,
c793af95640863cd29868fc7c419c5d2496b207bsangeetaextern void ire_ftable_walk(struct rt_entry *, uint_t, uint_t,
c793af95640863cd29868fc7c419c5d2496b207bsangeetaextern uint_t ifindex_lookup(const struct sockaddr *, zoneid_t);
c793af95640863cd29868fc7c419c5d2496b207bsangeetaextern int ipfil_sendpkt(const struct sockaddr *, mblk_t *, uint_t, zoneid_t);
c793af95640863cd29868fc7c419c5d2496b207bsangeeta#endif /* _KERNEL */
c793af95640863cd29868fc7c419c5d2496b207bsangeeta#endif /* _INET_IP_FTABLE_H */