Interest Operation Code |
Input: Interest, Face |
Output: void |
delete expired entries of PIT; // call DeleteEntryOfPIT( ); |
set -Flag = 0; // forwardingFlag |
for each index from Seg to Seg + Seg −1 |
generate Interest such that |
Interest.name == Interest.name and |
Interest.Seg == Interest.Seg; |
find an entry () of PIT relevant to Interest; |
if there is no, add a new entry to its PIT for Interest; |
else |
if Face isn’t in .face, add Face to .face; |
if .Flag > 0 and .Flag == 1, set .Flag = 0; |
else stop handling Interest; |
|
find an entry () of CS relevant to Interest |
if there is , then |
transmit through .face; |
if .Flag == 1, then set .Flag = 1. |
else delete from PIT; // general Interest |
|
else set -Flag = 1; |
if .Flag > 0 and .Flag == 0, set -Flag = 1; |
|
find a proper forwarding face referring to FIB table; |
if Seg == 1, forward Interest through the face; |
else if -Flag == 1, forward Interest via the face; |
else stop handling Interest; |