diff options
Diffstat (limited to 'accel-pppd/ctrl/ipoe/ipoe.h')
-rw-r--r-- | accel-pppd/ctrl/ipoe/ipoe.h | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.h b/accel-pppd/ctrl/ipoe/ipoe.h index 52b3c8da..c8b03b9c 100644 --- a/accel-pppd/ctrl/ipoe/ipoe.h +++ b/accel-pppd/ctrl/ipoe/ipoe.h @@ -18,6 +18,18 @@ #define ETH_ALEN 6 #endif +struct _arphdr { + __be16 ar_hrd; + __be16 ar_pro; + __u8 ar_hln; + __u8 ar_pln; + __be16 ar_op; + __u8 ar_sha[ETH_ALEN]; + __be32 ar_spa; + __u8 ar_tha[ETH_ALEN]; + __be32 ar_tpa; +} __packed; + struct ipoe_serv { struct list_head entry; struct triton_context_t ctx; @@ -82,6 +94,7 @@ struct ipoe_session { uint8_t *data; struct dhcpv4_packet *dhcpv4_request; struct dhcpv4_packet *dhcpv4_relay_reply; + struct _arphdr *arph; int relay_retransmit; int ifindex; char *username; @@ -106,18 +119,6 @@ struct ipoe_session_info { uint32_t peer_addr; }; -struct _arphdr { - __be16 ar_hrd; - __be16 ar_pro; - __u8 ar_hln; - __u8 ar_pln; - __be16 ar_op; - __u8 ar_sha[ETH_ALEN]; - __be32 ar_spa; - __u8 ar_tha[ETH_ALEN]; - __be32 ar_tpa; -} __packed; - #ifdef USE_LUA char *ipoe_lua_get_username(struct ipoe_session *, const char *func); int ipoe_lua_make_vlan_name(const char *func, const char *parent, int svid, int cvid, char *name); @@ -146,6 +147,7 @@ void ipoe_nl_del_net(uint32_t addr); void *arpd_start(struct ipoe_serv *ipoe); void arpd_stop(void *arp); +void arp_send(int ifindex, struct _arphdr *arph); #endif |