X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Finclude%2Fdevices%2Fvnet.h;h=91cde553feaf6e36da903a7c8e4ccef9e370edbc;hp=f76dbd1cfbbf787fc52ddab40a0cbda77abdcab2;hb=062b88a9cfd1a538782ebcd67c65f59a1a5a8d56;hpb=e67f90ff8dbf5b58cd4930eba8b9907ea6a12d03 diff --git a/palacios/include/devices/vnet.h b/palacios/include/devices/vnet.h index f76dbd1..91cde55 100644 --- a/palacios/include/devices/vnet.h +++ b/palacios/include/devices/vnet.h @@ -37,118 +37,83 @@ #define ETHERNET_HEADER_LEN 14 #define ETHERNET_DATA_MIN 46 #define ETHERNET_DATA_MAX 1500 -#define ETHERNET_PACKET_LEN (ETHERNET_HEADER_LEN+ETHERNET_DATA_MAX) - -struct ethAddr{ - char addr[6]; -}; - -#define SOCK int - -#define TCP_TYPE 0 -#define UDP_TYPE 1 - -#define TCP_STR "TCP" -#define UDP_STR "UDP" - -/* -#define HANDLER_ERROR -1 -#define HANDLER_SUCCESS 0 -*/ - -#define ANY "any" -#define NOT "not" -#define NONE "none" -#define EMPTY "empty" - -#define ANY_TYPE 0 -#define NOT_TYPE 1 -#define NONE_TYPE 2 -#define EMPTY_TYPE 3 - -#define INTERFACE "INTERFACE" -#define EDGE "EDGE" -#define ANY_SRC "ANY" - -#define INTERFACE_TYPE 0 -#define EDGE_TYPE 1 -#define ANY_SRC_TYPE 2 +#define ETHERNET_PACKET_LEN (ETHERNET_HEADER_LEN + ETHERNET_DATA_MAX) //the routing entry struct routing { - char src_mac[6]; - char dest_mac[6]; + char src_mac[6]; + char dest_mac[6]; - int src_mac_qual; - int dest_mac_qual; + int src_mac_qual; + int dest_mac_qual; - int dest; - int type; //EDGE_TYPE|INTERFACE_TYPE + int dest; + int type; //EDGE_TYPE|INTERFACE_TYPE - int src; - int src_type; + int src; + int src_type; - int use; + int use; - int next; - int prev; + int next; + int prev; }; //This is the structure that stores the topology struct topology { - SOCK link_sock; + SOCK link_sock; - unsigned long dest; + unsigned long dest; - // Port for UDP - unsigned short remote_port; + // Port for UDP + unsigned short remote_port; - // LINK OR GATEWAY - // int link_class; + // LINK OR GATEWAY + // int link_class; - int use; - int type; //TCP=0, UDP=1,VTP=2, can be extended so on + int use; + int type; //TCP=0, UDP=1,VTP=2, can be extended so on - int next; - int prev; + int next; + int prev; }; struct sock_list { - SOCK sock; + SOCK sock; - int next; - int prev; + int next; + int prev; }; #define GENERAL_NIC 0 -struct vnet_if_device{ - char name[50]; - struct ethAddr device_addr; - - int (*input)(uchar_t * pkt, uint_t size); - - void *data; +struct vnet_if_device { + char name[50]; + struct ethAddr device_addr; + + int (*input)(uchar_t * pkt, uint_t size); + + void * data; }; struct device_list { - struct vnet_if_device *device; + struct vnet_if_device *device; - int use; - int type; + int use; + int type; - int next; - int prev; + int next; + int prev; }; // 14 (ethernet frame) + 20 bytes struct HEADERS { - char ethernetdest[6]; - char ethernetsrc[6]; - unsigned char ethernettype[2]; // indicates layer 3 protocol type - char ip[20]; + char ethernetdest[6]; + char ethernetsrc[6]; + unsigned char ethernettype[2]; // indicates layer 3 protocol type + char ip[20]; }; #define FOREACH(iter, list, start) for (iter = start; iter != -1; iter = list[iter].next)