52 GRESreHdr *gsre = NULL;
53 GREPPtPHd *gre_pptp_h = NULL;
61 if (!PacketIncreaseCheckLayers(p)) {
65 GREHdr *
greh = PacketSetGRE(p, pkt);
103 if (header_len >
len) {
117 gsre = (GRESreHdr *)(pkt + header_len);
121 if ((
SCNtohs(gsre->af) == 0) && (gsre->sre_length == 0))
124 header_len += gsre->sre_length;
125 if (header_len >
len) {
182 gre_pptp_h = (GREPPtPHd *)pkt;
192 if (header_len >
len) {
217 if (gre_pptp_h && !gre_pptp_h->payload_length)
299 static int DecodeGREtest01 (
void)
301 uint8_t raw_gre[] = { 0x00 ,0x6e ,0x62 };
321 static int DecodeGREtest02 (
void)
323 uint8_t raw_gre[] = {
324 0x00, 0x6e, 0x62, 0xac, 0x40, 0x00, 0x40, 0x2f,
325 0xc2, 0xc7, 0x0a, 0x00, 0x00, 0x64, 0x0a, 0x00,
326 0x00, 0x8a, 0x30, 0x01, 0x0b, 0x00, 0x4e, 0x00,
327 0x00, 0x00, 0x18, 0x4a, 0x50, 0xff, 0x03, 0x00,
328 0x21, 0x45, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x40,
329 0x00, 0x40, 0x11, 0x94, 0x22, 0x50, 0x7e, 0x2b,
330 0x2d, 0xc2, 0x6d, 0x68, 0x68, 0x80, 0x0e, 0x00,
331 0x35, 0x00, 0x36, 0x9f, 0x18, 0xdb, 0xc4, 0x01,
332 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
333 0x01, 0x03, 0x73, 0x31, 0x36, 0x09, 0x73, 0x69,
334 0x74, 0x65, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x03,
335 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x01, 0x00, 0x01,
336 0x00, 0x00, 0x29, 0x10, 0x00, 0x00, 0x00, 0x00,
358 static int DecodeGREtest03 (
void)
360 uint8_t raw_gre[] = {
361 0x00, 0x6e, 0x62, 0xac, 0x40, 0x00, 0x40, 0x2f,
362 0xc2, 0xc7, 0x0a, 0x00, 0x00, 0x64, 0x0a, 0x00,
363 0x00, 0x8a, 0x30, 0x01, 0x88, 0x0b, 0x00, 0x4e,
364 0x00, 0x00, 0x00, 0x18, 0x4a, 0x50, 0xff, 0x03,
365 0x00, 0x21, 0x45, 0x00, 0x00, 0x4a, 0x00, 0x00,
366 0x40, 0x00, 0x40, 0x11, 0x94, 0x22, 0x50, 0x7e,
367 0x2b, 0x2d, 0xc2, 0x6d, 0x68, 0x68, 0x80, 0x0e,
368 0x00, 0x35, 0x00, 0x36, 0x9f, 0x18, 0xdb, 0xc4,
369 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
370 0x00, 0x01, 0x03, 0x73, 0x31, 0x36, 0x09, 0x73,
371 0x69, 0x74, 0x65, 0x6d, 0x65, 0x74, 0x65, 0x72,
372 0x03, 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x01, 0x00,
373 0x01, 0x00, 0x00, 0x29, 0x10, 0x00, 0x00, 0x00,
374 0x00, 0x00, 0x00, 0x00 };