SeeRouteChange(dest,mask,was_via)}"
pg-path(RouteDestIP, oldNH){ For all History in ReplyHistoryTable if ( (History.NHIP == oldNH) && (History.mask & RouteDestIP) == (History.mask & History.targetIP)) { lookup(History.dest)=>[new.NHIP, new.PrefixLen] ; if ( (new.NHIP = oldNH) && (new.PrefixLen > History.PrefixLen) { do_nothing(); } else { send_purge ( History.{target, prefixLen, ...}) } } else { do_nothing(); } }"
pg-MAC(MAC,ELAN) { // alternate implementation using assumption that MAC unique in subnet for all ARP records in ELAN if arp.MAC == MAC pg-IP(arp.IP) // problem with Multicast IPs? }"
pg-IP (IP) { for all in RH table if RH.nextHopIp == IP purge RH }"
pg-MskegressIP(EIP) { lookup(IpAddrTable, EIP) [using masked compare ipAdEntNetMask] => Lmask for all RH in ReplyHistoryTable if ((RH.nextHopIp & Lmask == (EIP & mask(RH.ifIndex))) && RH.isEgress) send_purge(RH) }"
pg-NBMA (DestIP, Prefix, NBMA) {// also have sourceIP of either NHC or MPS for all RH in ReplyHistoryTable if (DestIP == RH.DestIP)&& (NBMA==RH.NBMA)&&(Prefix>RH.prefix) purge(RH) } // should it be ::- //if (DestIP/prefix == RH.DestIP/prefix)&&(NBMA==RH.NBMA)&&(Prefix>RH.prefix)"
pg-IP (cie.DestIP)"
pg-MAC(ELAN,MAC) // have old and new MPC-Data ATM addresses too?"
pg-MAC(ELAN(IP),oldMAC)"
NHRP_Registration_change(IP, oldNBMA, newNBMA) { pg-IP(IP) }"
port_fail(IP) { pg-MskegressIP(IP) }"
port_fail(IP) { pg-MskegressIP(IP) }"
purge_packet(CIE_IP, CIE_Prefix, CIE_NBMA) { pg-NBMA(CIE_IP, CIE_Prefix, CIE_NBMA) }"
isEgress | MPOA-NH | dest-type | Change | notEgress | CIP | local | route | egress | noCIP | subnet | MPC | - | - | remote | ARP | - | - | nonAuth | Register | - | - | - | PortFail | - | - | - | Neighbour | - | - | - | RecvPurge | - | - | - | - |
---|
reality | SeeRouteChange | Context | pg-path | pg-MAC | pg-IP | pg-MskegressIP | pg-NBMA | possible | SeeRouteChange | RouteChange | purgePath | purgeMAC | purgeNHIP | pg-EgressIPSub | pg-NBMA | impossible | none | RequestPlus | none | none | none | none | none | - | - | Register | - | - | - | - | - | - | - | Purge | - | - | - | - | - | - | - | - | - | - | - | - | - |
---|
isEgress | MPOA-NH | dest-type | Change | reality | SeeRouteChange | Context | pg-path | pg-MAC | pg-IP | pg-MskegressIP | pg-NBMA | Rules | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
notEgress | CIP | local | route | impossible | SeeRouteChange | RouteChange | - | - | - | - | - | 1,3,18,#0 | ||
notEgress | CIP | local | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,3,19,#1 | ||
notEgress | CIP | local | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,3,20,#2 | ||
notEgress | CIP | local | Register | impossible | none | Register | - | - | - | - | - | 2,3,21,#3 | ||
notEgress | CIP | local | PortFail | impossible | - | RouteChange | - | - | - | - | - | 3,22,#4 | ||
notEgress | CIP | local | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,3,23,#5 | ||
notEgress | CIP | local | RecvPurge | impossible | none | Purge | - | - | - | - | - | 2,3,24,#6 | ||
notEgress | CIP | subnet | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#7 | ||
notEgress | CIP | subnet | MPC | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,12,19,#8 | ||
notEgress | CIP | subnet | ARP | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,13,20,#9 | ||
notEgress | CIP | subnet | Register | impossible | none | Register | - | - | - | - | - | 2,7,21,#10 | ||
notEgress | CIP | subnet | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 15,22,#11 | ||
notEgress | CIP | subnet | Neighbour | - | none | RequestPlus | - | - | - | - | - | 2,23,#12 | ||
notEgress | CIP | subnet | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#13 | ||
notEgress | CIP | remote | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#14 | ||
notEgress | CIP | remote | MPC | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,12,19,#15 | ||
notEgress | CIP | remote | ARP | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,13,20,#16 | ||
notEgress | CIP | remote | Register | impossible | none | Register | - | - | - | - | - | 2,7,21,#17 | ||
notEgress | CIP | remote | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 15,22,#18 | ||
notEgress | CIP | remote | Neighbour | - | none | RequestPlus | - | - | - | - | - | 2,23,#19 | ||
notEgress | CIP | remote | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#20 | ||
notEgress | CIP | nonAuth | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#21 | ||
notEgress | CIP | nonAuth | MPC | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,12,19,#22 | ||
notEgress | CIP | nonAuth | ARP | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,13,20,#23 | ||
notEgress | CIP | nonAuth | Register | impossible | none | Register | - | - | - | - | - | 2,7,21,#24 | ||
notEgress | CIP | nonAuth | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 15,22,#25 | ||
notEgress | CIP | nonAuth | Neighbour | - | none | RequestPlus | - | - | - | - | - | 2,23,#26 | ||
notEgress | CIP | nonAuth | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#27 | ||
notEgress | noCIP | local | route | impossible | SeeRouteChange | RouteChange | - | - | - | - | - | 1,3,18,#28 | ||
notEgress | noCIP | local | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,3,19,#29 | ||
notEgress | noCIP | local | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,3,20,#30 | ||
notEgress | noCIP | local | Register | impossible | none | Register | - | - | - | - | - | 2,3,21,#31 | ||
notEgress | noCIP | local | PortFail | impossible | - | RouteChange | - | - | - | - | - | 3,22,#32 | ||
notEgress | noCIP | local | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,3,23,#33 | ||
notEgress | noCIP | local | RecvPurge | impossible | none | Purge | - | - | - | - | - | 2,3,24,#34 | ||
notEgress | noCIP | subnet | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#35 | ||
notEgress | noCIP | subnet | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,4,19,#36 | ||
notEgress | noCIP | subnet | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,6,20,#37 | ||
notEgress | noCIP | subnet | Register | - | none | Register | - | - | purgeNHIP | - | - | 2,14,21,#38 | ||
notEgress | noCIP | subnet | PortFail | - | - | RouteChange | - | - | - | - | - | 22,#39 | ||
notEgress | noCIP | subnet | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,5,23,#40 | ||
notEgress | noCIP | subnet | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#41 | ||
notEgress | noCIP | remote | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#42 | ||
notEgress | noCIP | remote | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,4,19,#43 | ||
notEgress | noCIP | remote | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,6,20,#44 | ||
notEgress | noCIP | remote | Register | - | none | Register | - | - | purgeNHIP | - | - | 2,14,21,#45 | ||
notEgress | noCIP | remote | PortFail | - | - | RouteChange | - | - | - | - | - | 22,#46 | ||
notEgress | noCIP | remote | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,5,23,#47 | ||
notEgress | noCIP | remote | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#48 | ||
notEgress | noCIP | nonAuth | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#49 | ||
notEgress | noCIP | nonAuth | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,4,19,#50 | ||
notEgress | noCIP | nonAuth | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,6,20,#51 | ||
notEgress | noCIP | nonAuth | Register | - | none | Register | - | - | purgeNHIP | - | - | 2,14,21,#52 | ||
notEgress | noCIP | nonAuth | PortFail | - | - | RouteChange | - | - | - | - | - | 22,#53 | ||
notEgress | noCIP | nonAuth | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,5,23,#54 | ||
notEgress | noCIP | nonAuth | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#55 | ||
egress | CIP | local | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#56 | ||
egress | CIP | local | MPC | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,12,19,#57 | ||
egress | CIP | local | ARP | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,13,20,#58 | ||
egress | CIP | local | Register | impossible | none | Register | - | - | - | - | - | 2,7,21,#59 | ||
egress | CIP | local | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 16,22,#60 | ||
egress | CIP | local | Neighbour | - | none | RequestPlus | - | - | - | - | - | 2,23,#61 | ||
egress | CIP | local | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#62 | ||
egress | CIP | subnet | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#63 | ||
egress | CIP | subnet | MPC | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,12,19,#64 | ||
egress | CIP | subnet | ARP | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,13,20,#65 | ||
egress | CIP | subnet | Register | impossible | none | Register | - | - | - | - | - | 2,7,21,#66 | ||
egress | CIP | subnet | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 16,22,#67 | ||
egress | CIP | subnet | Neighbour | - | none | RequestPlus | - | - | - | - | - | 2,23,#68 | ||
egress | CIP | subnet | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#69 | ||
egress | CIP | remote | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#70 | ||
egress | CIP | remote | MPC | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,12,19,#71 | ||
egress | CIP | remote | ARP | - | none | RequestPlus | - | purgeMAC | purgeNHIP | - | - | 2,9,13,20,#72 | ||
egress | CIP | remote | Register | impossible | none | Register | - | - | - | - | - | 2,7,21,#73 | ||
egress | CIP | remote | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 16,22,#74 | ||
egress | CIP | remote | Neighbour | - | none | RequestPlus | - | - | - | - | - | 2,23,#75 | ||
egress | CIP | remote | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#76 | ||
egress | CIP | nonAuth | route | impossible | SeeRouteChange | RouteChange | - | - | - | - | - | 1,8,18,#77 | ||
egress | CIP | nonAuth | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,8,19,#78 | ||
egress | CIP | nonAuth | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,8,20,#79 | ||
egress | CIP | nonAuth | Register | impossible | none | Register | - | - | - | - | - | 2,7,21,#80 | ||
egress | CIP | nonAuth | PortFail | impossible | - | RouteChange | - | - | - | - | - | 8,22,#81 | ||
egress | CIP | nonAuth | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,8,23,#82 | ||
egress | CIP | nonAuth | RecvPurge | impossible | none | Purge | - | - | - | - | - | 2,8,24,#83 | ||
egress | noCIP | local | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#84 | ||
egress | noCIP | local | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,4,19,#85 | ||
egress | noCIP | local | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,6,20,#86 | ||
egress | noCIP | local | Register | - | none | Register | - | - | purgeNHIP | - | - | 2,14,21,#87 | ||
egress | noCIP | local | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 16,22,#88 | ||
egress | noCIP | local | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,5,23,#89 | ||
egress | noCIP | local | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#90 | ||
egress | noCIP | subnet | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#91 | ||
egress | noCIP | subnet | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,4,19,#92 | ||
egress | noCIP | subnet | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,6,20,#93 | ||
egress | noCIP | subnet | Register | - | none | Register | - | - | purgeNHIP | - | - | 2,14,21,#94 | ||
egress | noCIP | subnet | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 16,22,#95 | ||
egress | noCIP | subnet | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,5,23,#96 | ||
egress | noCIP | subnet | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#97 | ||
egress | noCIP | remote | route | - | SeeRouteChange | RouteChange | purgePath | - | - | - | - | 1,10,18,#98 | ||
egress | noCIP | remote | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,4,19,#99 | ||
egress | noCIP | remote | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,6,20,#100 | ||
egress | noCIP | remote | Register | - | none | Register | - | - | purgeNHIP | - | - | 2,14,21,#101 | ||
egress | noCIP | remote | PortFail | - | - | RouteChange | - | - | - | pg-EgressIPSub | - | 16,22,#102 | ||
egress | noCIP | remote | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,5,23,#103 | ||
egress | noCIP | remote | RecvPurge | - | none | Purge | - | - | purgeNHIP | - | pg-NBMA | 2,11,17,24,#104 | ||
egress | noCIP | nonAuth | route | impossible | SeeRouteChange | RouteChange | - | - | - | - | - | 1,8,18,#105 | ||
egress | noCIP | nonAuth | MPC | impossible | none | RequestPlus | - | - | - | - | - | 2,4,19,#106 | ||
egress | noCIP | nonAuth | ARP | impossible | none | RequestPlus | - | - | - | - | - | 2,6,20,#107 | ||
egress | noCIP | nonAuth | Register | impossible | none | Register | - | - | - | - | - | 2,8,21,#108 | ||
egress | noCIP | nonAuth | PortFail | impossible | - | RouteChange | - | - | - | - | - | 8,22,#109 | ||
egress | noCIP | nonAuth | Neighbour | impossible | none | RequestPlus | - | - | - | - | - | 2,5,23,#110 | ||
egress | noCIP | nonAuth | RecvPurge | impossible | none | Purge | - | - | - | - | - | 2,8,24,#111 |