l3mdev.c (d66f6c0a8f3c0bcc4ee7a9b1da4b0ebe7ee555a3) | l3mdev.c (8a966fc016b67d2a8ab4a83d22ded8cde032a0eb) |
---|---|
1/* 2 * net/l3mdev/l3mdev.c - L3 master device implementation 3 * Copyright (c) 2015 Cumulus Networks 4 * Copyright (c) 2015 David Ahern <dsa@cumulusnetworks.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or --- 116 unchanged lines hidden (view full) --- 125 126 rcu_read_unlock(); 127 } 128 129 return dst; 130} 131EXPORT_SYMBOL_GPL(l3mdev_link_scope_lookup); 132 | 1/* 2 * net/l3mdev/l3mdev.c - L3 master device implementation 3 * Copyright (c) 2015 Cumulus Networks 4 * Copyright (c) 2015 David Ahern <dsa@cumulusnetworks.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or --- 116 unchanged lines hidden (view full) --- 125 126 rcu_read_unlock(); 127 } 128 129 return dst; 130} 131EXPORT_SYMBOL_GPL(l3mdev_link_scope_lookup); 132 |
133int l3mdev_get_saddr6(struct net *net, const struct sock *sk, 134 struct flowi6 *fl6) 135{ 136 struct net_device *dev; 137 int rc = 0; 138 139 if (fl6->flowi6_oif) { 140 rcu_read_lock(); 141 142 dev = dev_get_by_index_rcu(net, fl6->flowi6_oif); 143 if (dev && netif_is_l3_slave(dev)) 144 dev = netdev_master_upper_dev_get_rcu(dev); 145 146 if (dev && netif_is_l3_master(dev) && 147 dev->l3mdev_ops->l3mdev_get_saddr6) 148 rc = dev->l3mdev_ops->l3mdev_get_saddr6(dev, sk, fl6); 149 150 rcu_read_unlock(); 151 } 152 153 return rc; 154} 155EXPORT_SYMBOL_GPL(l3mdev_get_saddr6); 156 | |
157/** 158 * l3mdev_fib_rule_match - Determine if flowi references an 159 * L3 master device 160 * @net: network namespace for device index lookup 161 * @fl: flow struct 162 */ 163 164int l3mdev_fib_rule_match(struct net *net, struct flowi *fl, --- 63 unchanged lines hidden --- | 133/** 134 * l3mdev_fib_rule_match - Determine if flowi references an 135 * L3 master device 136 * @net: network namespace for device index lookup 137 * @fl: flow struct 138 */ 139 140int l3mdev_fib_rule_match(struct net *net, struct flowi *fl, --- 63 unchanged lines hidden --- |