Lines Matching refs:rt

1270 #define	IS_PROXY(rt)	(rt->rt_flags & IEEE80211_MESHRT_FLAGS_PROXY)
1271 #define PROXIED_BY_US(rt) \
1272 (IEEE80211_ADDR_EQ(vap->iv_myaddr, rt->rt_mesh_gate))
1275 struct ieee80211_mesh_route *rt = NULL;
1312 rt = ieee80211_mesh_rt_find(vap, prep->prep_targetaddr);
1313 if (rt == NULL) {
1314 rt = ieee80211_mesh_rt_add(vap, prep->prep_targetaddr);
1315 if (rt == NULL) {
1325 hr = IEEE80211_MESH_ROUTE_PRIV(rt, struct ieee80211_hwmp_route);
1328 if ((rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID)) {
1336 metric > rt->rt_metric) {
1340 metric, rt->rt_metric);
1347 rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID ?
1350 rt->rt_nhops, prep->prep_hopcount + 1,
1351 rt->rt_metric, metric);
1355 IEEE80211_ADDR_COPY(rt->rt_nexthop, ni->ni_macaddr);
1356 rt->rt_metric = metric;
1357 rt->rt_nhops = prep->prep_hopcount + 1;
1358 ieee80211_mesh_rt_update(rt, prep->prep_lifetime);
1359 if (rt->rt_flags & IEEE80211_MESHRT_FLAGS_DISCOVER) {
1361 rt->rt_flags &= ~IEEE80211_MESHRT_FLAGS_DISCOVER;
1363 rt->rt_flags |= IEEE80211_MESHRT_FLAGS_VALID; /* mark valid */
1508 struct ieee80211_mesh_route *rt;
1511 rt = ieee80211_mesh_rt_find(vap, ni->ni_macaddr);
1512 if (rt == NULL)
1514 hr = IEEE80211_MESH_ROUTE_PRIV(rt, struct ieee80211_hwmp_route);
1523 IEEE80211_ADDR_COPY(PERR_DADDR(0), rt->rt_dest);
1544 struct ieee80211_mesh_route *rt = NULL;
1568 rt = ieee80211_mesh_rt_find(vap, PERR_DADDR(i));
1569 if (rt == NULL)
1571 if (!IEEE80211_ADDR_EQ(rt->rt_nexthop, wh->i_addr2))
1578 hr = IEEE80211_MESH_ROUTE_PRIV(rt, struct ieee80211_hwmp_route);
1590 rt->rt_flags &= ~IEEE80211_MESHRT_FLAGS_VALID;
1596 rt->rt_flags &= ~IEEE80211_MESHRT_FLAGS_VALID;
1693 struct ieee80211_mesh_route *rt, int rcode)
1699 if (rt != NULL)
1700 hr = IEEE80211_MESH_ROUTE_PRIV(rt,
1714 KASSERT(rt != NULL, ("no proxy info for sending PERR"));
1715 KASSERT(rt->rt_flags & IEEE80211_MESHRT_FLAGS_PROXY,
1719 PERR_DSEQ(0) = rt->rt_ext_seq;
1723 KASSERT(rt != NULL, ("no route info for sending PERR"));
1744 struct ieee80211_mesh_route *rt = NULL;
1752 rt = ieee80211_mesh_rt_find(vap, rann->rann_addr);
1753 if (rt != NULL && rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID) {
1754 hr = IEEE80211_MESH_ROUTE_PRIV(rt, struct ieee80211_hwmp_route);
1766 rann->rann_metric > rt->rt_metric) {
1768 "RANN metric %u > %u", rann->rann_metric, rt->rt_metric);
1777 if (rt == NULL) {
1778 rt = ieee80211_mesh_rt_add(vap, rann->rann_addr);
1779 if (rt == NULL) {
1787 hr = IEEE80211_MESH_ROUTE_PRIV(rt, struct ieee80211_hwmp_route);
1792 rt->rt_flags |= IEEE80211_MESHRT_FLAGS_GATE;
1794 rt);
1798 ieee80211_mesh_rt_update(rt,
1819 if (rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID &&
1856 struct ieee80211_mesh_route *rt = arg;
1857 struct ieee80211vap *vap = rt->rt_vap;
1863 if ((rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID))
1866 hr = IEEE80211_MESH_ROUTE_PRIV(rt, struct ieee80211_hwmp_route);
1870 rt->rt_dest, "%s",
1872 ieee80211_mesh_forward_to_gates(vap, rt);
1879 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_HWMP, rt->rt_dest,
1894 IEEE80211_ADDR_COPY(PREQ_TADDR(0), rt->rt_dest);
1903 callout_reset(&rt->rt_discovery,
1905 hwmp_rediscover_cb, rt);
1914 struct ieee80211_mesh_route *rt = NULL;
1928 rt = ieee80211_mesh_rt_find(vap, dest);
1929 if (rt == NULL) {
1930 rt = ieee80211_mesh_rt_add(vap, dest);
1931 if (rt == NULL) {
1939 hr = IEEE80211_MESH_ROUTE_PRIV(rt,
1941 if (rt->rt_flags & IEEE80211_MESHRT_FLAGS_DISCOVER) {
1947 if ((rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID) == 0) {
1966 rt->rt_flags = IEEE80211_MESHRT_FLAGS_DISCOVER;
1970 rt->rt_metric = IEEE80211_MESHLMETRIC_INITIALVAL;
2000 callout_reset(&rt->rt_discovery,
2002 hwmp_rediscover_cb, rt);
2004 if (rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID)
2005 ni = ieee80211_find_txnode(vap, rt->rt_nexthop);