X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fpackets.h;h=f61c20ca5896e3ddc2200f38c90c3b7fc7197ccf;hb=e328faadc42cb835b1adf1ef4d77a42c76b52f3f;hp=4595c12cba74ec492944c895c7d43f0f12274587;hpb=b9e8b45a3936441bd0fd1fd156cae498bf72cac8;p=openvswitch diff --git a/lib/packets.h b/lib/packets.h index 4595c12c..f61c20ca 100644 --- a/lib/packets.h +++ b/lib/packets.h @@ -26,6 +26,8 @@ struct ofpbuf; +bool dpid_from_string(const char *s, uint64_t *dpidp); + #define ETH_ADDR_LEN 6 static const uint8_t eth_addr_broadcast[ETH_ADDR_LEN] UNUSED @@ -36,14 +38,6 @@ static inline bool eth_addr_is_broadcast(const uint8_t ea[6]) return (ea[0] & ea[1] & ea[2] & ea[3] & ea[4] & ea[5]) == 0xff; } -/* Returns true if 'ea' is an Ethernet address used for virtual interfaces - * under XenServer. Generally the actual Ethernet address is FE:FF:FF:FF:FF:FF - * but it can be FE:FE:FE:FE:FE:FE in some cases. */ -static inline bool eth_addr_is_vif(const uint8_t ea[6]) -{ - return ea[0] == 0xfe && (ea[1] & ea[2] & ea[3] & ea[4] & ea[5]) >= 0xfe; -} - static inline bool eth_addr_is_multicast(const uint8_t ea[6]) { return ea[0] & 1; @@ -101,6 +95,8 @@ static inline bool eth_addr_is_reserved(const uint8_t ea[ETH_ADDR_LEN]) && (ea[5] & 0xf0) == 0x00); } +bool eth_addr_from_string(const char *, uint8_t ea[ETH_ADDR_LEN]); + void compose_benign_packet(struct ofpbuf *, const char *tag, uint16_t snap_type, const uint8_t eth_src[ETH_ADDR_LEN]);