+ /*Process DCCP Packet Types*/
+ switch(dccph->dccph_type){
+ case DCCP_PKT_REQUEST:
+ dbgprintf(2,"Packet Type: Request\n");
+ if(!handle_request(new, old, h1, h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_RESPONSE:
+ dbgprintf(2,"Packet Type: Response\n");
+ if(!handle_response(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_DATA:
+ if(!handle_data(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_DATAACK:
+ dbgprintf(2,"Packet Type: DataAck\n");
+ if(!handle_dataack(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_ACK:
+ dbgprintf(2,"Packet Type: Ack\n");
+ if(!handle_ack(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_CLOSEREQ:
+ dbgprintf(2,"Packet Type: CloseReq\n");
+ if(!handle_closereq(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_CLOSE:
+ dbgprintf(2,"Packet Type: Close\n");
+ if(!handle_close(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_RESET:
+ dbgprintf(2,"Packet Type: Reset\n");
+ if(!handle_reset(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_SYNC:
+ dbgprintf(2,"Packet Type: Sync\n");
+ if(!handle_sync(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ case DCCP_PKT_SYNCACK:
+ dbgprintf(2,"Packet Type: SyncAck\n");
+ if(!handle_syncack(new,old,h1,h2)){
+ return 0;
+ }
+ break;
+ default:
+ dbgprintf(0,"Invalid DCCP Packet!!\n");
+ return 0;
+ break;
+ }