Пример #1
0
int br_set_ageing_time(struct bridge *br, struct timeval *tv)
{
	unsigned long jif = __tv_to_jiffies(tv);

	if (br_device_ioctl(br, BRCTL_SET_AGEING_TIME, jif, 0, 0) < 0)
		return errno;

	return 0;
}
Пример #2
0
int br_set_bridge_hello_time(struct bridge *br, struct timeval *tv)
{
	unsigned long jif = __tv_to_jiffies(tv);

	if (br_device_ioctl(br, BRCTL_SET_BRIDGE_HELLO_TIME, jif, 0, 0) < 0)
		return errno;

	return 0;
}
Пример #3
0
int br_set_bridge_max_age(struct bridge *br, struct timeval *tv)
{
	unsigned long jif = __tv_to_jiffies(tv);

	if (br_device_ioctl(br, BRCTL_SET_BRIDGE_MAX_AGE, jif, 0, 0) < 0)
		return errno;

	return 0;
}
Пример #4
0
int br_set_gc_interval(struct bridge *br, struct timeval *tv)
{
	unsigned long jif = __tv_to_jiffies(tv);

	if (br_device_ioctl(br, BRCTL_SET_GC_INTERVAL, jif, 0, 0) < 0)
		return errno;

	return 0;
}
Пример #5
0
int br_set_bridge_forward_delay(struct bridge *br, struct timeval *tv)
{
	unsigned long jif = __tv_to_jiffies(tv);

	if (br_device_ioctl(br, BRCTL_SET_BRIDGE_FORWARD_DELAY,
			    jif, 0, 0) < 0)
		return errno;

	return 0;
}
Пример #6
0
int br_set_bridge_forward_delay(const char *br, int sec)
{
	if (!ifexists(br))
		return -1;
	struct timeval tv;

	tv.tv_sec = sec;
	tv.tv_usec = 0;

	return br_set(br, "forward_delay", __tv_to_jiffies(&tv), BRCTL_SET_BRIDGE_FORWARD_DELAY);
}
Пример #7
0
int _create_bridge(const char* name) {
	int sock;
	sock = socket(AF_INET, SOCK_STREAM, 0);
	if (sock < 0) {
		return -errno;
	}
	
	int err;

	err = ioctl(sock, SIOCBRADDBR, name);
	if (err < 0) {
		close(sock);
		return -errno;
	}
		
	
	struct timeval tv;
        tv.tv_sec = 0;
        tv.tv_usec = 1000000 * (0 - tv.tv_sec);
        
        
        unsigned long args[5];
        struct ifreq ifr;
        
        args[0] = BRCTL_SET_BRIDGE_FORWARD_DELAY;
        args[1] = __tv_to_jiffies(&tv);
        args[2] = 0;
        args[3] = 0;
        args[4] = 0;
        
        memcpy(ifr.ifr_name, name, IFNAMSIZ);
        ((unsigned long *)(&ifr.ifr_data))[0] = (unsigned long)args;
        
	ioctl(sock, SIOCDEVPRIVATE, &ifr);
	
	close(sock);
	return 0;
}
Пример #8
0
int br_set_ageing_time(const char *br, struct timeval *tv)
{
	return br_set(br, "ageing_time", __tv_to_jiffies(tv),
		      BRCTL_SET_AGEING_TIME);
}
Пример #9
0
int br_set_bridge_max_age(const char *br, struct timeval *tv)
{
	return br_set(br, "max_age", __tv_to_jiffies(tv),
		      BRCTL_SET_BRIDGE_MAX_AGE);
}
Пример #10
0
int br_set_bridge_hello_time(const char *br, struct timeval *tv)
{
	return br_set(br, "hello_time", __tv_to_jiffies(tv),
		      BRCTL_SET_BRIDGE_HELLO_TIME);
}
Пример #11
0
int br_set_bridge_forward_delay(const char *br, struct timeval *tv)
{
	return br_set(br, "forward_delay", __tv_to_jiffies(tv),
		      BRCTL_SET_BRIDGE_FORWARD_DELAY);
}
Пример #12
0
static unsigned long str_to_jiffies(const char *time_str)
{
	struct timeval tv;
	strtotimeval(&tv, time_str);
	return __tv_to_jiffies(&tv);
}
Пример #13
0
int br_set_igmpsnoop_ageing_time(const char *br, struct timeval *tv)
{
	return br_set(br, "igmpsnoop_ageing_time", __tv_to_jiffies(tv),
		      BRCTL_SET_IGMPSNOOPING_AGEING_TIME);
}