31 #ifndef __LIBNET_FUNCTIONS_H
32 #define __LIBNET_FUNCTIONS_H
64 libnet_init(
int injection_type,
const char *device,
char *err_buf);
247 extern const struct libnet_in6_addr in6addr_error;
273 struct libnet_in6_addr
282 char *host_name,
int host_name_len);
445 uint8_t priority, uint8_t cfi, uint16_t vlan_id, uint16_t len_proto,
446 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
463 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
480 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
499 uint8_t *oui, uint16_t type,
const uint8_t* payload, uint32_t payload_s,
500 libnet_t *l, libnet_ptag_t ptag);
521 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
542 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
580 uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
const uint8_t* payload,
581 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
599 uint8_t cf,
const uint8_t *oui, uint16_t type, libnet_t *l);
624 uint16_t op,
const uint8_t *sha,
const uint8_t *spa,
const uint8_t *tha,
const uint8_t *tpa,
625 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
643 const uint8_t *tpa, libnet_t *l);
666 uint8_t control, uint16_t win, uint16_t sum, uint16_t urg, uint16_t len,
667 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
706 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
731 uint16_t value_s,
const uint8_t *value,
const uint8_t* payload, uint32_t payload_s,
732 libnet_t *l, libnet_ptag_t ptag);
752 uint16_t
id, uint16_t seq,
const uint8_t* payload, uint32_t payload_s,
753 libnet_t *l, libnet_ptag_t ptag);
774 uint16_t
id, uint16_t seq, uint32_t mask,
const uint8_t* payload,
775 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
794 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
814 uint32_t gateway,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
835 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
858 uint16_t
id, uint16_t seq, uint32_t otime, uint32_t rtime, uint32_t ttime,
859 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
878 sum, uint16_t
id, uint16_t seq, uint8_t *payload, uint32_t payload_s,
879 libnet_t *l, libnet_ptag_t ptag);
898 uint8_t *payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
917 uint16_t sum,
struct libnet_in6_addr target, uint8_t *payload, uint32_t
918 payload_s, libnet_t* l, libnet_ptag_t ptag);
938 uint16_t sum, uint32_t flags,
struct libnet_in6_addr target, uint8_t
939 *payload, uint32_t payload_s, libnet_t* l, libnet_ptag_t ptag);
953 uint32_t option_s, libnet_t* l, libnet_ptag_t ptag);
973 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
998 uint8_t ttl, uint8_t prot, uint16_t sum, uint32_t src, uint32_t dst,
999 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1023 libnet_ptag_t ptag);
1062 uint8_t hl,
struct libnet_in6_addr src,
struct libnet_in6_addr dst,
1063 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1081 uint32_t
id,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1082 libnet_ptag_t ptag);
1105 uint8_t segments,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1106 libnet_ptag_t ptag);
1125 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1145 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1167 libnet_t *l, libnet_ptag_t ptag);
1190 uint8_t *shost, uint16_t len,
const uint8_t *snap, uint16_t vid,
1191 uint16_t portindex, uint16_t reserved,
const uint8_t* payload,
1192 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1209 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1226 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1246 uint32_t spi, uint32_t seq, uint32_t auth,
const uint8_t* payload,
1247 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1269 uint16_t num_q, uint16_t num_anws_rr, uint16_t num_auth_rr,
1270 uint16_t num_addi_rr,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1271 libnet_ptag_t ptag);
1294 uint16_t rt, uint32_t addr, uint32_t mask, uint32_t next_hop,
1295 uint32_t metric,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1296 libnet_ptag_t ptag);
1324 uint32_t prog_vers, uint32_t procedure, uint32_t cflavor, uint32_t clength,
1325 uint8_t *cdata, uint32_t vflavor, uint32_t vlength,
const uint8_t *vdata,
1326 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1354 uint8_t flags,
const uint8_t *root_id, uint32_t root_pc,
const uint8_t *bridge_id,
1355 uint16_t port_id, uint16_t message_age, uint16_t max_age,
1356 uint16_t hello_time, uint16_t f_delay,
const uint8_t* payload,
1357 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1376 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1399 uint8_t dsap, uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
1400 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1419 uint8_t dsap, uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
1445 uint8_t priority, uint8_t ip_count, uint8_t auth_type, uint8_t advert_int,
1446 uint16_t sum,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1447 libnet_ptag_t ptag);
1465 uint8_t ttl,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1466 libnet_ptag_t ptag);
1499 uint8_t stratum, uint8_t poll, uint8_t precision, uint16_t delay_int,
1500 uint16_t delay_frac, uint16_t dispersion_int, uint16_t dispersion_frac,
1501 uint32_t reference_id, uint32_t ref_ts_int, uint32_t ref_ts_frac,
1502 uint32_t orig_ts_int, uint32_t orig_ts_frac, uint32_t rec_ts_int,
1503 uint32_t rec_ts_frac, uint32_t xmt_ts_int, uint32_t xmt_ts_frac,
1504 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1523 uint32_t area_id, uint16_t sum, uint16_t autype,
const uint8_t* payload,
1524 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1544 uint8_t priority, uint32_t dead_int, uint32_t des_rtr, uint32_t bkup_rtr,
1545 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1565 uint8_t priority, uint32_t dead_int, uint32_t des_rtr, uint32_t bkup_rtr, uint32_t neighbor,
1566 const uint8_t *payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1583 uint32_t seqnum,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1584 libnet_ptag_t ptag);
1600 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1614 libnet_t *l, libnet_ptag_t ptag);
1635 uint32_t lsid, uint32_t advrtr, uint32_t seqnum, uint16_t sum, uint16_t len,
1636 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1656 uint32_t data, uint8_t type, uint8_t tos, uint16_t metric,
const uint8_t* payload,
1657 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1672 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1688 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1705 uint32_t tag,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1706 libnet_ptag_t ptag);
1723 libnet_ptag_t ptag);
1750 uint8_t hopcount, uint32_t xid, uint16_t secs, uint16_t flags,
1751 uint32_t cip, uint32_t yip, uint32_t sip, uint32_t gip,
const uint8_t *chaddr,
1752 const char *sname,
const char *file,
const uint8_t* payload, uint32_t payload_s,
1753 libnet_t *l, libnet_ptag_t ptag);
1780 uint8_t hopcount, uint32_t xid, uint16_t secs, uint16_t flags,
1781 uint32_t cip, uint32_t yip, uint32_t sip, uint32_t gip,
const uint8_t *chaddr,
1782 const char *sname,
const char *file,
const uint8_t* payload, uint32_t payload_s,
1783 libnet_t *l, libnet_ptag_t ptag);
1820 uint16_t offset, uint32_t key, uint32_t seq, uint16_t len,
1821 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1848 uint16_t offset, uint32_t key, uint32_t seq, uint16_t len,
1849 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1866 uint8_t *routing,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1867 libnet_ptag_t ptag);
1904 uint16_t len, uint8_t type,
const uint8_t* payload, uint32_t payload_s,
1905 libnet_t *l, libnet_ptag_t ptag);
1927 uint32_t bgp_id, uint8_t opt_len,
const uint8_t* payload, uint32_t payload_s,
1928 libnet_t *l, libnet_ptag_t ptag);
1949 uint16_t total_path_attr_len,
const uint8_t *path_attributes, uint16_t info_len,
1950 uint8_t *reachability_info,
const uint8_t* payload, uint32_t payload_s,
1951 libnet_t *l, libnet_ptag_t ptag);
1969 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1996 uint32_t counter, uint32_t time_sec, uint32_t time_usec, uint32_t pid,
1997 uint32_t uid, uint32_t fd, uint8_t cmd[SEBEK_CMD_LENGTH], uint32_t length,
1998 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2023 uint8_t hello_time, uint8_t hold_time, uint8_t priority, uint8_t group,
2024 uint8_t reserved, uint8_t authdata[HSRP_AUTHDATA_LENGTH], uint32_t virtual_ip,
2025 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2045 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2103 struct libnet_in6_addr
2115 struct libnet_ether_addr *
2175 uint32_t *header_s);
2413 libnet_write_raw_ipv4(libnet_t *l,
const uint8_t *packet, uint32_t size);
2420 libnet_write_raw_ipv6(libnet_t *l,
const uint8_t *packet, uint32_t size);
2427 libnet_write_link(libnet_t *l,
const uint8_t *packet, uint32_t size);
2433 libnet_open_raw4(libnet_t *l);
2440 libnet_close_raw4(libnet_t *l);
2446 libnet_open_raw6(libnet_t *l);
2452 libnet_close_raw6(libnet_t *l);
2458 libnet_select_device(libnet_t *l);
2464 libnet_open_link(libnet_t *l);
2470 libnet_close_link(libnet_t *l);
2479 libnet_do_checksum(libnet_t *l, uint8_t *iphdr,
int protocol,
int h_len);
2500 libnet_inet_checksum(libnet_t *l, uint8_t *iphdr,
int protocol,
int h_len,
const uint8_t *beg,
const uint8_t * end);
2507 libnet_compute_crc(uint8_t *buf, uint32_t len);
2514 libnet_ip_check(uint16_t *addr,
int len);
2521 libnet_in_cksum(uint16_t *addr,
int len);
2532 libnet_pblock_probe(libnet_t *l, libnet_ptag_t ptag, uint32_t b_len,
2542 libnet_pblock_new(libnet_t *l, uint32_t b_len);
2550 libnet_pblock_swap(libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2);
2558 libnet_pblock_insert_before(libnet_t *l, libnet_ptag_t ptag1,
2559 libnet_ptag_t ptag2);
2567 libnet_pblock_delete(libnet_t *l, libnet_pblock_t *p);
2577 libnet_pblock_update(libnet_t *l, libnet_pblock_t *p, uint32_t h, uint8_t type);
2586 libnet_pblock_find(libnet_t *l, libnet_ptag_t ptag);
2594 libnet_pblock_append(libnet_t *l, libnet_pblock_t *p,
const void *buf, uint32_t len);
2602 libnet_pblock_setflags(libnet_pblock_t *p, uint8_t flags);
2611 libnet_pblock_p2p(uint8_t type);
2620 libnet_pblock_coalesce(libnet_t *l, uint8_t **packet, uint32_t *size);
2629 libnet_check_iface(libnet_t *l);
2632 #if defined(__WIN32__)
2637 libnet_win32_get_remote_mac(libnet_t *l, DWORD IP);
2643 libnet_close_link_interface(libnet_t *l);
2649 libnet_win32_read_arp_table(DWORD IP);