--- /dev/null
+#ifndef _GREPROTOCOL_H
+#define _GREPROTOCOL_H
+
+#include "protocol.h"
+
+#include <arpa/inet.h>
+#include <stdint.h>
+#include <string>
+
+class Reorderer;
+
+class GREProtocol : public Protocol {
+public:
+ GREProtocol(const in6_addr &myaddr, const in6_addr &dst);
+ virtual void send_packet(uint16_t proto, const std::string &data);
+ virtual int fd() const;
+ void read_packet(Reorderer* sender);
+
+private:
+ int seq;
+ int sock;
+ sockaddr_in6 dstaddr;
+};
+
+#endif // !defined(_GREPROTOCOL_H)