1. struct net_bridge_port *p;
p = (port_no < DP_MAX_PORTS ? dp->ports[port_no]
: port_no == OFPP_LOCAL ? dp->local_port
: NULL);
if (!p || memcmp(opm->hw_addr, p->dev->dev_addr, ETH_ALEN)) //简单的组合判断条件实现了不同的功能
p = (port_no < DP_MAX_PORTS ? dp->ports[port_no]
: port_no == OFPP_LOCAL ? dp->local_port
: NULL);
if (!p || memcmp(opm->hw_addr, p->dev->dev_addr, ETH_ALEN)) //简单的组合判断条件实现了不同的功能
return -1;
/*if(p==NULL) return -1; else
if(memcmp(opm->hw_addr, p->dev->dev_addr, ETH_ALEN)==ERROR)
return -1;*/
2. //解析ip地址,对于ip和mac等标准格式的字符串可结合strtok和atoi实现
uint8_t * parseip(char *str) {
uint8_t *ret = (uint8_t *)malloc(4 * sizeof(uint8_t));
char *num = (char *)strtok(str, "."); //char *strtok(char *s, const char *delim);
int index = 0;
while (num != NULL) {
ret[index++] = atoi(num);
num = (char *)strtok(NULL, ".");
}
return ret;
}