Inbound Packet Flow: IPSec pkt comes in from n/w


if(proto == IPPROTO_AH | IPPROTO_ESP){
    //Check SPI & Get matching SA
    if(SA == transport){
        //Decrypt Send to N/w Layer
    }else{
        //Remove Outer IP Header
        //Decrypt.    send to N/W
    }
} 
      

Outbound: IPSec pkt comes on interface to be routed


if(proto == IPPROTO_AH | IPPROTO_ESP){
    //Check SPI & Get matching SA
    if(SA == transport){
        //Decrypt Send to N/w Layer
    }else{
        //Remove Outer IP Header
        //Decrypt.    send to N/W
    }
}