Это вопрос или утверждение? В ветке 2.4 такого нет, в 2.6 вплоть до 2.6.25 тоже, сейчас тяну 2.6.27
Добавлено:Проверил - в 2.6.27 тоже нема, и гугль молчит...
Printable View
это была просьба выложить этот файл :)
как же нет, если в патче cdma-kernel-conntrack.diff написано
Code:--- oldlinux/linux/net/ipv4/netfilter/ip_conntrack_core.c 2008-03-30 14:00:44.000000000 +0200
+++ linux/linux/net/ipv4/netfilter/ip_conntrack_core.c 2008-09-01 15:02:04.000000000 +0200
lly,
вобщем эта, я тут тестик для асинхронного резолва наваял, по идее на текущей прошивке не должен работать. Если не сложно запусти пожалуйста со своим ядром.
собирать так cc async_resolv.c -o ifenum -levent
Code:#include <arpa/inet.h>
#include <net/if.h>
#include <netinet/ether.h>
#include <netinet/in.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <event.h>
#include <evdns.h>
//#include <evutil.h>
#include <stdio.h>
struct lookup_info
{
int start_index;
int current_index;
struct event ev;
};
int num;
void evdns_cb(int result, char type, int count, int ttl, void *addresses, void *arg) {
struct in_addr *addrs = addresses;
int i;
if (result != 0) {
printf("Error looking up address.\n");
exit(1);
} else {
for (i = 0; i < count; i++) {
printf("callback recolve test: %s\n", inet_ntoa(addrs[i]));
num = 7;
}
exit(0);
}
}
int main(int argc, char *argv[]) {
char buf[1024];
struct ifconf ifc;
struct ifreq *ifr;
int sck;
int nInterfaces;
int i;
/* Get a socket handle. */
sck = socket(AF_INET6, SOCK_DGRAM, 0);
if(sck < 0) {
perror("socket");
return 1;
}
/* Query available interfaces. */
ifc.ifc_len = sizeof(buf);
ifc.ifc_buf = buf;
if(ioctl(sck, SIOCGIFCONF, &ifc) < 0) {
perror("ioctl(SIOCGIFCONF)");
return 1;
}
/* Iterate through the list of interfaces. */
ifr = ifc.ifc_req;
nInterfaces = ifc.ifc_len / sizeof(struct ifreq);
for(i = 0; i < nInterfaces; i++) {
struct ifreq *item = &ifr[i];
/* Show the device name and IP address */
printf("%s: IP %s", item->ifr_name, inet_ntoa(((struct sockaddr_in *)&item->ifr_addr)->sin_addr));
/* Get the MAC address */
if(ioctl(sck, SIOCGIFHWADDR, item) < 0) {
perror("ioctl(SIOCGIFHWADDR)");
return 1;
}
printf(", MAC %s\n", ether_ntoa((struct ether_addr *)item->ifr_hwaddr.sa_data));
}
/* Lookup host name. */
num = 1;
char *host;
if (argc == 2) {
host = argv[1];
}
struct lookup_info *info;
/* Initialize the event library */
event_init();
evdns_init();
/* need two priorities */
event_priority_init(2);
printf("Async resolving [%s]\n", host);
int rc = evdns_resolve_ipv4(host, 0, evdns_cb, info);
if(rc != DNS_ERR_NONE) {
printf("Failed to lookup '%s': %s", host, evdns_err_to_string(rc));
}
printf("result [%d]\n", rc);
event_dispatch();
printf("num [%d]\n", num);
return 0;
}
запускать так
Code:$ ./ifenum ya.ru
libevent - это эта? http://www.monkey.org/~provos/libevent/ какая версия требуется?
P.S. А исходники ветки 2.4, не скачивая, удобно смотреть через http://www.linuxhq.com/kernel/v2.4/
Постараюсь еще более доходчиво ответить: родные драйвера wifi-части от ASUS распространяются только в виде готовых модулей к ядру 2.4, что и заставляет людей на нем сидеть.Еще раз говорю, пользуйся OpenWRT и будет тебе счастье. У уважаемых lly и Олега немного другие цели и задачи. Они хотят сделать из железяки именно то, что хотел сделать сам ASUS, но не смог.Делаю вывод, что по ссылкам, которые я давал ты не ходил. Привожу ссылку еще раз: http://linuxwireless.org/en/users/Drivers/b43 . На всякий случай объясню. Броадком не делает драйверов для ядра 2.6 (даже бинарных). Для wifi на броадкомовских чипах и ядра 2.6 есть альтернативный драйвер b43, ссылку на информацию по которому я уже второй раз привожу. Если функционал b43 тебя устраивает, то ПОВТОРЯЮ БОЛЬШИМИ БУКВАМИ - используй OpenWRT (c ядром 2.6 и драйвером b43)!
Кроме того, ты почти поэму написал с аргументами, говорящими в пользу OpenWRT. Ты сам себя уговорить ни как не можешь?
Для artp и других фанатов чешской прошивки:
- Ядерную часть прикрутил.
- На вашу долю осталось допилить остальные исправления в пакетах - это должно быть не очень сложно (cdma.diff).
- Бинарные модули при попытке сделать insmod грузятся, и unresolved не выдают. engy пока не ответил.
- Обновленные исходники залью как смогу и ссылку в первом посте темы поправлю, ChangeLog уже перезалил.
Парни! А вопрос чисто юзерского плана - на существующей проше Асус (в частности у меня wl-500w) при обмене данными по самбе сильно грузит проц - до 60-70%. Насколько я понял, это проблема драйвера USB - он генерирует слишком много прерываний и перегружает проц. Скорость обмена с подключенным к девайсу винтом при этом не поднимается выше 4МБ/с. Соответственно, при такой загрузке проца другие операции при копировании данных на/с винта просто подвисают, интернет еле ползает.
Драйвер USB вроде как в ядре сидит? В этой прошивке как с этой проблемой?
Это проблема общей производительности платформы. Новое ядро той-же ветки 2.4 никак не может её решить, разве что предоставить более свежие методы удавления приоритетов.
да это строка появляется в iptables -t mangle -vnL
при указании acl правила
Action Service Source Destination NAT Route
Allow POP3 192.168.2.2 194.67.23.102 AUTO eth2
через веб интерфейс на asusrx3042h
как посмотреть с какими параметрами запускается iptables я не знаю
соответственно не понимаю как задать его на 500gP
но это правило дает нужный результат - пакеты tcp для порта 110 уходят в нужном направлении
если функционал встроен в ядро то как до него добраться?
цель - разводить трафик по разным провайдерам в зависимости от номера tcp порта
тема балансировки и резервирования набирает актуальность хотелось бы иметь такие возможности в прошивке
вот здесь прочитал про патчи для добавления ROUTE в iptables v.1.3.4
Quote:
патчи из набора "patch-o-matic-ng" которые добавляют поддержку ROUTE, nth и random для Iptables. Патчи и iptables вы можете найти здесь
iptables-save на том девайсе есть? а доступ по telnet/ssh?
1) статья от 2006 года, ipt_ROUTE убрали из patch-o-matic-ng в августе 2007
2) По этим ссылкам не написано ЗАЧЕМ нужен в нашем случае ipt_ROUTE
3) В оригинальной статье написано про отключение rp_filter - ты с этим экспериментировал?
Опять повторюсь - лично у меня один провайдер, поэтому построить тест проблематично.
Читайте
http://www.lartc.org/howto/
В принципе, там есть все необходимое.
Так же Вы легко найдете нужное, сформулировав Ваш вопрос поисковику.
можно ли патч к ez-ipupdate добавить для восстановления совместимости с dyndns сервисом zoneedit.com, который:
1. или меняет адрес сервера www.zoneedit.com на dynamic.zoneedit.com
2. или при http ответе 301 Moved Permanently заново соединяется по адресу переадресации
p.s подробнее - в теме Отвалился DDNS от zoneedit
у меня нет файла ez-ipupdate.c из олеговской, только из последней гпл асуса. Прикрепи, сделаю.
На самом деле там только дефайн адреса zoneedit сервера поменять