]> sjero.net Git - dccp2tcp/blobdiff - encap.h
Cleanup types throughout code
[dccp2tcp] / encap.h
diff --git a/encap.h b/encap.h
index 02aaccd683cc2b92cb3ecf9b568c5363c4755a94..5628f7932ff0edf39bd935a9284598c1f4597e15 100644 (file)
--- a/encap.h
+++ b/encap.h
@@ -1,48 +1,79 @@
 /******************************************************************************
-Author: Samuel Jero
+Utility to convert a DCCP flow to a TCP flow for DCCP analysis via
+               tcptrace. Header file for Encapsulation Functions for DCCP to TCP conversion.
 
-Date: 5/2011
+Copyright (C) 2012  Samuel Jero <sj323707@ohio.edu>
 
-Description: Header file for Encapsulation Functions for DCCP to TCP conversion
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Author: Samuel Jero <sj323707@ohio.edu>
+Date: 11/2012
 ******************************************************************************/
 #ifndef ENCAP_H_
 #define ENCAP_H_
 
 /*
  * All Conversion functions use these standard arguments:
- *  struct pcap_pkthdr *h: This is a copy of the libpcap packet structure.
- *                                                You are free to modify and use the fields.
- *
- *  u_char **nptr:             This is a pointer to a buffer for the new packet.
- *                                             Each encapsulation has the responsibility to call
- *                                             When a function is called, this will point at the
- *                                             location for that protocol's header to start.
- *
- *  int *nlength:              The length of the new packet. Each encapsulation
- *                                     can rely on this to contain the remaining buffer
- *                                     space AND must return with this parameter containing
- *                                     the length of the new packet at that layer.
- *
- *  u_char** optr:             This is a pointer to the buffer containing the
- *                                     old packet. When a functio is called, this will
- *                                     point at the location of that protocol's header.
- *
- *  int* length:               The length of the old packet. Each encapsulation
- *                                     layer MUST decrement this by the amount of it's
- *                                     headers. An encapsulation layer MUST never read
- *                                     beyond this into optr.
+ * struct packet *new:         The New packet. It contains the following fields.
+ *
+ *     struct pcap_pkthdr *h: This is a copy of the libpcap packet structure.
+ *                                                        You are free to modify and use the fields.
+ *
+ *     u_char *data:           This is a pointer to a buffer for the new packet.
+ *                                                     Each encapsulation has the responsibility to call
+ *                                                     When a function is called, this will point at the
+ *                                                     location for that protocol's header to start.
+ *
+ *     int length:                     The length of the new packet. Each encapsulation
+ *                                             can rely on this to contain the remaining buffer
+ *                                             space AND must return with this parameter containing
+ *                                             the length of the new packet at that layer.
+ *
+ *     int id_len:                     Length of the source and destination ID.
+ *
+ *     u_char *src_id:         This is an ID for the source host. If you are going to
+ *                                             demultiplex DCCP on anything but Port Numbers, you
+ *                                             need to set this field. Typically this would be an
+ *                                             IP address.
+ *
+ *     u_char *dest_id:        This is an ID for the destination host. If you are going to
+ *                                             demultiplex DCCP on anything but Port Numbers, you
+ *                                             need to set this field. Typically this would be an
+ *                                             IP address.
+ *
+ *     struct const_packet *old:       The Old packet. It contains the following fields.
+ *
+ *     u_char* data:           This is a pointer to the buffer containing the
+ *                                             old packet. When a function is called, this will
+ *                                             point at the location of that protocol's header.
+ *
+ *     int length:                     The length of the old packet. Each encapsulation
+ *                                             layer MUST decrement this by the amount of it's
+ *                                             headers. An encapsulation layer MUST never read
+ *                                             beyond this into old->data.
  */
 
 /*
  * Last Level Conversion Function
  * Converts DCCP to TCP for analysis by TCPTRACE
  */
-int convert_packet(struct pcap_pkthdr *h, u_char **nptr, int *nlength, const u_char **optr, int *length);
+int convert_packet(struct packet *new, const struct const_packet *old);
 
 /*Standard Encapsulation Functions*/
-int ethernet_encap(struct pcap_pkthdr *h, u_char **nptr, int *nlength, const u_char **optr, int *length);
-int linux_cooked_encap(struct pcap_pkthdr *h, u_char **nptr, int *nlength, const u_char **optr, int *length);
-int ipv4_encap(struct pcap_pkthdr *h, u_char **nptr, int *nlength, const u_char **optr, int *length);
+int ethernet_encap(struct packet *new, const struct const_packet *old);
+int linux_cooked_encap(struct packet *new, const struct const_packet *old);
+int ipv4_encap(struct packet *new, const struct const_packet *old);
+int ipv6_encap(struct packet *new, const struct const_packet *old);
 
 #endif /* ENCAP_H_ */