1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749
|
Version 10b (3-OCT-2004)
------------------------
- the "mtu" parameter in TBF is now optional
- tcsim now uses KVERSION[NUM] instead of KFULLVERSION[NUM] to avoid breaking
if EXTRAVERSION contains multiple dots or other surprises (reported by
Eduardo Grosclaude)
- scripts/runtests.sh now runs commands with LANG=C, to avoid localized error
messages (reported by Eduardo Grosclaude)
Version 10a (28-SEP-2004)
-------------------------
- configure is compatible with 2.4.27
- updated kernel version example in README from 2.4.26 to 2.4.27
- scripts/compatibility.sh: added 2.4.27
- changed name of "tcc" to "tcng", for collision with "tiny cc" (reported by
Matthias Urlichs)
- scripts/localize.sh: now installs a wrapper for "tcng", pointing to "tcc"
- scripts/symlinks.sh: now adds a link from "tcng" to "tcc"
- tcsim/tcsim.c: now calls "tcc" as "tcng"
- configure: changed "tcc" to "tcng" at all user-visible places
- tcc/tcc.c: no longer identifies itself as "tcc" when invoked with -V
- Makefile: the binary distribution for "tcc" is now called "tcng"
- build/{tcng,tcsim}.spec.in: changed most references for "tcc" to "tcng"
- Makefile: removed lib/tcng/include/klib/kernel/include from TCSIM_BINDIST
- configure now uses include/SNAPSHOT.h instead of RELNOTES to detect iproute2
version
- configure is now compatible with iproute2-2.6.8-ss040730 and
iproute2-2.6.9-ss040831 (updated tests/cbqroot and tests/tbf)
- tcng/README now recommends to download iproute2-2.6.9-ss040831.tar.gz
(this also affects tcsim.spec)
- recent versions of iproute2 only support MPUs <= 255 bytes (updated
tests/mpu)
- tcng can now use "conform-exceed" instead of "action" (updated tests/drop)
- configure: new options "--action" (or "-a") and "--conform-exceed" (or "-A")
to override action handling
- tcc/Makefile now depends on ../config
Version 9m (9-MAY-2004)
-----------------------
- configure is compatible with 2.4.26
- updated kernel version example in README from 2.4.25 to 2.4.26
- scripts/compatibility.sh: added 2.4.26
- installation example in README now also mentions downloading the iproute2
tarball from Debian
- configure and scripts/minisrc.sh now also recognize the Debian iproute
tarball
- tcsim/setup.klib: added "time_after" and "time_after_eq" to linux/sched.h
- tcsim/setup.klib: converts dsfield.h to remove bare newlines from strings
(needed to build tcsim with old kernel sources and a new gcc)
- if_u32.c:dump_and now checks if any but the last && term changes the offset
group (tests/tcng-9m; updated tests/tcng-2i, reported by Laurent Moutel)
- tcsim/Makefile: compile tcsim.c without kernel includes, to avoid confusing
glibc headers (reported by Nuutti Kotivuori)
Version 9l (29-FEB-2004)
------------------------
- configure did not preserve the YACC setting across sessions
- configure now complains if -k, -i, -d, -t, or -y have no argument
- tcc and tcsim now use -$ if -std=c99 does not work (updated tests/cppdollar)
- configure: new options "-$" and "--c99" (or "-c99") to override dollar
handling
- the writer helper process of tcsim now always exits with _exit, to avoid
running the exit handler that kills cpp
- runtests.sh converts " parse " to " syntax " in stderr if expecting an error,
because some YACCs print "parse error" instead of "syntax error"
- examples/prio+fw, examples/tbf, examples-ng/pfifo_fast, examples-ng/prio+fw,
examples/priority, tests/idiomatic, tests/packet, tests/tcsattpro,
tests/tcsattpsv, tests/tcsattset, tests/tcsdefinc, tests/trace, tests/u32dlb,
and tests/u32slb now avoid using variadic macros with an empty argument list
all, to keep some versions of CPP from complaining
- tests/tcng-7g forced a syntax error at EOF, which yielded inconsistent
results with different versions of CPP
- updated kernel version example in tcng/README from 2.4.22 to 2.4.25
- q_htb.c: used ~0UL to mean "0xffffffffUL"
- moved removal of .depend from "clean" to "spotless" make target
- tcsim/Makefile: removed left-over dependencies on module cleanup targets
"ephemeral-mod" and "clean-mod"
- tcsim/modules/Makefile did not define OBJS
Version 9k (28-FEB-2004)
------------------------
- cpp 3.3.3 unceremoniously dropped "-$", so we're now using "-std=c99"
(updated tests/cppdollar, tests/phasep; based on patch by Robin H. Johnson)
- tcc and tcsim now invoke cpp with argv[0] set to the name of cpp (instead of
the name with which tcc or tcsim was invoked), for cpp 3.3.3 compatibility
(updated tests/tcng-6u; fixed by Robin H. Johnson)
- POSIX obsoleted "tail -N", using "tail -n N" now (updated tests/tstcond;
fixed by Robin H. Johnson)
- Makefile: added remark that the ebuild that comes with tcng isn't nearly as
good as the one from Gentoo
- build system now uses bison if "configure" finds no yacc
- configure: added option --yacc (-y) to set the YACC command
- toys/comtc now uses extension .i instead of .cpp, since the latter caused cpp
to switch to C++ mode
- configure: changed "dir_or_tarball" to "dir_or_tar.bz2" in description of
"--kernel" argument
- configure now also accepts tarballs for iproute2
- added scripts/minisrc.sh which extracts the files needed to build tcsim from
an iproute2 tarball
- changed UNDEF_U32 from ~0UL to ~0U for 64 bit compatibility
- tcc/ext_io.c:expand_errors added casts to avoid complaints when using a
pointer difference in printf on 64 bit
- setup.klib: elements of "struct timeval" are now "unsigned long" instead of
"unsigned" for better compatibility with glibc on 64 bit
- kmod_cc and tcmod_cc now use -fPIC for amd64 compatibility
- tcc/ext/Makefile and tcc/ext/tcc-ext-test.in now use -fPIC for amd64
compatibility
- tcc/iflib_actdb.c:debug_subtree printed pointer to policier instead of its
number
- setup.klib: linux/types.h now just #includes stddef.h instead of trying its
own definitions for size_t and NULL
- changed long obsolete "make upload" to equal "make upload-sf"
Version 9j (26-FEB-2004)
------------------------
- Makefile: targets "tcc" and "tcsim" depend also on "shared" (reported by
Mustafa Ogun)
- configure is compatible with 2.4.24 and 2.4.25
- scripts/compatibility.sh: added 2.4.23, 2.4.24, and 2.4.25
- minksrc.sh now only extracts kernel source from tarball if the source has not
already been extracted
- moved progress reporting from "configure" to "minksrc.sh"
- "make clean" now also removes temporary files of "configure"
Version 9i (22-NOV-2003)
------------------------
- tcc now supports TBF with an inner qdisc (tests/tbfqdsyn, tests/tbfqdtc,
tests/tbfqdext, tests/tbfqdrun)
- removed redundant flag QDISC_HAS_DEFAULT
- added build/tcng.ebuild file for Gentoo (by "raptor")
- Makefile: added "gentoo" target
- setup.klib no longer uses a symbolic link to the original source tree
- configure: added option --no-defaults to skip loading of old config file
- tcsim/Makefile.unclean tcsim/modules/Makefile: object files now depend on the
config file
- added scripts/minksrc.sh which extracts the files needed to build tcsim from
a kernel tarball
- added scripts/compatibility.sh which runs all regression tests involving
tcsim for all supported kernel versions
- Makefile: added "compatibility" target
- "make sf-upload" now prints the MD5 message digest before uploading
- configure: removed 2.4.11 kernel, which was withdrawn
- configure: -k argument can be a kernel tarball
- runtests.sh: added option -t to run only tests probably using tcsim
- setup.klib: unconditionally defining LONG_MAX in include/linux/kernel.h broke
2.5.4 builds
Version 9h (7-NOV-2003)
-----------------------
- tcc/ext/Makefile: dependencies now only include .c files compiled in that
directory, removing a warning when building RPMs
- split tcsim/Makefile into Makefile.unclean and Makefile.clean to avoid
rebuilding klib and ulib when cleaning up after configuration changes
- configure is compatible with 2.4.22 and 2.4.23 (pre-release, tested with
2.4.23-pre9)
- setup.klib generates linux/smp.h needed for 2.4.22
- tcsim/trace.c and tcsim/modules/sch_discard.c adjust ..._drop prototype for
interface change in 2.4.22
- setup.klib clears LANG before using sed on [^ -~]
- setup.klib adds "err" and "error_report" members to "struct sock" in
af_netlink.c (for 2.4.23)
- updated kernel version example in tcng/README from 2.4.21 to 2.4.22
- configure: added options --no-manual and --with-manual (abbreviations -m and
-M) to allow building tcng with or without the documentation (suggested by
"raptor")
- configure: automatically assumes --no-manual if either latex or dvips is not
in the PATH
Version 9g (6-NOV-2003)
-----------------------
- tcsim leaked memory for variable names (fixed by Dimitry Ketov)
- tcsim now frees commands after execution (based on a patch by Dimitry Ketov)
- tcsim -c freed command variables on each access (tests/tcng-9g)
- scripts/runtests.sh: the -c option had no effect and was not mentioned in the
usage
- changed "tree color meter" to "three color meter" in documentation (fixed by
Martin A. Brown)
Version 9f (19-JUN-2003)
------------------------
- updated kernel version example in tcng/README from 2.4.20 to 2.4.21
- setup.klib is now compatible with 2.4.21 (final release) (by Dimitry Ketov)
- fixed setup.klib compatibility with old kernels, like 2.4.3
Version 9e (28-APR-2003)
------------------------
- updated tests/tcng-6u to accept captialization of cpp 3.2
- put back packet ID in tcsim_filter output, which was removed in tcng-8x
because I had forgotten that it was used for delay calculation in tcsim_plot
(fixed by Dimitry Ketov; updated tests/basic, tests/tcng-8x, tests/tcsattpro,
tests/tcsattpsv, and tests/tcsattset)
- doc/tcsim.inc: updated tcsim_filter output format description accordingly
- examples/dsmark+policing, examples/ef-prio, and examples/gred used UDP_HDR
instead of IP_HDR
- "make rpm" and "make tcsim-rpms" now use "rpmbuild" instead of "rpm" if
available
Version 9d (14-JAN-2003)
------------------------
- updated kernel version example in tcng/README from 2.4.19 to 2.4.20
- configure is now compatible with 2.4.21 (pre-release, tested with pre3)
- tcsim -V now also prints the versions of the kernel and iproute2 used to
build it
- make "upload-sf" now runs md5sum after uploading
- README: changed tar xfI <file> to more compatible bzcat <file> | tar xf -
- generalized argument-fetching mechanism of sprintf, and split it into
sprintf.c and sprintf_generic.c
- removed extra % from sprintf's precision error message (updated
tests/sprintf)
- comtc's second pass now invokes tcc with the -n option, because some versions
of CPP don't allow -include with -fpreprocessed
- toys/comtc mis-converted stdin location tags when using cpp 2.96 (reported by
Martin A. Brown)
- tcsim executed original rtnl_close, closing an undefined file descriptor,
which sometimes upset flex, causing it to fail with "input in flex scanner
failed" (reported by "bauer")
Version 9c (14-NOV-2002)
------------------------
- if_u32 badly mis-ordered rules with multi-phase policers (tests/u32pol)
- updated tests/arith, tests/egress, tests/intro, tests/selpath,
tests/selpathcbq, tests/selpathdup, tests/selpathgred, tests/tcng-2n, and
tests/tcng-7o to use unified match format introduced with above fix
- tcc and tcsim silently ignored invalid digits in octal numbers
(tests/tcng-9c)
- tcsim did not report EOF in tcng section as an error (tests/tcng-9c)
- updated tests/typerr and tests/varhash accordingly
- if_u32.c can now generate fw and tcindex classifiers from meta-fields
(tests/metau32)
- for consistency, dsmark can now also default parameter "value" from qdisc
(tests/u32pol)
- tests/tcstimstp used packets that caused SFQ to segfault under efence
- scripts/runtests.sh: also "comtc" now filters efence blabber
- added known range check problem to TODO
Version 9b (21-OCT-2002)
------------------------
- tcsim tried to ignore system HZ (tc/tc_core.c:tc_core_init), but didn't
- test "SLB with MPU (ext)" actually used tc, not the external interface
(tests/mpu)
- added dependency on ../VERSION for tcc.o and tcsim.o
- if_u32.c now generates hashes only if they are actually referenced
- updated tests/cbqroot, tests/comtc, tests/egress, tests/htbng, tests/intro,
tests/selpath, tests/selpathcbq, tests/selpathdup, tests/selpathgred,
tests/tcng-2h, tests/tcng-2i, tests/tcng-2j, tests/tcng-2q, tests/tcng-3g,
and tests/tcsenq accordingly
Version 9a (18-OCT-2002)
------------------------
- iflib_not.c:single_bit_test failed an assertion when comparing 128 bit
values (tests/tcng-9a, reported by Jacob Teplitsky)
- shared/addr.c:ipv{4,6}_host now cache query results in order to avoid
inconsistencies when external database changes during tcc run
- updated TODO accordingly
- added top-level Makefile target "count-tests"
- top-level Makefile targets "test", "tests", and "valgrind" weren't .PHONY
- "c" target did not detect unsupported field roots (tests/tcng-9a)
- "c" target now supports the "protocol" meta field (tests/protc)
- renamed meta.h to tccmeta.h and added it to tcc's public include files
- added support for meta-field to external interface (tests/protext)
Version 8z (10-OCT-2002)
------------------------
- tcc and tcsim allowed passing more than one file name to cpp, which treats
the second file name as output file (tests/tcng-8z)
- protocol support for u32 mis-attached subexpressions under new field root
(tests/protcomb)
- tests/htbquant and tests/tcstimstp did not probe if HTB is available before
using it
- tcsim stopped HTB timers before last packet was sent (tests/tcstimstp)
- tcsim now detects stopped devices with packets pending at "end"
(tests/tcstimstp)
- updated tests/basic, tests/tcssnap, tests/u32dlb, and tests/u32slb according
to above change
- -Wexpensive did not warn about implicit negation (tests/tcng-8z)
- tcc: replaced -E with -Wexperror, and -E -E with -Wexppostopt (tests/newexp)
- updated tests/bitfield, tests/bittest, tests/expensive, tests/ne,
tests/tcng-5y, and tests/tcng-7a according to above change
- tcc -E now runs cpp without any further processing (just like gcc -E;
tests/tccin)
- tcc: added option -f infile to read from specified file, ignoring input file
argument (tests/tccin)
- tcc now writes location map after dumping, in order to include
target-specific fixups in map
- added script toys/comtc that copies comments immediately preceding elements
to tc output (tests/comtc)
- runtests.sh: added command comtc to invoke toys/comtc
- tcc sometimes forgot that "prio" qdisc now supports policing (tests/tcng-8z)
- cleaned up hack causing compiler warning in if_u32.c
Version 8y (21-SEP-2002)
------------------------
- HTB quantum can now be specified in bytes or seconds (tests/htbquant)
- documented various parameter handling differences between tcng and tc
- added first example from HTB documentation to tests/htbng
- tcsim now uses default.tcsim to automatically include packet.def and
ports.tc, similar to how tcc uses default.tc (tests/tcsdefinc)
- tcsim: added option -n to disable inclusion of default.tcsim
(tests/tcsdefinc)
- updated tests/cbqroot, tests/cpp31, tests/defcbq, tests/defdsm, tests/ext,
tests/idiomatic, tests/tcng-2j, tests/tcng-3i, tests/tcng-3t, tests/tcng-4n,
and tests/trace to either invoke tcsim with -n, or to avoid using ip.def
- removed use of ip.def from all examples (examples/*, examples-ng/*)
- tcc/defaults.tc now resets the line number in order to work around strange
cpps that embed -included file instead of including it, causing line numbers
to be off by the length of the -included file (reported by "raptor")
- tcsim now stops SFQ and HTB timers at end (tests/tcstimstp)
- updated examples/sfq and examples-ng/sfq accordingly
- moved helper functions alloc, alloc_t, stralloc, and alloc_sprintf to
tcng/shared/memutil.*
- added %c format to alloc_sprintf
- removed potential buffer overruns in tcsim/module.c and tcsim/cfg.l by using
alloc_sprintf
- tcc did not complain when specifying "limit" in bytes and in packets for FIFO
qdisc (tests/tcng-8y)
- added awk to build prerequisites
Version 8x (20-SEP-2002)
------------------------
- tcc: added HTB queuing discipline (tests/htbng, by Jacob Teplitsky)
- tcsim no longer resets the "protocol" attribute when traversing a link
(tests/tcsattpsv)
- tcsim attributes now have two priorities (normal and default, indicated with
the keyword "default"), and the global attributes can be set with the
command "attributes" (tests/tcsattset)
- tcsim: IP_PCK and IP6_PCK now set the "protocol" attribute with "default"
priority (tests/tcsattpro)
- updated kernel version example in tcng/README from 2.4.18 to 2.4.19 (change
log incorrectly stated this had been done already in 8u)
- added warning when taking prefix of IPv4 or IPv6 constant instead of field
(tests/constpfx, suggested by Jacob Teplitsky)
- added warning switch "constpfx" to control above warning (tests/constpfx)
- added new make target "immaculate" which also removes pre-built files
- tcc/ports.tc is now removed by "immaculate", not "clean"
- doc/Makefile can now re-generate EPS files (from FIG)
- .depend is now always removed on "spotless", never on "clean"
- various other minor "make clean" and "make spotless" corrections (most of
them reported by Jacob Teplitsky)
- added dummy targets "depend" and "dep" to doc/Makefile
- documentation: added section describing parameter propagation rules
- tcng/README now lists packages required for building and using tcng
(suggested by "raptor")
- setup.klib now reverts PSCHED_CLOCK_SOURCE to PSCHED_JIFFIES in case it was
changed in the source tree (reported by "raptor")
- runtests.sh got confused by END CONDITIONAL followed by BEGIN CONDITIONAL
(tests/tstcond)
- tcc let various types of "drop on" slip through, crashing it later
(tests/dropon)
- moved "drop on" test from tests/misfeatures to tests/dropon
- tcsim_filter failed to select by device name (tests/tcng-8x)
- documentation: -c was missing in "tcsim_filter tos=0xb8" example
- tcsim_filter included packet ID in output, although documentation claims it
doesn't, which makes more sense (tests/tcng-8x)
- tcc failed to refuse element ID zero in "fw" filter (tests/tcng-8x)
- updated tests/blocks, tests/cbqzero, tests/extndm, tests/location,
tests/misfeatures, tests/newsynmsc, tests/semicolon, tests/tag,
tests/tcng-5g, and tests/tcng-6w accordingly
- tcsim/packet6.def:IP6_HDR did not initialize $ip6_plen
- added pending issues related to protocol selection support to tcng/TODO
Version 8w (13-SEP-2002)
------------------------
- added root of meta fields (__meta) and definitions for meta-fields in meta.tc
(included via fields.tc)
- added some layer > 2 protocol numbers to values.tc
- tcsim's send command now has a "protocol" attribute (default: ETH_P_IP)
- updated documentation according to above changes
- ip_hdr and ip6_hdr now check meta_protocol if USE_META_PROTOCOL is #defined
- added protocol selection support to if_u32.c (tests/protu32)
- filters fw, tcindex, and u32, now default to ETH_P_ALL instad of ETH_P_IP
- updated tests/cbqroot, tests/egress, tests/named, tests/selpath,
tests/selpathcbq, tests/selpathdup, and tests/setpathgred accordingly
- configure now detects and prints kernel extra version (e.g. pre7)
Version 8v (12-SEP-2002)
------------------------
- configure is now compatible with 2.4.20 (pre-release, tested with pre6)
- tcsim/setup.klib: added struct notifier_block declaration for 2.4.20-pre6
compatibility
- tcsim/setup.klib: disables psched_tick (added in 2.4.20) when terminating
- added HTB and its various dependencies to the tcsim kernel build process
- runtests.sh now only counts tests instead of running them if environment
variable TCNG_TESTS_COUNT is set
- runtests.sh: added conditional test execution (tests/tstcond)
- runtests.sh: added command runtests for regression testing the regression
test script
- README: described how to build tcsim with HTB support (tests/htb)
- tcsim now sets printk log level to KERN_WARNING (4)
- tcsim: added option -k <number> to set kernel logging threshold
- updated documentation accordingly
- added "help" target to top-level Makefile
Version 8u (12-AUG-2002)
------------------------
- updated kernel version example in tcng/README from 2.4.18 to 2.4.19
- configure is now compatible with 2.4.19 (final release)
- tcc refused to left-shift 32 bit values by 0 bits (tests/tcng-8u)
- configure now checks for defective cpp (reported by "raptor")
- added undocumented options --kversions and --iversions to configure
- added script build/findsrc to locate source files
- "make tcsim-rpms" now uses any supported version of kernel and iproute2, not
only the suggested one
- added more experimental code for FSM-based classification (not yet useful)
- documentation: tcsim figure still called tcsim_filter and tcsim_plot
"filter.pl" and "plot.pl"
Version 8t (16-JUL-2002)
------------------------
- tcc: changed some "error"s to "lerrors"s (by Jacob Teplitsky)
- updated tests/tcng-4i accordingly
- tcc selected CBQ class 0 when using negation, causing the kernel to busy loop
(tests/cbqzero; reported by Bert Hubert)
- updated tests/cbqroot accordingly
- tcsim/cfg.[ly] claimed their names were tcsim.[ly]
- tcsim allowed second and jiffie values to begin with opening square bracket
(tests/tcng-8t)
- tcsim now supports SI prefixes "M", "k", "m", and "u" for second and jiffie
values (tests/tcssi)
- tcsim now supports relative time for "time" and "until" (tests/tcsrelt)
- updated documentation according to above two changes
- copied acknowledgements from README to documentation preamble
- began adding support for FSM-based classification to external interface
(untested and undocumented)
- changed "-C" to "nounspec" in all test titles of tests/defdsm
- RPM build didn't build "shared" directory introduced in tcng 8s
Version 8s (21-JUN-2002)
------------------------
- merged u128.[ch] from tcsim and tcc into shared/libtcngmisc.a
- tcsim now sets the line style globally, such that it can be overridden with
-cmd, e.g. -cmd "set data style linespoints"
- tcsim_plot didn't check return value from system (reported by Bodo Bauer and
Don Provan)
- tests/tcng-8q exercises masking via offset and size (suggested by Jacob
Teplitsky)
- merged ipv4_host/ipv6_host from tcc and evaluate_ipv4 and evaluate_ipv6 from
tcsim into shared/libtcngmisc.a
- tcc and tcsim did not accept address 255.255.255.255 (tests/tcng-8q)
- scripts/update-port-numbers.sh: increased ports file update interval from one
week to 92 days, and switched to using temporary file for download
- documented that "." does not work as an operator and therefore can't be used
with parentheses (tests/misfeatures)
Version 8r (31-MAY-2002)
------------------------
- tcsim: added out_of_line_bug to linux/kernel.h for compatibility with recent
2.4.19 pre-releases (tested with 2.4.19-pre9)
- tcsim: added min_t to linux/netdevice.h for compatibility with recent 2.4.19
pre-releases (tested with 2.4.19-pre8)
- doc/Makefile now strips extraneous meta-information from EPS included in
Postscript output when converting from DVI to Postscript
- fixed truncated comment in build/tcsim.spec.in
- build/tcng.spec.in: added conflict between current tcc and tcc-devel < 7r
- tcsim_plot: new option -cmd gnuplot_command to pass commands to gnuplot
- updated doc/tcsim.inc accordingly
- doc/tcsim.inc: tcsim_filter synopsis did not include -jpeg and -png
Version 8q (26-MAY-2002)
------------------------
- removed doc/external.tex and doc/build.asc
- flagged tcc/README, tcc/LANGUAGE, and tcsim/README as obsolete
- added much improved documentation in doc/
- upgraded scripts/t2x.pl to version "26-MAY-2002" (various improvements)
Version 8p (22-MAY-2002)
------------------------
- added %f format to sprintf (tests/sprintf)
- added "uninstall" target to tcng/Makefile
- added section comments to tcng/Makefile
- tcsim now pretty-prints enqueuing results, as it only did when tracing
(tests/tcsenq)
- updated tests/trace accordingly
- scripts/trinity.sh now puts $topdir/bin first in the PATH, to avoid getting
confused by installed version of tcng
Version 8o (21-MAY-2002)
------------------------
- if execvp fails, now also tcsim prints the path of the CPP it tried to run
(reported by munro)
- tcsim/packet6.def initialized fictitious $ip6_proto instead of $ip6_nxt
- tcsim/packet4.def: changed size prefix of $ip_src, $ip_dst, and $igmp_group
from nl: to ipv4:
- added optional "mpu" (minimum policed unit) parameter to metering macros,
with default value 0B (tests/mpu)
- added support for buckets with non-zero mpu parameter to if_u32.c (tests/mpu)
- police.c:dump_police_tc issued mpu as rate, not as size
Version 8n (17-MAY-2002)
------------------------
- forgot to include tests/sprintf in distribution, oops
- sprintf ignored leading zero in format string (tests/sprintf)
- sprintf caused tcc to abort when processing %% with a format specification
yielding not exactly one character (tests/sprintf)
- sprintf now also supports octal output (%o), and precisions other than "*"
(tests/sprintf)
- documented further IPv6 constraints in TODO
- tcsim_filter now prints snapshots before processing events at the same time
- tcsim_filter now sorts snapshots
- added regression tests for tcsim_filter's -s option, and the corresponding
bypass in tcsim_plot (tests/tcssnap)
- tcsim_plot ignores snapshots from tcsim_filter if writing the plot to
standard output (tests/tcssnap)
- ".ipv6" test was missing in tests/ipv6
- updated change log entry of version 8d accordingly
Version 8m (17-MAY-2002)
------------------------
- util.c:alloc_sprintf advanced pointer too far on %.*s
- util.c:alloc_sprintf mis-calculated length if string is shorter than
precision
- tcng: added new function sprintf(fmt,...) with Perl-like semantics
(tests/sprintf)
- tcsim_filter: new option -s <time> to generate counter snapshot (prefixed by
"# ") at specified time
- tcsim_plot copies lines beginning with "#" to standard output
Version 8l (16-MAY-2002)
------------------------
- new Makefile target "valgrind" to run all regression tests under Valgrind
- rel_access over-optimized <= and >= with masked access, yielding incorrect
classifiers (tests/relmask)
- added external program tcc-ext-null that blackholes input, which is useful
for performance tests
- updated Makefile, build/tcng.spec.in, and scripts/symlinks.sh according to
above change
Version 8k (16-MAY-2002)
------------------------
- iflib_arith.c:ne_to_eq now also supports IPv6 addresses (tests/ipv6relne)
- iflib_arith.c:rel_general now also supports IPv6 addresses (tests/ipv6relge)
- updated tests/ipv6relar accordingly
- removed obsolete entries from TODO
Version 8j (14-MAY-2002)
------------------------
- tcsim_plot still called tcsim_filter filter.pl (tests/tcng-8j)
- tcsim_plot, tcsim_filter, and tcsim_pretty still called themselves in
comments plot.pl, filter.pl, and pretty.pl, respectively
- added tcsim_plot to programs recognized by scripts/runtests.sh
- "egress" classes were not converted to "dsmark" when using tc output
(tests/tcng-8j)
- tcsim_plot now writes to standard output if the file name for -p, -png, or
-jpeg is "-"
- tcsim_plot now sets output to /dev/null before terminating, to avoid plotting
twice
- added rules for common configurations of srTCM and trTCM to if_u32.c
(tests/u32srtcm, tests/u32trtcm)
- if_u32.c:issue_actions ignored the do_actions flag and generated actions
at each phase, which would yield invalid advanced meters (like trTCM)
Version 8i (14-MAY-2002)
------------------------
- tcc: -xall:... implies "all" (tests/extall, suggested by Jacob)
- iflib_arith.c: rel_math, rel_to_eq, and rel_eq_or now also support IPv6
addresses (tests/ipv6relar)
- updated TODO accordingly
Version 8h (30-APR-2002)
------------------------
- tests/intro was not included in distribution
- constant overflow in multiplication and bit-shifts now yields an error
(tests/range)
- constant overflow caused by right-shift of access now yields a warning
(tests/range)
- updated tests/access and tests/ipv6 accordingly
- attempting to take the modulo of an address now yields an error
(tests/tcng-8h)
- tcc/named.c:ipv6_host always used AI_NUMERICHOST, even if allow_dns was set
- tcc/tcng.y: clarified that "host" must be identical to "host4"
- tcsim now supports IPv6 addresses and 128 bit arithmetic (tests/ipv6tcs)
- tcsim has new type qualifiers "ipv4" and "ipv6" (tests/ipv4tcs,
tests/ipv6tcs)
- split packet.def into packet4.def and packet6.def, with new packet.def that
includes both
- updated Makefile, build/tcsim.spec.in, and scripts/symlinks.sh according to
above change
- added remaining pending IPv6 issues to TODO
Version 8g (30-APR-2002)
------------------------
- tcsim now accepts an optional unit name after the interface rate
(tests/tcsiru)
- changed tcc/iflib_arith.c:rel_access to use 128 bit arithmetic
- updated tests/access accordingly
- if_u32.c and if_ext.c now support 128 bit matches (tests/ipv6u32 and
tests/ipv6ext)
- new tcc include file default.tc, which is included by default (tests/definc)
- split fields.tc into fields4.tc and fields6.tc, with new fields.tc that
includes both
- updated Makefile, build/tcng.spec.in, and scripts/symlinks.sh according to
above two changes
- new tcc option -n to suppress inclusion of default.tc (tests/definc)
- updated tests/cpp31 accordingly
Version 8f (29-APR-2002)
------------------------
- oops, 8e had wrong release date
- tcsim/usvc.c:rtnl_open did not initialize rth->seq, yielding a complaint from
Valgrind
- removed corresponding sections from build/valgrind.supp.in
- configure is now compatible with iproute2-2.4.7-now-ss010803, 010824, and
020116(-try)
- tcng/README now recommends to download iproute2-2.2.4-now-ss010824.tar.gz
(this also affects tcsim.spec)
Version 8e (26-APR-2002)
------------------------
- added new operators "host4" and "host6" to processs IPv4 and IPv6 addresses,
respectively (tests/ipv4, tests/ipv6)
- tcng.l now recognizes RFC2373-style IPv6 addresses (tests/ipv6,
tests/misfeatures)
- print_data can now print IPv6 addresses (tests/ipv6)
- decisions with non-logical operators are now caught earlier (tests/decerr)
- various minor fixes in nascent but still unusable IPv6 support (tests/ipv6)
Version 8d (25-APR-2002)
------------------------
- IPv4 addresses have now their own first-class data type (tests/ipv4)
- in debugging output and variable use output, IPv4 addresses are now printed
as dotted quads instead of hexadecimal integers
- updated tests/named2 accordingly
- added size qualifiers "ipv4" and "ipv6" (tests/ipv4, tests/ipv6)
- dotted quads and "host" now yield IPv4 addresses instead of integers
(tests/ipv4)
- "/" becomes a mask operator when applied to an IPv4 address (tests/ipv4)
- added partial (useless) support for IPv6 addresses
- added 128 bit arithmetic operations in u128.[ch]
- print_expr now also prints an operator's type if it is not dt_none, dt_unum,
or dt_decision
- fields.tc: changed type of ip_src, ip_dst, and igmp_group from .nl to .ipv4
(tests/ipv4)
- inside tcng.y, FIELD_NAME was of type char * instead of FIELD *
Version 8c (24-APR-2002)
------------------------
- scripts/runtests.sh: added command-line option -g for using Valgrind
(see http://developer.kde.org/~sewardj/)
- added Valgrind suppression file build/valgrind.supp.in
- added fields for old-style TOS octet (RFC791) to idiomatic.tc (suggested by
Jacob)
Version 8b (25-MAR-2002)
------------------------
- merged class of ingress/egress was sometimes referenced after freeing,
yielding weird results or crashes (tests/merged, reported by Jacob)
- tcc now warns that class for shared qdisc should be implicit (tests/merged)
- added warning switch "explicit" to control above warning (tests/merged)
- updated tests/classvar, tests/dpcwng, tests/egress, tests/extqch,
tests/ingin, and tests/tcng-7n accordingly
Version 8a (15-MAR-2002)
------------------------
- changed tests/intro to use "egress" instead of "dsmark"
- improved error message when attempting to use class selection path with
non-class (tests/tcng-8a, reported by Jacob)
- updated tests/nullcsp accordingly
- "tc" target didn't call egress "dsmark", and forgot to add default index
parameter (tests/tcng-8a)
- updated tests/egress accordingly
Version 7z (12-MAR-2002)
------------------------
- runtests.sh: added commands tcsim_unadorned and tcc_unadorned to invoke the
respective program without adding options or arguments
- changed tests/tcng-6z to use tcsim_unadorned and tcc_unadorned instead of
tcsim/tcsim and tcc/tcc, respectively
- default fifos are no longer added to yet-to-be-numbered (by a class selection
path) class, where they then then caused a complaint about numbering a class
with shared qdisc (tests/tcng-7z, reported by Jacob)
Version 7y (12-MAR-2002)
------------------------
- added new qdisc "egress" that is synonymous to "dsmark", except that it
implies "default_index 0", and that using it as an "inner" qdisc produces a
warning (tests/egress)
- changed all error and warning messages mentioning "dsmark" to say "egress" if
using egress (tests/egress)
- updated tests/extndm accordingly
- added regression test for dsmark's unnumbered and parameterless class warning
(tests/dpcwng)
- fixed off by one error in dsmark index out of range diagnostic
(tests/tcng-7y)
- updated tests/dsind and tests/tcng-1i accordingly
- ingress qdisc generated invalid default classification decision dt_class
instead of dr_class (tests/tcng-7y)
Version 7x (12-MAR-2002)
------------------------
- tests/ingin: added tcc-ext-echo example
- added introductory example script tests/intro (suggested by Jacob)
- policer id assignment is now almost O(n), instead of O(n^2) (tests/fastpol)
- tcc/Makefile did not rebuild ports.tc after "make clean"
Version 7w (11-MAR-2002)
------------------------
- tcc: moved class selection path code to separate file csp.c
- dsmark now accepts class zero generated via class selection paths
(tests/tcng-7w)
- class selection paths can now be empty (tests/nullcsp)
- tcng now allows ingress qdisc to have a child qdisc, like dsmark
(tests/ingin)
- updated tests/ingext accordingly
- support for class selection paths is now qdisc flag (tests/tcng-7w)
- updated tests/extndm accordingly
Version 7v (7-MAR-2002)
-----------------------
- variable name lookup now uses a hash instead of a linear search
- tcc: added undocumented option -H to dump hash statistics (tests/varhash)
- iflib_actdb.c: when assigning preferred action numbers, use an unsorted
list of preferred numbers first, then a sorted list, instead of always
walking the whole action tree (tests/fastpref)
Version 7u (5-MAR-2002)
-----------------------
- removed "ingress" qdisc restriction when using -Xx,all (tests/ingext)
- changed error messages for ingress qdisc to include location (tests/ingext)
- in diagnostics related to an inner qdisc, gred and dsmark now report qdisc
location, not class location (tests/tcng-7u)
- updated tests/grederr accordingly
Version 7t (4-MAR-2002)
-----------------------
- tcsim/klink.c: backed out accidential (but harmless) inclusion of linux/ip.h
- tcc/ext/tccext.c: allocation for bit strings is now rounded to the next
full machine word (suggested by Jacob)
- printing the usage of redefined variables containing structures crashed tcc
(tests/tcng-7t, reported by Jacob)
- increased packet size in tests/barrier because too short packets could crash
dsmark since tcsim pretends they're IPv4 anyway
Version 7s (4-MAR-2002)
-----------------------
- updated kernel version example in tcng/README from 2.4.17 to 2.4.18
- configure is now compatible with 2.4.19 (pre-release, tested with pre2),
2.5.3, and 2.5.4
- README: clarified valid kernel versions, i.e. that 2.5.5 and above are
currently not supported
- began adding "Bivio Networks" where "Network Robots" is used, or replacing
the latter
Version 7r (1-FEB-2002)
-----------------------
- tccext: added new construct "barrier", indicated by
TCCEXT_RULE->actions == NULL, to delimit uncombined, locally optimized rule
sets
- updated tccext.h, tccext.c, echo.c, and match.c accordingly (tests/barrier)
- tccext: new configuration keyword "nocombine" to keep tcc from merging ifs
into a single large expression (suggested by Jacob; tests/nocombsta,
tests/nocombmet)
- tcc-ext-test now also accepts option "nocombine" (tests/barrier)
Version 7q (31-JAN-2002)
------------------------
- "drop with u32" was missing in version 7o change log entry
- changed if_ext_act.c to store pointers to buckets/classes, instead of values
extracted from them
- tcc: renamed if_ext_act.c to iflib_actdb.c to reflect sharing with if_u32.c
- u32 target now supports SLB and DLB meters (tests/u32slb, tests/u32dlb)
- tcc incorrectly required "mtu" if "peakrate" was not specified
(tests/tcng-7q)
- meters.tc: meter test macros did not enclose argument in parentheses, and
grammar did not allow parentheses around policer definition (tests/tcng-7q)
- meters.tc: meter test macros now evaluate macro argument only once
(tests/metmac)
Version 7p (29-JAN-2002)
------------------------
- fixed buggy buffer use in location.c (tests/tcng-7p)
- in variable use file, each structure entry now yields a separate line, even
if the whole structure was generated in a single assignment (tests/struct)
- data_clone left parent pointer of top-level structure elements uninitialized
- compound expressions may now also include field definitions (tests/compound)
- meters.tc now has macros SLB, DLB, srTCM, and trTCM which are used
$var = SLB(...) instead of set_SLB($var,...) (tests/meters2)
Version 7o (29-JAN-2002)
------------------------
- tcc: -S now omits separator entirely
- updated tests/tcng-7n accordingly
- back-ported match generation back-end from external interface to u32, to
allow for transparent elimination of contradictory matches
- updated tests/tcng-2o accordingly
- also u32 targets now propagates actions to leaf nodes
- u32 did not generate correct default classification when negating
(tests/tcng-7o)
- u32 target now supports "drop" action (tests/u32drop)
Version 7n (27-JAN-2002)
------------------------
- tcc: undocumented option -S joins structure entries in variable use output
with an underscore instead of a dot (tests/tcng-7n)
- dsmark now auto-assigns class number if using only one class, so that this
class has the implicit qdisc (reported by Jacob; tests/tcng-7n)
- values.tc now complains if included directly, not via fields.tc
(tests/includes)
- tcsim's packet.def pretends to be fields.tc when including values.tc
(tests/includes)
- new header file idiomatic.tc, for inclusion from fields.tc, with convenience
macros for idiomatic patterns in TCP/IP packets (tests/idiomatic)
- updated scripts/symlinks.sh and build/tcng.spec.in to include idiomatic.tc
- dsmark did not detect duplicate class numbers (tests/tcng-7n)
Version 7m (26-JAN-2002)
------------------------
- added first-class data type "bucket", which is similar to "police", but it
only takes parameters "rate", "burst", "mpu", "pragma", and "tag", has no
attached decisions, and cannot be used in filter ... police ... expressions
(tests/bucket)
- updated meters.tc to use buckets instead of policers (the "mtu" parameter is
still accepted, but now ignored)
- tcc/data.[ch]: removed ancient #ifdefs that controlled whether data_destroy*
really free data
- added compound expression construct { $var = ...; ...; expression; }
(tests/compound)
- added structure data type (associative arrays) (tests/struct)
- updated tests/tcng-1h and tests/typerr to reflect changed diagnostics due to
parser modifications
- unit suffixes and size qualifiers are now processed in parser instead of
scanner, reducing name space restrictions (tests/tcng-7m)
- tcc accepts (and ignores) option -S again (will be used for compatibility
mode in the future)
Version 7l (25-JAN-2002)
------------------------
- several small corrections in tcc's usage output
- tcc: removed option -S (obsolete since version 6w)
- updated tests/tcng-6w accordingly
- configure is now compatible with 2.5.3 (pre-release, tested with pre5)
- tcsim/setup.klib: changed af_netlink.c filter for 2.5.3-pre5 compatibility
Version 7k (15-JAN-2002)
------------------------
- renamed tcsim's pretty.pl to tcsim_pretty
- updated tcsim/README accordingly
- added tcsim_pretty to tcsim RPM
- upgraded scripts/t2x.pl to version "15-JAN-2002" (adds %%end directive and
fixes meta-characters as \verb deliminators)
- several small corrections in tcsim's usage output and tcsim/README
Version 7j (1-JAN-2002)
-----------------------
- updated kernel version example in tcng/README from 2.4.16 to 2.4.17
- configure is now compatible with 2.4.18 (pre-release, tested with pre1),
2.5.2 (pre-release, tested with pre5)
- field roots are now syntactically equivalent to fields and can be combined
with offsets and size qualifiers (tests/tcng-7j)
- updated tests/grpalloc accordingly
- corrected missing access size adjustment uncovered by field root syntax
change
- if_ext.c: added assertion to catch above type of bug
Version 7i (31-DEC-2001)
------------------------
- credits at the beginning of README now also mention Jacob Teplitsky's
contributions
- added new tcng construct "field_root" to set non-zero base offset group
(tests/froot)
- updated tcc/LANGUAGE accordingly
- tcc now assigns offset group numbers starting with 100 (defined in
config.h:AUTO_OFFSET_GROUP_BASE, tests/grpalloc)
- updated tests/bitfield, tests/extmult, tests/field, tests/field2,
tests/precond, and tests/tcng-2u accordingly
Version 7h (22-DEC-2001)
------------------------
- if_ext.c: bits from impossible matches could "leak" to next match
(tests/tcng-7h)
- updated tests/precond accordingly
- added test <= 5 to tests/relop
- tcc: added option -O to enable optimizations
- iflib_arith.c: added prefix-based conversion of relational operators, enabled
with -Oprefix (suggested by Jacob; tests/relpref)
- iflib_arith.c: != can now be turned into multiple tests for equality, enabled
with -One (tests/ne)
- common subexpression elimination can now be disabled with -Onocse (tests/cse)
Version 7g (18-DEC-2001)
------------------------
- macro expansions used by tcc_var2fix.pl were incompatible with Red Hat cpp
2.96-54; rewrote tcc_var2fix.pl to use different expansion mechanism
- tcc gave syntax error for file beginning with semicolon (tests/tcng-7g)
- tcsim treated semicolons after whitespace in tcc input as comments
(tests/tcng-7g)
Version 7f (14-DEC-2001)
------------------------
- split tcc/fields.tc into fields.tc and values.tc to allow inclusion of the
latter by packet.def
- updated tcc/LANGUAGE accordingly
- added tcsim/packet.def, a modernized version of ip.def (tests/packet)
- -N skips most optimizations in the "old" algorithm, for experiments with
"smart" backends
- mask operator generated mask 0 instead of 0xffffffff for ":32" (reported by
Jacob; tests/tcng-7f)
Version 7e (13-DEC-2001)
------------------------
- the use of bare words as strings in expressions or in warning labels is now
a syntax error
- updated tests/bare, tests/host, tests/ports, tests/tag, and tests/tcng-7c
accordingly
Version 7d (13-DEC-2001)
------------------------
- tcc now issues a warning if treating a bare word as a string in expressions
and in warning label lists (tests/bare)
- updated tcc/LANGUAGE accordingly
- updated examples-ng/prio+rsvp, tests/extrasemi, tests/host,
tests/misfeatures, tests/named, tests/named2, tests/ports, tests/semicolon,
tests/tag, tests/varredef, tests/waprpos, and tests/warn accordingly
Version 7c (13-DEC-2001)
------------------------
- fields.tc: changed definitions of ip_RF, ip_DF, ip_MF, tcp_URG, tcp_ACK,
tcp_PSH, tcp_RST, tcp_SYN, and tcp_FIN to return 0 or 1, not 0 or 2^n
(tests/bitfield)
- Makefile now uses rpm --eval instead of build/dummy.spec hack
- removed build/dummy.spec
- filter "route" parameter "fromif" now accepts constant expressions, and no
longer requires fixed string (tests/tcng-7c)
Version 7b (11-DEC-2001)
------------------------
- added option -N or --with-tcsim to "configure"
- tcc/iflib-red.c: fixed gcc 3.1 syntax incompatibility
- changed tests/cppdollar to ignore extra blank lines emitted by cpp 3.1
- tcc/location.c: changed default file name from "(stdin)" to "<stdin>", for
cpp 3.1 compatibility (tests/cpp31)
- tcc/location.c now inserts "<stdin>" when encountering empty file name, e.g.
from older versions of cpp (tests/cpp31)
- updated tests/bands, tests/basic, tests/blocks, tests/cbqroot, tests/defdsm,
tests/drop, tests/dsind, tests/expensive, tests/extcbq, tests/extflt,
tests/extlocbas, tests/extlocext, tests/extndm, tests/fredef, tests/grederr,
tests/host, tests/ifnamsiz, tests/location, tests/misfeature, tests/named,
tests/newsynmsc, tests/phasep, tests/ports, tests/selpath, tests/setpathcbq,
tests/selpathdup, tests/selpathext, tests/semicolon, tests/tag,
tests/tcng-1g, tests/tcng-1h, tests/tcng-1i, tests/tcng-1j, tests/tcng-2e,
tests/tcng-2k, tests/tcng-3k, tests/tcng-3m, tests/tcng-4f, tests/tcng-4i,
tests/tcng-4u, tests/tcng-5a, tests/tcng-5c, tests/tcng-6t, tests/tcng-6w,
tests/tcng-6x, tests/tcng-7a, tests/typerr, tests/variables, tests/varredef,
tests/waprpos, and tests/warn accordingly
- updated tcng/tcc/README accordingly (i.e. also location map uses "<stdin>"
instead of "-")
- added -X phase "P" for tcsim's cpp
- tcsim/cfg.l also follows "<stdin>" convention (tests/cpp31)
- changed tests/modules to work around strange environment variable propagation
in recent version of bash
- scripts/run-all-tests: work-around for case insensitive character range bug
in some versions for bash
Version 7a (7-DEC-2001)
-----------------------
- tcc -E -E no longer refuses ">" and ">=" as "expensive" even though
iflib_arith.c:rel_general could handle them (tests/tcng-7a)
Version 6z (6-DEC-2001)
-----------------------
- updated kernel version example on tcng/README from 2.4.14 to 2.4.16
- configure is now compatible with 2.4.16, 2.4.17 (pre-release, tested with
pre5), 2.5.0, and 2.5.1 (pre-release, tested with pre5)
- if tcsim couldn't exec tcc, it claimed cpp was missing
- tcc.c:main did not allocated room for -$ in cpp argv, causing tcsim to
segfault if invoked without arguments (tests/tcng-6z)
- tcc/Makefile: added comment explaining why "make clean" and "make spotless"
don't remove file "port-numbers"
- tcc did not accept semicolons immediately following opening curly brace
(tests/tcng-6z)
Version 6y (20-NOV-2001)
------------------------
- tcc/README: added unnamed scopes to description of variable usage output
- tcsim now allows double quotes around interface names (tests/tcng-6y)
- tcc-ext-test subsystem now removes .so, .o, and .out files after usage
- fields.tc: fragment flag values were shifted by four bits (tests/tcng-6y)
- updated tests/subbyte accordingly
Version 6x (19-NOV-2001)
------------------------
- tcc and tcsim now invoke cpp with the option -$ (tests/cppdollar)
- tcng: blocks ({...}) are allowed anywhere inside other blocks (tests/blocks)
- updated tcc/LANGUAGE accordingly
- removed comment explaining past syntax weirdness from tcc/tcng.y
- lexer read token past closing curly brace with inner scope (tests/tcng-6x)
- tcc_var2fix.pl generated macros with same name as variables, causing
conflicts when using -$
- removed explicit detection of old-style syntax error of named device without
block (tests/newsynmsc)
- like classes and filters, now also qdiscs can be extended (tests/extend)
- util.h:__DP_CHECK did not print error location (tests/tcng-6x)
- on SIGINT, tcc tried to close stream even if already closed, failing
assertion
- added external script tcc-ext-abort that simply sends a SIGABRT to itself
- tcc now fully decodes and reports exit status and signals from external
program (reported by Ronald Murphy; tests/tcng-6x)
Version 6w (15-NOV-2001)
------------------------
- tcc's usage output did not mention -u in the synopsis
- tcc: backwards-compatibility -S no-op now yields a warning (tests/tcng-6w)
- filter.c:unum_only now prints source code location on error (tests/tcng-6w)
- tcc did not refuse filters other than tcindex on child qdiscs or their
classes when using "all" with external interface (tests/tcng-6w)
- tcc adds empty classifier if classifier is missing when using "all" with
external interface (tests/tcng-6w)
- updated tests/extlocbas, tests/pragma, tests/tcng-4d, tests/tcng-4l,
tests/tcng-4o, and tests/tcng-5s accordingly
Version 6v (9-NOV-2001)
-----------------------
- updated kernel version example on tcng/README from 2.4.13 to 2.4.14
- configure is now compatible with 2.4.15 (pre-release, tested with pre1)
- iflib_red.c:bubble_or mis-converted (a || side_effect) && b (tests/tcng-6v)
- iflib_act.c:iflib_actions now does second round of optimizations to resolve
constants hidden between actions (see above)
- updated tests/misfeatures accordingly
- type error messages now contain the type found, and frequently also the type
expected (tests/typerr)
- updated tests/ports, tests/tcng-6t accordingly
Version 6u (26-OCT-2001)
------------------------
- tcc and tcsim did not look at exit status of cpp subprocess (reported by
Ronald Murphy; tests/tcng-6u)
- changed tcc_var2fix.pl to use a field instead of a dummy macro assignment,
such that no cleanup is needed after invoking the "next" macro, and
continuation (i.e. semicolon or curly brace) following the generated macro
can be applied to the "next" macro
Version 6t (25-OCT-2001)
------------------------
- assert in qdisc.c:add_default_fifos assumed qdisc was already sanity-checked
(reported by Ronald Murphy; tests/tcng-6t)
- updated kernel version example on tcng/README from 2.4.12 to 2.4.13
- configure is now compatible with 2.4.14 (pre-release, tested with pre1)
- dropped tcc/tcm.tc from the distribution (and all its offsprings)
- added scripts/update-port-numbers.sh and scripts/extract-port-numbers.pl to
download IANA port-numbers file and to convert it a format suitable for
inclusion by tcng scripts (tests/ports)
- added ports.tc to source distribution and to all tcc binary distributions
- in expressions X+0, 0+X, and X-0, type of X was not verified (tests/tcng-6t)
- tcsim/ip.def now uses ports.tc for port definitions (PORT_DNS changed to
PORT_DOMAIN)
- updated examples-ng/u32, examples/u32, tests/ext, and tests/trace accordingly
- removed description of ambiguous drop with old syntax from tcc/LANGUAGE
Version 6s (23-OCT-2001)
------------------------
- cleaned up "TODO"
- fields.tc: ip_RF, ip_DF, ip_MF, tcp_URG, tcp_ACK, tcp_PSH, tcp_RST, tcp_SYN,
tcp_FIN no longer contain explicit comparison, allowing tcc to perform better
optimizations
- updated tests/subbyte accordingly
- moved scripts/var2fix.pl to tcc/tcc_var2fix.pl
- scripts/symlinks.sh links tcc/tcc_var2fix.pl to bin/
- build/tcng.spec.in: included tcc/tcc_var2fix.pl in the tcc-devel RPM
- scripts/symlinks.sh tried to link to directory with ln -s instead of ln -sfn
Version 6r (23-OCT-2001)
------------------------
- alternate device name syntax "dev <expression>" (suggested by Simon Nuthall;
tests/named2)
- updated tests/location and tests/tag accordigly (used device name "dev")
- updated tcc/LANGUAGE accordingly
- enabled "new" algorithms (except for the "new" bit-tree) and removed some
old code (iflib_red.c:optimize_eq, shift handling in iflib_bit.c:eq_fsm,
special treatment of -N in tcc.c:main)
- updated tests/arith, tests/access, tests/bittest, tests/buckfill,
tests/misfeatures, tests/tcng-2k, tests/tcng-5z
- moved various shift and mask related problems from tests/misfeatures to
tests/tcng-6r
Version 6q (23-OCT-2001)
------------------------
- ext_io.c now cleans up temporary files when interrupted with SIGINT
- added scripts/run-all-tests which does what the name suggests
- TCNG_TESTS_BINDIST and tcng-tests RPM include run-all-tests
- removed toys/cbq and toys/if
- updated toys/cspnest and toys/tunnel to use new syntax
- -E -E now reports negation only when encountering it (tests/bittest)
- expressions without relational operator are automatically treated as X != 0
(added in 6o; tests/bittest)
- iflib_not optimizes double negation and single bit tests (tests/bittest)
Version 6p (23-OCT-2001)
------------------------
- switched tcc to exclusively use new syntax (also affects meters.tc and
var2fix.pl)
- cleaned up syntax for classes, filter specifications in selections, and the
two "... if" cases previously requiring %prec
- updated tests/newsynmsc and tests/semicolon accordingly
- fixed minor glitch in tests/extrasemi
- updated tcc/LANGUAGE
Version 6o (23-OCT-2001)
------------------------
- tcc/tcng.y: changed rules for assignments, qdiscs bodies, class bodies,
filter bodies, and selector lists from right-hand side to left-hand side
recursion to avoid overflowing YACC stack
- tests/misfeatures: noted that dsmark with class selection paths gets confused
if nounspec is set, the classification is not self-contained, and
default_index points to a non-existent class number
- changed /.*something.*/ to /^.*something.*/ in sed regexps of tests/buckfill
and tests/tcng-6j, making the tests up to four times faster (this was the
"very slow tcsim send" bug)
- tcc: -N -N didn't switch to "old" algorithm
- tcc: -N -N -N switches to common "access rel constant" conversion algorithm
iflib_arith:rel_access (tests/access)
- dump_failed now prints shorter "can't dump subexpression", and optionally
the reason of failure instead of the line number
- updated tests/additive, tests/access, tests/misfeatures, and tests/tcng-5q
accordingly
- changed if_u32.c:dump_eq and if_ext.c:dump_match to handle multiple ands
(previously filtered by iflib_red.c:optimize_eq)
- tcng.l used strtol to parse uint32_t, limiting all integer literals to 31
bits (tests/tcng-6o)
- tcsim's cfg.l used strtol to parse binary uint32_t (tests/tcng-6o)
Version 6n (20-OCT-2001)
------------------------
- "tag" parameter did not accept expressions (tests/tcng-6n)
- "pragma" parameter did not accept expressions (tests/tcng-6n)
- tests/misfeatures: "pragma" should accept normal expressions, not only
primary expressions
- tcc/meters.tc.in: all meter definition macros (set_*) now have optional
parameters "tag" and "pragma" to set the tag and one pragma for the buckets
generated (only with new syntax; tests/mettagpra)
- moved old TCM examples in toys/srtcm.tc and toys/trtcm.tc to tests/pol_ext
- tcng tests bindist and tcng-tests RPM no longer include toys/srtcm.tc and
toys/trtcm.tc
- prio now automatically raises default for "bands" parameter if necessary
(tests/bands)
- updated tests/tcng-4u accordingly
Version 6m (20-OCT-2001)
------------------------
- scripts/runtests.sh now invokes tcc with -S -S -S, and tcsim with
-Xc,-S -Xc,-S -Xc,-S -DTCNG_SEMICOLON
- converted examples-ng/* to new syntax
- converted tcc/example to new syntax
- converted toys/srtcm.tc and toys/trtcm.tc to new syntax
- de-crowded tests/arith, tests/host, tests/misfeatures, tests/named,
tests/tcng-1i, tests/tcng-1j, tests/tcng-1o, tests/tcng-2f, and tests/tcng-3g
- converted all regression tests to new syntax
- removed ambiguous syntax tests from tests/misfeatures
- removed ugly old syntax tests from tests/newsynmsc and tests/semicolon
- tests/tcng-5y showed spectacular failure of old syntax, with subtle syntax
ambiguity leading to subtle error in generated classifier
- TODO: removed entry for mythical __ file bug
Version 6l (19-OCT-2001)
------------------------
- extra semicolons are now allowed where one semicolon or a block end appears,
e.g. ;;; is equivalent to ; and }; is equivalent to } (tests/extrasemi)
- new syntax requires interface sections to be enclosed by curly braces
(tests/newsynmsc)
- new syntax does no longer allow filters specified in selectors to have their
own blocks (tests/newsynmsc)
- tcc now handles both old-style and new-style syntax for filters specified in
selectors (tests/newsynmsc)
- updated tests/semicolon accordingly
- documented new syntax in tcc/LANGUAGE
- tcc.c:main did not allocated room for -DTCNG_*SEMICOLON in cpp argv, causing
tcc to segfault if invoked without arguments
- empty tags are now ignored (updated tests/tcng-5a accordingly)
- empty pragmas are now ignored (updated tests/pragma accordingly)
- tags can now also be specified as "tag <string>" (updated tests/tag)
- strings are now first-class data types in the tcng language, can be compared
with relational operators, and can be concatenated with + (tests/string)
- updated tcc/LANGUAGE accordingly
- "host" can now be followed by an expression, not only a host name or IPv4
address (tests/named2)
- host, port, ipproto, and (ether) protocol parameters can now be also use
strings expression, not just string literals or numeric expressions
(tests/named2)
- variables now record the location where they are created, yielding much
better location information in warnings
- updated tests/location, tests/selpath, tests/tcng-3k, tests/tcng-5c,
tests/varredef, tests/waprpos, and tests/warn accordingly
- syntax changes changed the location indicated in some error messages. Updated
tests/named accordingly
- tcc/LANGUAGE: split parameters section to cover expressions in their own
section
Version 6k (19-OCT-2001)
------------------------
- fixed precond() example in tcc/LANGUAGE (reported by Ronald Murphy)
- tcng language will soon require semicolons at the end of constructs, unless
they end with a block, e.g. $x = 5 will be $x = 5; fifo will be fifo;
but prio { ... } will stay the same
- tcc can help migration with the undocumented -S option: without -S, behaves
like it did before, with -S it warns when using semicolons (for comments),
with -S -S semicolons no longer begin comments, and tcc warns if a semicolon
is missing somewhere, and with -S -S -S missing semicolons yield an error
(tests/semicolon)
- updated fields.tc accordingly (remains backwards-compatible)
- tcc adds -DTCNG_NOSEMICOLON to CPP options if no or only one -S it set,
-DTCNG_SEMICOLON if more than one -S is set
- meters.tc is now generated via macro-generating preprocessor
scripts/var2fix.pl
- updated meters.tc such that it is generated to contain a part with, and one
without semicolons (new files meters.tc.in and meters_nosemi.tc.in)
- duplicate global pragma location is reported more accurately
- updated tests/waprpos accordingly
Version 6j (17-OCT-2001)
------------------------
- Makefile: "tcc" has no dependency on "symlink", breaking RPM build in 6i
- tcc/location.c:file_open printed wrong file name on error
- meters.tc: trTCM_red fell through if packet conformed to Tc, but not to Tp
(tests/tcng-6j)
- if_ext_act.c:add_actions gave up too quickly when encountering unusual
expressions (tests/tcng-6j)
Version 6i (17-OCT-2001)
------------------------
- tcc and tcsim now print CPP's path if CPP isn't found (reported by Jacob)
- tcng-tests RPM no longer includes tests/usage, which can safely be tested in
a regular build environment, and is very location-dependent
- fields.tc: renamed fields "ip", "tcp", etc. to "ip_hdr", "tcp_hdr", etc.
- updated tests/classvar, tests/field, tests/tcng-4n, and tests/tcng-5y
accordingly
- described now consistent field naming convention in tcc/LANGUAGE
- tcm.tc now fails with an #error (was #warning) and will be removed very soon
- updated TODO
Version 6h (15-OCT-2001)
------------------------
- unless -B is set: -N is now enabled by default, and double -N switches off
-N (to reuse old regression tests for a while)
- updated tests/buckfill, tests/classvar, tests/expensive, tests/fastpath,
tests/relop, tests/tcng-5j, tests/tcng-5y, and tests/tcng-5z accordingly
- build/tc{ng,sim}.spec.in: %doc came before %defattr, which caused
documentation files to pick up wrong ownership
- meters.tc was not compatible with SuSE's CPP that identifies itself as
CPP 2.95.2 but appears to be different from the CPP that comes with GCC
2.95.2
Version 6g (15-OCT-2001)
------------------------
- tcc: moved generation of location map and variable use list before build
phase, so external programs can use these files
- doc/external.tex: clarified that tokens need to be added to a bucket not only
on "conform", but also on "count".
- removed corresponding (rather obscure) tests from tests/misfeatures
- tcc/ext/match.c and tcc/tcm_cls.c now refill buckets on "count" too
(tests/buckfill)
- iflib_red.c:prune_shortcuts sometimes removed count in "count ... || 1"
(tests/buckfill)
- tcm_cls.c now prints policer state if DEBUG is #defined
- added correct solution for double count test, and failure of "old" algorithm
(tests/misfeatures)
Version 6f (12-OCT-2001)
------------------------
- updated path to fields.tc in tcc/LANGUAGE
- added function "precond" that evaluates the preconditions of its argument
(tests/precond)
- added regression tests for bit and other sub-byte fields (tests/subbyte)
- fixed subtle pointer aliasing issues in field.c
Version 6e (12-OCT-2001)
------------------------
- updated kernel version example on tcng/README from 2.4.10 to 2.4.12
- configure is now compatible with 2.4.12 and 2.4.13 (pre-release, tested with
pre1)
- added #warning to tcm.tc, telling users to switch to meters.tc
- added test for count-count crash with -N -B to tests/misfeatures
- scripts/runtests.sh now searches PATH for executables
- build/Makefile: "variable" expansion sed scripts only expanded first
occurrence of "variable"
- TCSIM_BINDIST and tcsim-devel now also contain header files from
ulib/iproute2/include*, ulib/iproute2/tc/tc_{util,core}.h, toys/?rtcm.tc,
and all examples
- tcc/ext/tcc-ext-test is now relocatable via TCNG_TOPDIR
- make tcsim-rpms now also generates tcng-tests RPM
- trimmed usage lines of tcc and tcsim to avoid wrap-around if installed at
default location
Version 6d (11-OCT-2001)
------------------------
- added more regression tests for fields (tests/field2)
- fields in variables were expanded too early, i.e. at the time of assignment
instead of at the time of use (moved tests from tests/misfeatures to
tests/tcng-6d)
- pseudo parameter names for meter macros can now be macros themselves
(added tests to tests/meters)
- updated tests/expensive, tests/fastpath, and tests/tcm to use meters.tc
instead of tcm.tc
Version 6c (11-OCT-2001)
------------------------
- meters.tc: set_SLB sometimes used __dlb_ names, causing a variable
uninitialized error (tests/tcng-6c)
- added tests for SLB and DLB macros, and the set_* macros of srTCM and trTCM
(tests/meters)
Version 6b (11-OCT-2001)
------------------------
- tcng expression syntax didn't include unary minus, oops :-) (tests/tcng-6b)
- tcc/LANGUAGE acknowledges that there are "standard" header files and naming
conventions
- added tcc/meters.tc with improved TCM macros and single/double leaky bucket
macros, obsoleting tcm.tc
- fields in variables are expanded too early, i.e. at the time of assignment
instead of at the time of use, which can cause problems with preconditions
(tests/misfeatures)
Version 6a (10-OCT-2001)
------------------------
- extended tests/relop to check range 0-31 (was 0-16) to ensure better coverage
of upper bits
- tcc, tcsim: added -X phase "p" for tcc's cpp (tests/phasep)
- tcng: the "warn" directive can now appear anywhere where variables or fields
are allowed (tests/waprpos)
- tcng: the global pragma can now appear after global variables, fields, or
"warn" directives (tests/waprpos)
- updated tcc/LANGUAGE accordingly, described pragmas, and renamed the
"preamble" to "processing directives"
- tcng no longer allows the empty string as a pragma value (tests/pragma)
- tccext.c included keyword "pragma" among pragma values for qdiscs and classes
(updated tests/pragma)
- tcng/README now recommends to download iproute2-2.2.4-now-ss001007.tar.gz
instead of iproute2-current.tar.gz (this also affects build/tcsim.spec)
- build/Makefile: target "all" now depends on "rpmstuff"
Version 5z (10-OCT-2001)
------------------------
- "C" target didn't support < or >= (tests/tcng-5z)
- iflib_bit.c did not recognize matches with values larger than the field size
as always false (tests/tcng-5z)
- tcc can now translate relational operators with arbitrary constants
(tests/relop)
- added list of unfiled items to TODO
Version 5y (9-OCT-2001)
-----------------------
- new option -Wexpensive to warn about expensive operations (as opposed to -E,
which yields a fatal error; added tests to tests/expensive)
- variables can now be re-defined, just like fields (tests/varredef)
- new option -Wredefine (tests/varredef)
- updated tcc/LANGUAGE accordingly
- iflib_red.c:bundle could not handle multiple optimizations at the same level
and has fence-post error when optimizing expressions of the type (ab || a)
(tests/tcng-5y)
- updated tests/not accordingly
- oops, build/dummy.spec was never added (since tcng-5v)
Version 5x (5-OCT-2001)
-----------------------
- util.c: new function alloc_sprintf that acts as asprintf with error handling
- fixed about a dozen potential buffer overflows, many of them by using
alloc_sprintf
- if_c.c: changed asserts on bucket/result overflow to errorf; moved array size
definitions to config.h
- updated tests/additive according to above changes
- added and enabled data_destroy and data_destroy_1
- fixed calls to data_destroy* iflib_act.c and iflib_arith.c, and access after
destroy problems in iflib_red.c
Version 5w (5-OCT-2001)
-----------------------
- new external program tcc-ext-file that writes the configuration data to the
file specified with -Xx,file=<name>
- added tcc-ext-file to binary distributions
- child termination detection in tcc/ext_io.c was unnecessarily complicated and
caused a race condition between child termination and processing of errors
reported by child
Version 5v (4-OCT-2001)
-----------------------
- changed the names of filter.pl and plot.pl to tcsim_filter and tcsim_plot,
respectively
- updated tcsim/README, scripts/symlinks.sh, scripts/runtests.sh,
tests/pol_traffic, tests/tbf, tests/tcng-3i, and tests/usage accordingly
- scripts/runtests.sh: changed trinity.sh to "trinity" in order to eliminate
last remaining bash-ism
- updated tests/ext, tests/tcng-2u, and tests/usage accordingly
- build/tcng.spec.in: split tcc RPM into tcc and tcc-devel
- added echoh.h to tcc-devel RPM
- Makefile: changed dependencies on ".distisuptodate" to the equivalent "dist"
- Makefile: added target "rmaltdist" to remove all binary distributions in
tar.gz files or in RPMs, and any SRPMs, leaving only source distributions
created with "make dist"
- "make rpm" now symlinks tcng source instead of copying it
- added experimental spec file build/tcsim.spec.in and helper file
build/dummy.spec to build tcsim RPM (use with make tcsim-rpms )
- Makefile: re-structured RPM-related targets
- TCSIM_BINDIST now also includes directories lib/tcng/include/klib/include and
lib/tcng/include/klib/kernel/include
- added missing dependency of tcsim on symlinks
Version 5u (3-OCT-2001)
-----------------------
- TODO: removed obsolete remark about bubble_and
- tcc: removed obsolete options -A, -C, and -F
- tcc: new option -W[no]... to enable/disable specific warnings
- -Wtruncate enables warning when truncating value ranges (disabled by default;
used to be always enabled)
- updated tests/tcng-2e accordingly
- -Wnounused disables unusued variable warning (enabled by default)
- updated tests/devbra and tests/tcng-5g (also removing several of useless -w),
and tests/extlocbas and tests/misfeatures accordingly, i.e. by changing -w to
-Wnounused
- tcng: new construct "warn [no]warning,..." to include -W options in
configuration files (tests/warn)
- duplicate class selection paths are now valid, and are treated as distinct
classes at top-level dsmark, in order to allow use of marking at top-level
dsmark (tests/selpathdup)
- removed duplicate class selection path test from tests/selpath
Version 5t (3-OCT-2001)
-----------------------
- tcc/ext/tccext.* added field "location" to TCCEXT_BLOCK, TCCEXT_QDISC,
TCCEXT_CLASS, and TCCEXT_BUCKET, containing pre-formatted location string
- tcc/ext/echoh.*: added function echoh_buckets to print buckets
- tcc/ext/echoh.* now prints an error with location information and exits, if
encountering pragma "force_failure"
- added regression tests for error feedback (tests/extlocext)
- tcc/ext/tccext.c:tccext_destroy did not free block->name
- tcc/ext.c no longer uses yyerror, because it's usually invoked either before
parsing the first line or at EOF anyway
- removed tccext output formatting from TODO
Version 5s (3-OCT-2001)
-----------------------
- location specifications enclosed in [<...>] in standard error from external
programs are now translated by tcc back to source code locations
(tests/extlocbas)
- added new external program tcc-ext-xlat used by tests/extlocbas
- -Xx,fifos no longer attaches fifos to numbered dsmark classes (tests/tcng-5s,
reported by Jacob)
- tcc now prints "expression" as the value of non-constant variables
(tests/tcng-5s)
- updated tcc/README accordingly
- child process for external program executed exit handler, causing attempt to
unlink input file twice, which failed, and output file was not deleted as a
consequence (tests/tcng-5s, reported by Jacob)
Version 5r (2-OCT-2001)
-----------------------
- configure is now compatible with 2.4.11 (pre-release, tested with pre2)
- tcsim/setup.klib: added MODULE_LICENSE to include/linux/module.h for 2.4.11
compatibility
- added targets "ephemeral", "dep", "depend", and "clean" to build/Makefile
- added "build" to DIRS in top-level Makefile, in particular so that
"make ephemeral" now descends into "build"
- Makefile and scripts/Makefile: added "all" to .PHONY
- doc/Makefile: added .PHONY
Version 5q (2-OCT-2001)
-----------------------
- q_gred.c: changed diagnostics to provide better location data
- added set of regression tests for GRED error detection (tests/grederr)
- q_gred.c tested for presence of qdisc parameter "grio" in class scope
(tests/grederr)
- q_prio.c: changed diagnostics to provide better location data
- updated tests/tcng-1i, tests/tcng-1j, and tests/tcng-4u accordingly
- q_dsmark.c:sel_add_hier_filters "return"ed when encountering GRED, instead of
"continue"ing, thereby possibly skipping other qdiscs (tests/tcng-5q,
reported by Jacob)
- updated tests/selpathgred accordingly
- iflib_act.c:bubble_and now explicitly checks for invalid condition
(tests/tcng-5q)
- updated tests/misfeatures accordingly
- tcc/LANGUAGE: clarified role of parent classes within the same qdisc in class
selection path
- added set of regression tests for class selection paths with CBQ
(tests/selpathcbq)
Version 5p (28-SEP-2001)
------------------------
- tcc/LANGUAGE: documented variables containing expressions
- tcc now refuses interface names longer than IFNAMSIZ-1 (15) characters
(tests/ifnamsiz)
Version 5o (28-SEP-2001)
------------------------
- variables can now contain expressions (tests/varexp)
Version 5n (27-SEP-2001)
------------------------
- added portable default value for BuildRoot to build/tcng.spec.in
Version 5m (26-SEP-2001)
------------------------
- tcc.spec.in: added LGPL to "copyright" tag
- tcc.spec.in used COPYING instead of COPYING.{GPL,LGPL}
- tcc.spec.in: RPM_BUILD_ROOT test for / had logic reversed
- copied copyright information from tcng/README to tcng/tcc/README
- "make rpm" now moves RPM file to tcng top-level directory and removes
directory "rpm" after use
- "make clean" now removes directories "build-test" and "rpm"
- "make rpm" now generates a relocatable RPM, and also the SRPM for tcng
- moved bytesex.c and tcc.spec.in to new directory tcng/build
- updated tcng/configure accordingly
- moved setting of topdir from tcc.spec.in to build/rpmrc and build/rpmmacros
(see build/README for details)
Version 5l (25-SEP-2001)
------------------------
- scripts/symlinks.sh still created obsolete links to kmod_cc and tcmod_tcc in
tcng/bin
- tcc-ext-test.in still expected kmod_cc and tcmod_cc in $TOPDIR/bin, not
$TOPDIR/lib/tcng/bin
- scripts/localize.sh now allowed environment variable TCNG_INSTALL_CWD to
override its notion of the current directory
- "make all" and "make install" now automatically skip tcsim if disabled in
configuration
- added tcc RPM spec file tcng/tcc.spec.in, and Makefile target "rpm"
Version 5k (25-SEP-2001)
------------------------
- added assorted regression tests using class variables (tests/classvar)
- new directory locations:
- tcc-module, tcc-ext-err, kmod_cc, and tcmod_cc now go into
$TOPDIR/lib/tcng/bin instead of $TOPDIR/bin
- libtccext.a, tcm_cls.c, and tcm_f.c now go into $TOPDIR/lib/tcng/lib
instead of $TOPDIR/lib
- tccext.h, echoh.h, fields.tc, ip.def, tcngreg.def, and the symbolic links
to tcsim/klib and tcsim/ulib now go into $TOPDIR/lib/tcng/include instead
of $TOPDIR/include
- updated scripts/symlinks.sh, Makefile, scripts/localize.sh, tcc/tcc.c,
tcc/if_c.c, tcc/tcc-module.in, tcc/ext/tcc-ext-test.in, tcsim/tcsim.c,
tcsim/modules/kmod_cc.in, and tcsim/modules/tcmod_cc.in accordingly
- moved toys/tcm.tc to tcc/tcm.tc (and $TOPDIR/lib/tcng/include)
- updated tests/expensive, tests/fastpath, and tests/tcm accordingly
- tcc/ext_io.c now adds $TOPDIR/lib/tcng/bin to the PATH
- removed now unnecessary PATH=$PATH:tcc/ext from the following tests:
arith, bitopt, cbqroot, classvar, defifo, drop, dsind, expensive, ext,
extcbq, extflt, extmult, extndm, extqch, fastpath, field, fredef, location,
misfeatures, not, phasex, pol_ext, setpathext, tcm, tcng-2u, tcng-3b,
tcng-3h, tcng-3m, tcng-3n, tcng-3p, tcng-3r, tcng-3s, tcng-4a, tcng-4c,
tcng-4d, tcng-4f, tcng-4h, tcng-4j, tcng-4l, tcng-4n, tcng-4p, tcng-4u,
tcng-4w, tcng-4z, tcng-5a, tcng-5j, and unspec
- updated kernel version example on tcng/README from 2.4.9 to 2.4.10
Version 5j (25-SEP-2001)
------------------------
- iflib_red.c: added debbugging function to dump matrix considered by "bundle"
- iflib_red.c:bundle_skip effectively limited bundling to one level
- updated tests/not and tests/tcng-2j accordingly
- iflib_red.c: changed order of transformations when using -N so that common
uses of trTCM can be optimized too (tests/fastpath)
- ext_all.c: _root hack came back to bite us when using multiple interfaces
(tests/tcng-5j)
- iflib_cheap.c: rewrote detection of expensive combination of static
classification and policing (tests/expensive)
Version 5i (21-SEP-2001)
------------------------
- tcc: it is now an error to try to use the obsolete options -A, -C, and -F
- updated tests/defifo and tests/location accordingly
- iflib_red.c:bubble_or removed incorrect comment about side-effect of
iflib_act.c:self_contained
- tcc: added new option -E to make tcc fail if encountering an "expensive"
operation, such as negation (either explicitly or via !=, > or >=), or an
action tree that is not self-contained (tests/expensive; suggested by Jacob)
- iflib_red.c:bubble_or now more aggressively eliminates right-hand side of
logical and
- README and configure: tcc is not compatible with kernel versions < 2.4.3
Version 5h (20-SEP-2001)
------------------------
- tcc/iflib_red.c:iflib_normalize no longer bubbles actions through static
classification in expressions ending in ... && (conditions || decision)
(tests/fastpath; only with -N; suggested by Jacob)
- tcc/iflib_red.c:iflib_normalize makes expressions typical in simple multi
color markers self-contained, thereby making above optimization possible in a
wider range of cases (only with -N; tests/fastpath)
- toys/tcm.tc: added constrained versions of the color test macros, which tcc
can process more easily.
- if_ext.c: removed redundant pass through iflib_normalize when using the "old"
algorithm
Version 5g (19-SEP-2001)
------------------------
- "make spotless" did not imply "make clean", leaving e.g. .symlinks
- TODO: documented tests/selpathgred incompatibility with older kernels
- added device and tunnel data types to simplify implementation of variable use
scope information output
- variable use output (-u) now includes scope information
- updated tcc/README, tests/tcng-5f, and tests/varuse accordingly
- filters had no blank between "filter" and identifier in variable use output
(tests/tcng-5g)
- added more precise location information to CBQ error messages (suggested by
Jacob)
- updated tests/cbqroot accordingly
Version 5f (19-SEP-2001)
------------------------
- tcsim/setup.klib: added max_t for compatibility with recent 2.4.10
pre-releases
- tcc/LANGUAGE: clarified that class selection paths cannot be nested (see
toys/cspnest)
- tcc did not suppress pseudo-parameter "class_sel_path" in tccext output
- added regression tests for class selection path with external interface
(tests/selpathext)
- ext_all.c now issues a warning when defaulting to CBQ root class (suggested
by Jacob)
- scripts/cvsupdate.sh: added option -n to avoid accidental file changes
- class selection path data structures are now deallocated after use
- class selection paths now also work with GRED (tests/selpathgred)
- tcc/README: CBQ support is no longer "untested" (spotted by Gautam Thaker)
- tcc/iflib_act.c: self_contained did not handle constants or op_count
correctly, was too optimistic with logical or, and did not consider that
boolean operations involving self-contained subexpressions constrain their
possible values, even though they may not be self-contained themselves
- tcc/iflib_red.c:bubble_or no longer tries to "normalize" actions, because
iflib_act.c:push_action has to re-arrange them anyway (experimental)
- tcc/iflib_act.c: added function trim_self_contained to remove self-contained
sub-expressions before doing anything else (experimental, may be redundant)
- variable use list did not include forward-declared variables (tests/tcng-5f,
reported by Jacob)
- undocumented tcc command-line option -N now sets general algorithm mode (also
for old algorithm) and no longer implies -B
Version 5e (14-SEP-2001)
------------------------
- updated TODO to reflect changes in version 5d
- last two entries were missing in CHANGES section of version 5d
- tcc/README: documented the -u option
- tcc/LANGUAGE: documented class selection paths
Version 5d (13-SEP-2001)
------------------------
- added experimental <...> construct to automatically generate tcindex-based
classification system in conjunction with dsmark (tests/selpath)
- made dsmark "indices" parameter optional
- mask and value parameters that are equivalent to default values are ignored
Version 5c (11-SEP-2001)
------------------------
- tcc: new option -u var_use_file to write content of variables to the
specified file (tests/varuse)
- variables before first implict device now really have global scope
(tests/tcng-5c)
- unused global variables are reported at end of file (tests/tcng-5c)
- updated tests/tcng-3k accordingly
- tcsim/plot.pl: added PNG (-png) and JPEG (-jpeg) output (based on patch by
Gautam and Nikhil Thaker)
- dsmark no longer complains if class with a number above "indices" sets "mask"
or "value" to values that imply no change (tests/dsind)
- dsmark: "indices" is now optional, and set to the next power of two above the
highest class number (tests/dsind)
- q_dsmark.c: changed diagnostics to provide better location data
- updated tests/tcng-1i accordingly
- configure now exits on the first error
- tcsim/Makefile.ulib now invokes further makes with -e, to facilitate
cross-compilation (reported by Langie Light)
Version 5b (8-SEP-2001)
-----------------------
- added new debugging function debugf2 that prints if debug > 1
- scripts/symlinks.sh no longer prints the names of directories in "list" mode
(this broke "make spotless")
- added "new" bit graph algorithm in tcng/tcc/iflib_newbit.c (it's completely
useless at the moment)
- tcc: new undocumented option -N to select "new" bit graph algorithm
Version 5a (30-AUG-2001)
------------------------
- added helper functions for run-time measurement (start_timer, print_timer)
- fixed uninitialized variable bug in tcc/if_u32.c:dump_offset
- fixed harmless uninitialized variable warnings in
tcc/iflib_bit.c:{dump_static,dump_all_paths_to}
- file names containing blanks or other unprintable characters are now printed
as <unprintable> in location map (tests/tcng-5a)
- empty strings are no longer allowed as tags (tests/tcng-5a)
- added new reporting functions lwarn and lwarnf
- changed most yy{error,warn}* to l{error,warn}* in ext_all.c, if_c.c, and
if_ext.c
- updated tests/additive, tests/extcbq, tests/extflt, and tests/extndm
accordingly
- iflib_bit.c now validates reference counts after all major operations unless
NDEBUG is defined
- iflib_bit.c:{bubble_static,swap_bits} were badly broken (tests/tcng-5a,
reported by Jacob)
- when debugging (-d), iflib_bit.c:unique_state validates that all bit types
are still valid (they become invalid if free'ing a bit still in use)
- unique_state now eliminates bits when discovering that they are redundant
(bit->true == bit->false), yielding more compact results
- adapted tests/tcng-4p accordingly
Version 4z (29-AUG-2001)
------------------------
- tcc/police.c:assign_policer_ids was only invoked once, but more policers
could be defined afterwards (tests/tcng-4z, reported by Jacob)
- configure, scripts/runtests.sh, and scripts/symlinks.sh assumed that the
shell looks for files to source in the current directory instead of following
the PATH if no explicit path is given (reported by Jacob)
- configure now reports loading defaults from old config file
- configure is now compatible with 2.4.10 (pre-release, tested with pre2)
Version 4y (24-AUG-2001)
------------------------
- tcsim/setup.klib generated include/linux/in.h with byte order hard-coded to
little endian
- tcsim/modules/kmod_cc.in, tcsim/modules/tcmod_cc.in, and tcc/ext/tcc-ext-test
now look for environment variable CC before using hard-coded default of "cc"
(was "gcc")
- bindist-tcng-tests now also includes various files from tcc/ext and
tcsim/modules
- tcc did not consider empty strings ("") to be strings at all (reported by
Jacob)
- setup.klib generated netfilter.h with unnamed struct, causing warnings with
some versions of gcc
- described input file format in scripts/runtests.sh
- scripts/runtests.sh now automatically inserts FILE directives if multiple
input files are specified on the command line
Version 4x (23-AUG-2001)
------------------------
- removed useless -I- from tcsim/Makefile
- new binary distribution target bindist-tcng-tests added (not generally useful
yet)
- extended scripts/runtests.sh to take TOPDIR and TCNG_TOPDIR from the
environment, and to use reasonable defaults if "config" is absent
- modified scripts/trinity.sh.in to use environment variable TCNG_TOPDIR (if
present) instead of configured-in TOPDIR
- Makefile: added target "scripts" (how did scripts/trinity.sh ever get built
without ??)
- changes names of binary distribution files from <component>-<version>.tar.gz
to <component>-<version>-bin.tar.gz
- tcc/config.h:TCC_MODULE_CMD always used hard-coded TOPDIR instead of allowing
TCNG_TOPDIR override
- configure: new options --big-endian (-b) and --little-endian (-l) to set the
bytesex
- configure: now also "inherits" bytesex from old config file
Version 4w (22-AUG-2001)
------------------------
- fixed a few glitches in the CHANGES section of 4v
- updated tcsim/setup.klib to handle max(type,a,b) macro introduced in 2.4.9
- updated kernel version example on tcng/README from 2.4.7 to 2.4.9
- fields now have scoping, like variables (tests/tcng-4w)
- updated tests/misfeatures and tests/fredef accordingly (moved old misfeature
test to tests/tcng-4w, but moved one now broken test from tests/fredef to
tests/misfeatures and added new tests for similar problem with variables)
- devices now have optional braces around their qdiscs in order to avoid
ambiguous variable scope (tests/devbra)
- updated tcc/LANGUAGE according to the two changes above
- tcc: added option -w to suppress all warnings
Version 4v (22-AUG-2001)
------------------------
- configure: added option --no-tcsim (abbreviation -n) to enable build of tcc
only
- top-level make now refuses all targets depending on tcsim, and build-test if
tcsim is disabled in configuration
- removed unnecessary inclusion of ../../config from tcsim/modules/Makefile
(caused complaint on make cvsupdate in virgin tree)
- scripts/symlinks.sh now sources "config" only if linking (unconditional
sourcing caused complaint on make cvsupdate in virgin tree)
- tcc now sorts sibling classes by class ID (tests/sort; suggested by Jacob)
- updated tests/extqch accordingly
- tcc now allows fields to be re-defined wherever one can put a variable
assignment (tests/fredef)
- known bug: fields still have global scope (tests/misfeatures)
Version 4u (16-AUG-2001)
------------------------
- configure is now compatible with 2.4.9 (pre-release, tested with pre4)
- tcc/README: "Invocation" section was obsolete and incorrect (reported by
Mika Yrjola)
- added realistic tcc example in tcc/example
- tcsim: added option -c to perform only syntax check
- new test tests/examples checks all examples in examples/*, examples-ng/*, and
tcc/example for correct syntax
- tcsim/setup.klib now skips cls_u32.c patch applied somewhere in 2.4.8-pre*
- dump_if_u32 now also handles negation
- updated tests/tcng-3g accordingly
- location map used "file:line", not "file line" as described in README
- location map now uses "-" instead of empty string to indicate stdin.
Clarified tcc/README accordingly.
- updated tests/location and tests/tag according to above changes
- dsmark did not adjust parent qdisc when resolving class 0 collision
(tests/tcng-4u)
- inner qdisc of explicit CBQ root class was not dumped on tc (tests/tcng-4u)
- CBQ messed up order of filters on parent and root (which are the same), so
now tcc refuses this bizarre combination (tests/tcng-4u)
- -B now sorts bits (in a very ugly way), just like without -B (tests/tcng-4u)
Version 4t (10-AUG-2001)
------------------------
- split make target "bindist" into "bindist-tcc" and "bindist-tcsim"
- added missing target "tcsim" to tcng/Makefile
Version 4s (9-AUG-2001)
-----------------------
- "make clean" in tcng/tcsim tried to access klib/ulib, which may not exist
after partial build
- forgot to include scripts/localize.sh in distribution
Version 4r (9-AUG-2001)
-----------------------
- added tcng/tcc/ext/tcc-ext-err to tcng/bin
- modified tcc/tcc.c, tcc/tcc-module.in, tcsim/tcsim.c,
tcsim/modules/kmod_cc.in, and tcsim/modules/tcmod_cc.in to use environment
variable TCNG_TOPDIR (if present) instead of compiled-in TOPDIR
- added option --install-directory (or -d) to configure
- added "make install" target and "make bindist" targets
- new script scripts/localize.sh to generate wrapper scripts for tcc and tcsim
- tcc/Makefile now uses scripts/topdir.sh to build tcc-module
- described installation procedure in tcng/README
Version 4q (9-AUG-2001)
-----------------------
- added new target "ephemeral" to most Makefiles
- added new target "cvsupdate" to top-level Makefile, which removes ephemeral
files from CVS' list
- added scripts scripts/cvsupdate.sh invoked for above target
- added new target "bindist" to top-level Makefile to build binary
distributions of tcc and tcsim
- scripts/symlinks.sh now accepts the mode of operation as its first argument
("list" or "link")
- fixed various files forgotten by "make clean" and such
Version 4p (8-AUG-2001)
-----------------------
- optimized iflib_bit.c:clear_counters (from O(2^N) worst-case to O(N))
- added new field BIT.dump_number to optimize iflib_bit.c:deassign_numbers
(from O(2^N) worst-case to O(N))
- slightly improved heuristic used by iflib_bit.c:pick_best to produce up to
80% fewer matches
- updated tests/tcng-3r accordingly
- copy_list selected first, not last common node, confusing eliminate_bundle
(tests/tcng-4p)
- tcng/tcc/Makefile did not use CC_OPTS (from tcng/Common.make)
Version 4o (7-AUG-2001)
-----------------------
- added more compact test case for bug fixed in 4n (tests/tcng-4n)
- added more precise location information to dsmark_default_class error message
- updated tests/defdsm accordingly
- dsmark failed to merge auto-generated class 0 with explicitly specified class
0, yielding duplicate class 0 (tests/tcng-4o; reported by Jacob)
- tccext.c did not find nested classes and therefore erroneously created dummy
classes (tests/tcng-4o; reported by Jacob)
- fixed tests/extqch accordingly
Version 4n (3-AUG-2001)
-----------------------
- tcc/iflib_bit.c:swap_bits did not distinguish true and false, causing tcc to
crash (tests/tcng-4n)
Version 4m (3-AUG-2001)
-----------------------
- tests/location did not include test for ingress qdisc
- error.h: added new error reporting functions lerror, lerrorf, vlerrof
- improved reporting of error location in parameter handling
- updated tests/tcng-2e accordingly
Version 4l (30-JUL-2001)
------------------------
- broke if_ext.c down into individual functions allowing to dump exactly what
is needed in each mode
- updated tests/extmult accordingly; added bucket test to tests/extmult
- tccext.h: renamed TCCEXT_ACTION.u.classes to class_list to avoid ambiguity
with TCCEXT_QDISC/TCCEXT_CLASS.classes (suggested by Jacob)
- updated tccext.c, echo.c, and match.c accordingly
- configure is now compatible with 2.4.8 (pre-release)
- tccext.c now detects duplicate items on input (tests/dupext)
- tcc-ext-echo used to loop if there was more than one bucket (tests/tcng-4l)
- tcc: renamed DEVICE.qdisc to DEVICE.egress
- -A ("all") no longer requires use of if to generate code (tests/tcng-4l)
Version 4k (24-JUL-2001)
------------------------
- tcc: undocumented options -A, -C, -F now print warning
- tcc-ext-test now accepts "nounspec" argument, and echoes it in config mode
- updated tests/defcbq, tests/defdsm, tests/defifo, tests/extflt,
tests/extmult, tests/extndm, tests/extqch, tests/location, tests/pragma,
tests/tcng-3m, tests/tcng-3s, tests/tcng-4a, tests/tcng-4d, tests/tcng-4f,
and tests/unspec to no longer use undocumented options, or to suppress the
warning
- callers of scripts/runtests.sh can now pass file name information using a
FILE <file_name> directive
- q_cbq.c now always generates an explicit root class, if none is present
(tests/cbqroot)
- updated tests/extndm, tests/extqch, tests/location, tests/tcng-1n,
tests/tcng-2c, tests/tcng-2h, and tests/tcng-4f accordingly
- q_cbq.c combines the root class with the qdisc when generating tc output
(tests/cbqroot)
- qdisc.c:make_class did not initialize all fields of new class, causing stray
problems with require_class
Version 4j (24-JUL-2001)
------------------------
- tccext: moved actions and rules from global scope to block scope
- updated tccext.h, tccext.c, echo.c, and tests/tcng-3s accordingly
- tcc/ext/match.c now detects and refuses multiple blocks (at run-time)
- tcc/ext/echo.c now prints offsets and buckets before blocks, to maintain at
least some resemblance of order
- updated tests/pragma, and tests/tcng-3s accordingly
- suppressed cross-block sharing in if_ext_act.c (tests/extmult)
- CHANGES: tcng-4h entry for iflib_act problem was incomplete and also missing
in TODO
- tcc/ext.c:ext_build used shadowed variable "name", yielding confusing reports
- lex hack to express if anchors conflicted with "drop if", causing enigmatic
syntax errors (tests/tcng-4j)
- fields.tc: added field udp_data, for symmetry with TCP
Version 4i (24-JUL-2001)
------------------------
- added runtests.sh, trinity.sh, topdir.sh, and configure to usage format
checking (tests/usage)
- tcc, tcsim, runtests.sh: added new -X phase "x" or "x<elem>" to send
command-line arguments to programs at tcc's external interface (tests/phasex)
- ext.c now prints standard output of external program when -d is set
- divided TODO into short-term and long-term issues
- ext_all now follows CBQ classes for further classification (tests/extcbq)
- removed corresponding misfeature test from tests/extflt
- ext_all now selects root class if classification fails completely in CBQ,
instead of yielding an error (tests/extcbq)
- ext_all now refuses priomap parameter (tests/extcbq)
- qdisc.c:assign_class_id did not detect duplicate class IDs (tests/tcng-4i)
- variable scoping was outside-in (tests/tcng-4i)
- "drop" without selector now warns that it's useless (tests/tcng-4i)
Version 4h (23-JUL-2001)
------------------------
- updated kernel version example on tcng/README from 2.4.6 to 2.4.7
- external interface: there is now only a single action per action line, which
simplifies the code and makes the data structures less ambiguous
- eliminated TCCEXT_ACTIONS and added "index" and "next" fields in
TCCEXT_ACTION
- updated doc/external.tex accordingly
- updated tests/pragma, tests/tcm, and tests/tcng-3s accordingly
- oops, iflib_bit never emitted "action N" clauses (tests/tcng-4h)
- iflib_act.c:bubble_and turns Action && Match into M && A without
considering possible side-effects of A or M (note: the resulting mess fails
at later processing stages, so at least no incorrect output is generated)
Version 4g (22-JUL-2001)
------------------------
- split qdisc.c into qdisc.c, qdisc_common.h, q_ingress.c, q_cbq.c, q_dsmark.c,
q_fifo.c, q_gred.c, q_prio.c, q_red.c, q_sfq.c, and q_tbf.c
- split filter.c into filter.c, filter_common.h, f_if.c, f_fw.c, f_route.c,
f_rsvp.c, and f_tcindex.c
- qdiscs now dump to external interface via QDISC_DSC.dump_ext (using new
file ext_dump.c)
Version 4f (20-JUL-2001)
------------------------
- ext_all now allows simple configurations with other qdiscs than dsmark at
root (tests/extndm)
- ext_all tried to include priomap parameter in output (tests/tcng-4f)
- tcc now refuses duplicate parameters in same parameter list
- updated tcc/LANGUAGE accordingly
- simplified intriguingly complicated (and rather fragile) contraption to
add "bands 3" for PRIO at ext_all
- dsmark can now also generate default classification if default_index is
absent, but set_tc_index is present (tests/defdsm)
- CBQ can now also generate default classification (tests/defcbq)
- ext_io.c is now better at deleting temporary files (reported by Jacob)
- make clean-test now also removes "precious" files generated by tcc-ext-test
- tcc-ext-test.in and tcc/ext/match.c: changed name of file with tccext data
from _m*.out to __m*.out to simplify cleanup
Version 4e (19-JUL-2001)
------------------------
- tcc now registers the source code location of all major language elements
- tcc: added new option -l location_map_file to generate source code location
map for language elements (tests/location)
- updated tcc/README accordingly
- a user-defined tag can be assigned to devices, qdiscs, classes, filters,
filter elements, policers, and tunnels, by including a string in the
parameter list (tests/tag)
- added test that usage lines of tcc, tcc-module, tcsim, filter.pl, and plot.pl
are short enough (tests/usage)
Version 4d (17-JUL-2001)
------------------------
- ext_all leaked default parameters among sibling classes (reported by Jacob)
- symbolic links are now generated by scripts/symlinks.sh for better CVS
compatibility (suggested by Langie Light)
- link to echoh.h was missing in distribution
- when using -B, action "unspec" was called "continue"
- added draft description of new external protocol rules (doc/README.tccext)
- renamed tcc/ext.c to tcc/ext_io.c
- added prototype implementation of new external protocol
- tcc/ext: updated tcc-ext-err, echo.c, echoh_main.c, and tcc-ext-test.in
accordingly
- made output selection in tests/ext less dependent on naming conventions of
tcc-ext-test
- updates tests/tcng-3s to obey new calling conventions
- external program now needs to be available even if tcc faild before the build
phase; updated tests/extflt accordingly
- dependency on "tcc" was missing for "make test"
Version 4c (16-JUL-2001)
------------------------
- added trailing line of dashes to each test title
- added "drop if" construct, which is roughly synonymous to
"class if (...) && drop" (tests/drop, tests/misfeatures)
- updated tcc/LANGUAGE accordingly
- accessing "raw" without specifying an index crashed iflib_off.c:use_offset
- added cases where bit strings are combined across presence boundaries to
tests/misfeatures
- included TODO file
Version 4b (14-JUL-2001)
------------------------
- tcsim: an end time can now be specified for "every" (suggested by Stefano
Avallone; test in tests/until)
- added description of test writing concepts in tests/README
- verified that filter ID range is indeed 1..0xffff, as filter.c assumes
- ext_all.c:filter_path now checks that tcindex classifiers don't use policing
(tests/extflt)
- ext_all.c:filter_path accessed prm_mask in element, where it doesn't exist
(but by sheer luck happens to have the right value)
- tcng/README did not mention that also echoh is under the LGPL
- echoh_blocks now accepts a file argument, and tcc-ext-echoh prints on stderr,
not stdout
- updated kernel version example on tcng/README from 2.4.3 to 2.4.6
- runtests.sh now strips trailing line of dashes from test title, allowing
writing of more easily readable test files
Version 4a (13-JUL-2001)
------------------------
- tcc/param.c:param_print would de-reference NULL pointer on childless elements
(reported by Jacob)
- Common.make didn't remove __*.in files generated at external interface
- ext.c did not clean up temporary files after error exit
- libtccext.a: added new function echoh_block to print qdisc/class hierarchy
(suggested by Jacob)
- added link from include/echoh.h
- added corresponding external program tcc-ext-echoh
- tcc/ext_all.c:filter_path did shift before mask instead of mask before shift
- tcc/ext_all.c:filter_path messed up default parameters
- plot.pl now weights samples when calculating the average rate over multiple
packets (based on a patch by Lars Wischhof)
Version 3z (12-JUL-2001)
------------------------
- added patch to iproute2/tc to fix offset increment for data items larger than
4 bytes (patches/tc-u32-incr)
- new qdisc flags QDISC_CHILD_QDISCS and QDISC_SHARED_QDISC to indicate
how many child qdiscs a qdisc can have
- new undocumented option -F to add FIFO qdiscs wherever a default qdisc is
used (tests/defifo)
- tccext.h: clarified that TCCEXT_BLOCK.qdiscs points to the top-level qdisc
- started adding infrastructure for clean external interface protocol
- replaced huge "if_ext calls ext_all" hack by several smaller ones
Version 3y (10-JUL-2001)
------------------------
- external.tex did not mention that qdisc and class pragmas begin with the
keyword "pragma"
- documented how qdisc and class structure is represented at external
interface
- added support for class hierarchy and pointers to child qdiscs to
tcc/ext/{tccext.[ch],echo.c} (tests/extqch)
- ext_all.c generated qdiscs parent-first, not child-first
- tccext: introduced new type TCCEXT_CLASS_LIST for list of classes (so that
classes can be linked according to their own hierarchy)
- added comment to tcc/ext/echo.c to clarify its role
Version 3x (9-JUL-2001)
-----------------------
- tccext.c:tccext_destroy may have looped on qdisc destruction
- tccext and ext_all now support pragmas on qdiscs and classes (tests/pragma)
Version 3w (9-JUL-2001)
-----------------------
- new default parameter handling model involving a stack (currently only used
by ext_all.c)
- param_get now sets prm_priority.v to 1e6 times the floating-point value
- config.h, error.c: renamed MAX_STACK_DEPTH to MAX_DEBUG_DEPTH
- added dependency on mkprminc to all .inc files generated by it
- mkprminc now names fields in structure initializer
- tcc/ext/{tccext.[ch],echo.c} now know about parameters, and a little bit
about the structural relationship between qdiscs and classes
- added description of qdiscs, classes, and parameters to doc/external.tex
Version 3v (6-JUL-2001)
-----------------------
- pragma on devices did not set param_def, which could crash tcc (test added
to tests/pragma)
Version 3u (6-JUL-2001)
-----------------------
- in tccext, changed "queue" to "qdisc", "QUEUE" to "QDISC"
- added experimental module for dumping full configuration (activated with -A)
- tccext recognizes (and ignores) "class"
Version 3t (4-JUL-2001)
-----------------------
- configure is now compatible with 2.4.7 (pre-release)
- configure now takes defaults from old config file if one exists
- ip.def: UDP_HDR did not evaluate parameters (reported by Stefano Avallone)
- tcsim/modules/kmod_cc and scripts/runtests.sh used [ with == instead of =,
causing problems with older versions of bash (reported by Nikhil Thaker)
Version 3s (4-JUL-2001)
-----------------------
- at external interface, "class" action can now be a comma-separated list of
queue/class numbers
- tcc-ext-echo now prints action number in decimal instead of hex
- tcc-ext-echo now prints items in the order described in doc/external.tex
- prio default classification was off by a factor of two
- adjusted tests accordingly (pragma, unspec)
- tccext.c could not parse consecutive drops actions
Version 3r (2-JUL-2001)
-----------------------
- remove_duplicates did not handle branches with multiple ingress paths right
Version 3q (2-JUL-2001)
-----------------------
- iflib_bit.c:make_bit now clears counters to avoid buggy-looking debugging
output
- added daVinci URL to scripts/fsm2dav.pl
- scripts/fsm2dav.pl now also supports "conform" and "count"
- added missing prototype of if_ext.c:get_offset_group
- added masks and shifts to iflib_bit.c
- added mask and shift tests tests/bitops, derived from tests/ifopt
Version 3p (1-JUL-2001)
-----------------------
- oops, iflib_bit.c:dump_this_action had qdisc and class number swapped
- made iflib_bit.c bug list more complete
- moved toys/tcm-tests to tests/tcm to show off the new algorithm
- added test to show double inequality (tests/tcng-3p)
Version 3o (29-JUN-2001)
------------------------
- integrated early development prototype of "if" expression optimization
based on a finite state machine (not useful yet; invoke with -B)
- added script fsm2dav.pl to convert "raw" FSM output to daVinci term
representation
Version 3n (27-JUN-2001)
------------------------
- syntax "if conform ($p)" is now accepted
- policer variables can now be redefined (a syntax conflict was introduced in
version 3k)
- greatly simplified the way how the "police" prefix is made optional
- data_equal: added assertion that arguments aren't operators
- added debugging output to tcc/var.c
Version 3m (26-JUN-2001)
------------------------
- tcng language documentation update (use of bare words is discouraged,
"police" keyword before variables is optional in if expressions, described
"if" and related constructs)
- added tests for negation combined with field conditions (tests/field)
- dsmark complained about class for inner qdisc if using default parameters
- after negation, the && and || actions were not swapped, causing incorrect
processing of multiple nested negations
- tcc/ext/match.c incorrectly refused to count packets for which not enough
tokens were available
- policing may be too permissive if using "count" without prior "conform"
(misfeature)
- tcsim used bit size to check room in byte-sized buffer
- tcsim did not check room for default size (one byte)
- tcsim now checks values of packet data for correct range
- require_class always searched for class 0, yielding incorrect default
selections if such a class existed
- added missing tests for arithmetic replacement of non-equality (tests/arith)
Version 3l (19-JUN-2001)
------------------------
- qdiscs now have flags expressing their capabilities
- more rigid checking for qdisc capabilities
- ingress, dsmark, and prio now generate default class selection (currently
enabled with undocumented tcc option -C)
- added new action "unspec" which is taken in the absence of -C
- updated tests accordingly (ext, field, misfeature, not, tcng-2u)
- tcc now knows that # 1 "." from cpp really means ""
Version 3k (18-JUN-2001)
------------------------
- tcc no longer warns when using "milli" for seconds
- "police" prefix before variable name is now optional
- likewise, "filter" prefix before variable name on "on" expression is now
optional
- tcc incorrectly refused "eth0 $q = prio ..."
- tcc still refuses above assignment with default device (misfeature)
- tcc incorrectly refused use of qdisc variables at top level
- "mtu" is no longer required for policers if target is not "tc"
- updated tests according to above change (pol_ext, pol_traffic, pragma,
tcng-3b, vartype)
Version 3j (14-JUN-2001)
------------------------
- tccext_destroy did not free buckets and actions
- added "pragma" parameter to all traffic control elements
- added global pragma directive (tcc)
- added tcc/ext/echo.c to print parsed configuration on standard error
- added regression test tests/pragma to test pragmas
- updated doc/external.tex accordingly
Version 3i (14-JUN-2001)
------------------------
- added patch patches/tc-dsmark-dfl for iproute2/tc to accept default_index 0
(reported by Stefano Avi)
- tcc now refuses "if" rooted at classes, or combined with other filters
- added preliminary support for negation in "if" expressions
Version 3h (12-JUN-2001)
------------------------
- tcm.tc overestimated tcc's clearvoyance skills by including "count" in
negated expressions, from where it may not be removed in time
- action numbering did not work when "drop" was involved (it did not recognize
that "drop" equals "drop", and generated a new inverted tree every time)
- scripts/runtests.sh now prints a grammatically correct message when there is
only a single test
Version 3g (12-JUN-2001)
------------------------
- if_ext_act.c now tries to use class numbers as action numbers in order to
ease visual inspection (suggested by Jacob)
- updated tests accordingly (tests/field, tests/tcng-2u, tests/tcng-3b)
- fields.tc is now protected against multiple inclusion
- iflib_red.c:prune_shortcuts incorrectly reduced 0 || X to 1
- op.c:unum1_eval incorrectly assumed operands were always constant
- added TCM design study in toys/tcm.tc
Version 3f (11-JUN-2001)
------------------------
- added various simple arithmetic optimizations (iflib_arith.c)
- added corresponding tests in tests/arith
- tcsim crashed when device name was missing after "dev"
- u32 target now also supports boolean constants 0 and 1
- disabled globbing in runtests.sh to allow the use of asterisks in titles
- iflib_reduce is no longer called by common if code in filter.c:if_dump_tc
- iflib_red.c:do_optimize_eq shifted the default mask in the wrong direction
- if_u32 still has problems with masks; recorded them in tests/misfeatures
Version 3e (7-JUN-2001)
-----------------------
- tcc: fields can now be redefined (added test tests/field)
- policing results can now be used explicitly in "if" expressions (see
tests/lib/pol_single_drop.tcsim)
- added action "drop" to tccext
Version 3d (7-JUN-2001)
-----------------------
- configure is now compatible with 2.4.6 (pre-release)
- global "make" now also builds content of documentation directory
- new file tests/pol_traffic with "live" policing tests for "C" and "ext"
- policing in tcc/ext/match.c didn't work at all
- added "block" statement to external interface
- if_ext now sorts bits within the same match and offset group by offset
- updated regression tests according to above two changes
- forgot to include scripts/rlatex, oops
Version 3c (5-JUN-2001)
-----------------------
- ether_proto_print(ether_proto(N)) can now return different name than N, or
number (to handle protocols unknown to tc, or known under a different name)
- policer list wasn't NULL-terminated
- major redesign of action handling in if_ext, resulting in more compact
actions group
- added flag "combine" to iflib_offset to make optimizations suitably tame for
if_ext (reported by Jacob)
- above change makes if_ext generate less elegant offset expressions. Adjusted
tests accordingly and moved old test to toys/reminiscence
- actions may now also include "action N" to point to that action. Updates
documentation accordingly.
Version 3b (1-JUN-2001)
-----------------------
- moved runtests.sh to scripts/ where it rightfully belongs
- iflib_act issued redundant expressions, creating the impression that they
were not self-contained
- moved action_tree from if_ext.c to iflib_act.c
- action_tree now knows that C || X is an action tree (C = self-contained)
- iflib_act incorrectly walked into action trees when walking an || chain,
making incorrect transformations
- README still pointed to old download location (reported by Jacob)
- moved protocol/host/port lookups from tcng.y to new file named.c
- all filters: new parameter "protocol" to set ether protocol (suggested by
Steven Van den Berghe)
- added a bunch of tests for named items (tests/named)
Version 3a (1-JUN-2001)
-----------------------
- if_ext now moves policing below matches (using iflib_act.c)
- if_ext now detects redundant or conflicting tests and reduces matches/rules
accordingly
- if_ext now maintains an actions registry, eliminating the shared counter
hack
- added regression tests for above to tests/pol_ext and tests/ext
- added tests for things to fix: tests/misfeatures
Version 2z (31-MAY-2001)
------------------------
- added policing support to tcc/ext/match.c
- added support for overflow bucket to tccext.[ch]
- doc/external.tex: documented overflow bucket and excluded 0 as bucket index
- doc/external.tex: count does not count below zero
- if_ext now generates policing information
- added regression tests for build process with policing (tests/pol_ext)
Version 2y (30-MAY-2001)
------------------------
- added pointer to PAX PDL to fields.tc (pointer from Michael Richardson)
- if_ext.c now generates action indices and actions (largely untested)
- tccext.c now parses actions and buckets groups
- adjusted tests/tcng-2u and tccext.[ch] accordingly
- added warning that tccext_destroy does not free memory objects attached to
user fields
- added policing operators "conform" and "count"
- added policer parameter "overflow"
- data.c:print_data now also prints a policer's number
- added policer construction examples toys/srtcm.tc and toys/trtcm.tc
- "rate" parameter was optional in CBQ
- if_ext.c now only invokes debugf if debug > 1
Version 2x (29-MAY-2001)
------------------------
- tcc/tc.h tcc/tcdefs.h: put macro name after #endif in comments
- tcsim's include/linux/time.h only provides struct timeval #ifdef __KERNEL__;
added #include <sys/time.h> to provide it where needed (2.4.5 compatibility)
- tcsim used flag 1 in pseudo-CPP # lines, confusing cpp 2.96-81
Version 2w (29-MAY-2001)
------------------------
- tcc/ext/tccext: added context as explicit argument to TE_SIZEOF macro (by
Jacob Teplitsky)
- cleaned up tcc/PARAMETERS; moved RSVP and CBQ differences to tcc/README
- moved description of external format from tcc/if_ext.c to doc/external.tex
- added scripts/t2x.pl for conversion from LaTeX to ASCII
- added scripts/rlatex for automatic repeated invocation of LaTeX
- implemented some of the changes to the external interface
- renamed tcc-ext-cat to tcc-ext-err and changed output from stdout to stderr
- updated regression tests to follow external interface changes
- added new targets sf-upload and upload-sf to upload tcng to SourceForge
Version 2v (25-MAY-2001)
------------------------
- added test for additive headers (tests/additive)
- u32 can't handle additive headers; removed code pretending it can
Version 2u (25-MAY-2001)
------------------------
- iflib_off:extract_sum now also crosses op_offset
- moved removal of __*.out from clean-test to clean-mod
- new external script tcc-ext-cat for test framework (-x if:cat)
- fixed various bugs related to nested offsets (major overhaul of iflib_off.c)
- if_u32:dump_offset shifted in the wrong direction on mis-aligned field, and
didn't adjust mask
- added corresponding regression tests (tests/tcng-2u)
- tests/ now has sub-directory tests/lib/ with files shared among tests
- trinity.sh must now be invoked with [-v] [file]
- trinity.sh has dependency on trinity.sh.in
- output filter in trinity.sh did not work for tc target
- removed sed filter from use of trinity.sh in tests/ext; changed use of -v
- runtests.sh now knows about trinity.sh, and how to remove efence output
- new debugging function debugf for better reporting from recursive functions
- tcc now flushes stdout and stderr before invoking external script
- Makefile: added target build-test as alias for test-build
Version 2t (24-MAY-2001)
------------------------
- changed the horrible tcc-ext-ext_test* to tcc-ext-test*
- consolidated TOPDIR replacement in tcsim/modules/Makefile and
tcc/ext/Makefile in new script scripts/topdir.sh
- added script scripts/trinity.sh.in to compare classifier output for tc, c,
and external target
- added more tests to tests/ext
- removed redundant call to abort from dump_failed(d); abort();
- if_ext.c now generates offset lines
- Makefile: added target test-build to test building the current distribution
Version 2s (23-MAY-2001)
------------------------
- added parser for external target interface (under the LGPL)
- renamed COPYING to COPYING.GPL and upgraded to its Y2k-compatible version
- kmod_cc now removes -shared and adds -c if -r is present in command line
- cls_unspec.c didn't #include <net/rtnetlink.h>, causing compilation of "real"
kernel module to fail
- tcc/tcm_f called itself "unspec" in usage line
- added framework for including code for external targets
- added corresponding regression test tests/ext
Version 2r (15-MAY-2001)
------------------------
- tcc: target "tc" was mistakenly called "u32"
- enabled more compiler warnings
- fixed new warnings
- made authorship/copyright headers more uniform and extensible
- made "if" expression handling functions more modular
- began adding very experimental generic interface for external targets
- tcc: new command line option -x to register external targets
Version 2q (14-MAY-2001)
------------------------
- bison didn't like tcc/tcng.y (reported by Kristof Verniers)
- iproute2/tc depended on /proc/net/psched, containing values which may differ
from tcsim's HZ default
- preconditions were always inserted at root, even from below ||
- tcc: usage claimed that "c" was the default target
- Common.make: upload host name wasn't fully qualified
Version 2p (4-MAY-2001)
-----------------------
- make depend in tcng/tcc no longer tries to read tcm_{cls,f}.c (reported by
Jacob)
- added directories tcng/{bin,include,lib} with links to files used by
scripts, and for module builds
- tcc and tcsim now automatically add -I for tcng's various header files
- tcc-module no longer requires PATH to be set
- simplified runtests.sh and tests/c according to above changes
- tcc-module is now generated from tcc-module.in
- tcc and tcsim did not set last argv element to NULL before invoking cpp
Version 2o (4-MAY-2001)
-----------------------
- added more tcng regression tests
- tcc/op.c:additive_eval sometimes over-optimized
- tcsim: removed -C option, use -Xc instead
- runtests.sh now also supports -X argument; added phase "s" for tcsim
- tcc-module assumed internal problems on simple usage error
- make targets clean-test{,s} and clean-mod to remove temporary files
- if.c:do_optimize_eq now reports an error if the access would have to be moved
(which should never happen)
- if_u32 now catches conflicting matches detected by f_u32.c (reported by
Jacob)
- tcm_cls.c now prints debugging output if compiled with -DDEBUG
- tcc/data.c:data_dump: dt_fnum format is now %#g to make it look different
from dt_unum
Version 2n (4-MAY-2001)
-----------------------
- added more tcng regression tests
- added 2.4.5 (pre-release) compatibility (memory management changes in
linux/skbuff.h; removal of ETH_P_ECHO)
- "if 0" and "if 1" now work too
- tcc: recursed endlessly on un-optimized || (reported by Jacob)
- added ../Common.make dependency to {tcc,tcsim,tcsim/modules}/Makefile, so
"make" after configuration changes has the desired effect
- tcsim: added function warnf
- replaced tcsim's -C by unified -Xphase,arg (like gcc -Xl,...), supported by
tcsim, tcc, and tcc-module, with phases c=tcc, m=tcc-module, k=kmod_cc,
t=tcmod_cc
- updated tests/c accordingly
- tcc-module no longer constructs temporary .c files
Version 2m (2-MAY-2001)
-----------------------
- distribution didn't contain tcc/target.h, tcc/target.c
Version 2l (2-MAY-2001)
-----------------------
- added framework for generating C code (experimental)
- tcc: new option -t to enable/disable code generation targets
- tcsim: new option -C to pass arguments to tcc (e.g. -C -tc)
- added C target for "if"
- added more tcng regression tests
- tcc: make clean now removes param_*.inc
- more "if" optimizations to eliminate redundant boolean expressions (fixes
problems reported by Jacob Teplitsky)
Version 2k (1-MAY-2001)
-----------------------
- added more tcng regression tests
- dump_failed now indicates file name and line number of caller
- if: couldn't dump (field & mask) == value
- if now reduces <<, >>, & underneath ==
- added warnings if masks don't make sense
- added warning if size qualifier is not 8, 16, or 32
Version 2j (1-MAY-2001)
-----------------------
- added one more tcng regression test
- if: added crude hack to work around u32 limitation that offset may not be
used without previous match (reported by Jacob Teplitsky)
Version 2i (30-APR-2001)
------------------------
- added more tcng regression tests
- if: always try to pull offsets to make leafs more regular (fixes problems
reported by Jacob Teplitsky)
Version 2h (30-APR-2001)
------------------------
- added one more tcng regression test
- removed defeatistic comment from examples-ng/u32
- make dist: -lefence check still looked in Makefile, not Common.make
- added more definitions to fields.tc
- "if" is always linked to qdisc, not class
- added warning for "if" anchor
Version 2g (29-APR-2001)
------------------------
- new construct: "if" (yes, it works now !)
- added more tcng regression tests
- cleaned up libnetlink.c fix
- no more warnings due to data_destroy{,_1} doing nothing
- patch k-u32-offset was wrong; fixed it
Version 2f (28-APR-2001)
------------------------
- added more tcng regression tests
- tcc error message for invalid tunnel id claimed range starts at 0, not 1
- RSVP: "ah", "esp", and "ipproto" on element supersedes all their defaults
- added directory tcng/patches with fixes needed to pass regression tests
- added more preliminary code for "if"
Version 2e (27-APR-2001)
------------------------
- added more tcng regression tests
- expected losses were mis-calculated in examples/tbf and examples-ng/tbf
- changed field "tos" to "ip_tos" in toys/if
- moved field definitions from toys/if to new file tcc/fields.tc
- parameter truncation warnings were sometimes printed twice
- value of dt_rate parameters is now reported in bps, not Bps in truncation
warning
- CHANGES: forgot to mention tcc -d option added in 2d
- added tracing of u32 classification process
- setup.ulib fixed receive buffer overrun bug in iproute2/tc (now-ss001007)
- added examples/u32 and (non-functional) examples-ng/u32
- added more preliminary code for "if"
Version 2d (26-APR-2001)
------------------------
- several slight changes to replacement kernel headers to improve compatibility
- moved common Makefile items to Common.make for consistent behaviour in all
directories
- added tcc option -d to enable debugging output
Version 2c (26-APR-2001)
------------------------
- added more tcng regression tests
- iproute2/tc expects CBQ "weight" to be a size, although it's a rate
everywhere else. tcng now reluctantly complies ...
- CBQ didn't include "bandwidth" among default parameters, but used it as such
- some preliminary code for parts of "if"
- moved tcng/tcsim/toys to tcng
- added toys/if, my "if" test input
- plot.pl now only plots data sets actually containing data
- parameter name "isolated" wasn't recognized (reported by Jacob Teplitsky)
Version 2b (24-APR-2001)
------------------------
- make clean didn't remove left-over temporary test files
- oops, runtests.sh wasn't included in the distribution
Version 2a (24-APR-2001)
------------------------
- added tcsim to tcng package
- former tcng is now in tcng/tcc/, moved tests and examples-* directories of
tcsim to tcng/
- removed tcng/tcc/ef-prio-example
- merged COPYING, and parts of README and Makefile
- moved tests and configuration to the top-level
- configure: always sets TCC to $TOPDIR/tcc/tcc, unless explicitly overridden
- tcc: RSVP filter now prints a warning if it has no elements
|