[{"data":1,"prerenderedAt":433},["ShallowReactive",2],{"project-39976640":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":20,"keywords":22,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":44,"post_text":46,"what":47,"said":88,"maker_in_thread":155,"shape":166,"grid":170,"attempts":394,"same_week":395,"maker_shows":18,"maker_hidden":425,"reader_version":426,"card":427},"39976640","I made a discrete logic network card","A discrete logic network card","title","Show HN: I made a discrete logic network card","https:\u002F\u002Fqdiv.dev\u002Fposts\u002Feth2\u002F","qdiv.dev","ynoxinul",1712643855,2024,541,84,58,3515,2,"legend","hardware","network card",[23,24,25,26,27],"discrete logic","ethernet card","custom cpu","retro computing","10base-t","mixed",0.306,{"positive":31,"neutral":32,"mixed":33,"critical":34},11,14,1,3,29,{"docs":37,"idea":39,"performance":40,"execution":41,"design":42,"privacy":43},{"positive":18,"critical":38},0,{"positive":38,"critical":38},{"positive":38,"critical":38},{"positive":38,"critical":38},{"positive":33,"critical":38},{"positive":38,"critical":34},[45,34,38,38,38,38,34,45,38,38,34,38,34,34,45,45,45,34,33,45,38,45,45,38,34,34,45,33,38,38,38,38,38,38,38,38,38,34,34,34],5,null,{"problem":46,"audience":46,"pricing":46,"motivation":48,"time_to_build":56,"stack":63,"openness":85,"stage":86,"team_size":87},{"value":49,"source":50,"evidence":51},"Needed hardware MAC address filtering; built for fun and understanding","commenter",[52],{"id":53,"by":54,"text":55},"39977888","nonrandomstring","Beautiful work to share. > I needed a hardware MAC address filtering. What I really love is the stack trace of reasoning, that's very pedagogical, and that you either worked out…",{"value":57,"source":58,"evidence":59},"Network module about a month; compiler took much longer","maker",[60],{"id":61,"by":11,"text":62},"39977071","Building the network module took about a month, but writing the compiler took much more time.",[64,70,78],{"value":65,"source":58,"evidence":66},"custom CPU",[67],{"id":68,"by":11,"text":69},"39978217","I started with a CPU and then built everything else around it. Using something like a Z80 just doesn't seem fun for me.",{"value":71,"source":58,"evidence":72},"C compiler",[73,77],{"id":74,"by":75,"text":76},"39978280","JonChesterfield","Towards the end is a link to a C compiler built for this project. https:\u002F\u002Fgithub.com\u002Fimihajlow\u002Fccpu-cc. Seems to have a linker and a libc as well. I have no real understanding of…",{"id":61,"by":11,"text":62},{"value":79,"source":50,"evidence":80},"uIP TCP\u002FIP stack",[81],{"id":82,"by":83,"text":84},"39977765","jiveturkey","> Fixing the frame length doesn’t have any effect on higher-level protocols because they encode the packet size in their headers and do not rely on the actual Ethernet frame…","unknown","launched","solo",{"praise":89,"objections":110,"requests":122,"questions":129,"alternatives":140},[90,102],{"value":91,"source":50,"evidence":92},"Impressive, pedagogical build",[93,94,98],{"id":53,"by":54,"text":55},{"id":95,"by":96,"text":97},"39978165","jfbenson","This is truly impressive, not just the work, but the way you have laid it out so simply and effectively. Huge kudos!",{"id":99,"by":100,"text":101},"39976980","precompute","Very cool! How long did it take you? It's really impressive!",{"value":103,"source":50,"evidence":104},"Clear, well documented write-up",[105,106],{"id":95,"by":96,"text":97},{"id":107,"by":108,"text":109},"39977915","cushychicken","Man, that is really, really cool. I just went back and reread the 10BASE-T write up as well. That’s super cool you can even get 2.6kB out of it.",[111],{"value":112,"source":50,"evidence":113},"Opaque hardware could hide backdoors",[114,118],{"id":115,"by":116,"text":117},"39978794","amelius","This shows how easy it is to put a backdoor inside a chip that is connected to a network port.",{"id":119,"by":120,"text":121},"39978639","_factor","A network card with opaque firmware is a 0-day away from becoming a global catastrophe. Even RISC-V based switches like the Vega use proprietary switch chips (Wuhan China…",[123],{"value":124,"source":50,"evidence":125},"Add WiFi implementation",[126],{"id":127,"by":116,"text":128},"39977887","Cool. Now waiting for a WiFi implementation :)",[130],{"value":131,"source":50,"evidence":132},"How would a minimal Ethernet card for a normal PC be built (USB or ISA)?",[133,137],{"id":134,"by":135,"text":136},"39980416","yjftsjthsd-h","So this is for an all-custom computer, which is rather more impressive on its own (to say nothing of \"So I made a C compiler.\"), but now I'm curious what the minimal…",{"id":138,"by":11,"text":139},"39981072","If a normal PC had an ISA bus (like they did 30 years ago), my network card could have been connected to it with just some minor modifications.",[141,148],{"value":142,"source":50,"evidence":143},"Z80-based designs",[144],{"id":145,"by":146,"text":147},"39978125","RetroTechie","Very cool stuff! Only nitpick I'd have is that author decided to use a custom-design cpu. Ok, \"discrete logic only!\" is a valid choice. And then keeping complexity to a minimum…",{"value":149,"source":50,"evidence":150},"3Com 3c501 Etherlink card",[151],{"id":152,"by":153,"text":154},"39977663","actionfromafar","So, is it better or worse than the Etherlink 3c501 ? :-D https:\u002F\u002Fmirror.math.princeton.edu\u002Fpub\u002Foldlinux\u002FLinux.old\u002Fnet\u002Ftcpip\u002Fne2000\u002F3c501.c IIRC it over-wrote the buffer the CPU…",{"comments":156,"answered":157,"key":158},9,6,[159,160,163],{"id":138,"text":139},{"id":161,"text":162},"39977962","I've found the description of the thing: https:\u002F\u002Fwww.os2museum.com\u002Fwp\u002Femulating-etherlink\u002F Mine is better because it has two buffers :) But still, only one received frame is kept.",{"id":164,"text":165},"39977989","I'm sending my long frames out to the network and no OS I have has any problem with that. I've read somewhere that long frames are actually used by some routers to store metadata…",{"commenters":16,"max_depth":167,"maker_replies":156,"first_comment_mins":168,"lifespan_hours":169},8,69,59,[171,173,177,179,183,185,187,190,193,195,198,201,204,206,208,211,215,218,221,224,227,230,233,236,237,239,240,243,246,249,252,254,255,258,261,263,267,269,271,274,278,281,283,286,290,292,293,297,300,302,305,308,311,314,317,321,326,328,330,332,335,338,341,343,346,348,351,353,356,359,361,364,367,370,372,374,376,379,382,385,387,390,392],[53,38,45,172,54,38],"maker\u002Fpositive\u002Fdocs",[174,38,38,175,176,38],"39996254","other\u002Fneutral\u002Fnone","cchance",[134,33,34,178,135,38],"project\u002Fneutral\u002Fidea",[180,33,38,181,182,38],"39980528","commenter\u002Fneutral\u002Fnone","pjc50",[184,33,38,181,135,38],"39980744",[186,33,38,181,182,38],"39980891",[188,33,38,181,189,38],"39984013","15155",[191,33,38,181,192,38],"40000317","segfaultbuserr",[138,33,38,194,11,33],"project\u002Fneutral\u002Fdesign",[196,33,38,181,197,38],"39986026","fsckboy",[199,33,38,181,200,38],"39990964","adql",[202,33,38,181,203,38],"40004685","Cieric",[205,33,38,181,189,38],"39983821",[74,18,34,207,75,38],"project\u002Fneutral\u002Fnone",[209,18,34,207,210,38],"39978344","lionkor",[212,34,45,213,214,38],"39977076","maker\u002Fpositive\u002Fnone","hubraumhugo",[216,34,38,181,217,38],"39977661","MrGilbert",[219,34,38,181,220,38],"39977688","frabert",[222,34,38,181,223,38],"39980552","pbronez",[225,34,38,181,226,38],"39985882","dspillett",[228,34,38,181,229,38],"39986498","shiroiushi",[152,231,34,232,153,38],4,"project\u002Fneutral\u002Fperformance",[234,231,38,181,235,38],"39977782","tech2",[161,231,38,194,11,33],[82,45,34,238,83,38],"maker\u002Fneutral\u002Fexecution",[164,45,38,207,11,33],[241,45,34,242,83,38],"39983173","project\u002Fneutral\u002Fexecution",[244,45,38,245,11,33],"39983274","maker\u002Fneutral\u002Fnone",[247,45,38,181,248,38],"39979152","darrin",[250,157,34,194,251,38],"39978381","formerly_proven",[99,253,45,213,100,38],7,[61,253,38,245,11,33],[256,253,45,213,257,38],"39977110","gigatexal",[259,253,45,213,260,38],"39977144","magicalhippo",[262,253,38,245,11,33],"39977156",[264,253,34,265,266,38],"39977366","maker\u002Fneutral\u002Fdocs","artirdx",[268,253,38,265,11,33],"39978088",[115,167,33,270,116,38],"project\u002Fcritical\u002Fprivacy",[272,156,38,175,273,38],"39979951","arnon",[275,276,45,213,277,38],"39989430",10,"tranxen",[279,31,38,175,280,38],"39997502","asdefghyk",[282,31,38,175,11,33],"39999391",[284,31,38,175,285,38],"40001076","jsjohnst",[287,288,38,175,289,38],"39979448",12,"whartung",[95,291,45,172,96,38],13,[107,32,45,213,108,38],[294,295,34,207,296,38],"39978825",15,"mogoh",[298,295,38,175,299,38],"39978915","retrac",[301,295,38,181,296,38],"39979000",[303,295,38,175,304,38],"39986583","__d",[306,295,34,194,307,38],"39978941","cfn",[309,295,34,194,310,38],"39978947","SAI_Peregrinus",[312,295,38,181,313,38],"39983183","dboreham",[315,295,38,181,316,38],"39984778","mrob",[318,319,45,213,320,38],"39988558",16,"2sk21",[322,323,45,324,325,38],"39980362",17,"maker\u002Fpositive\u002Fdesign","samtho",[119,327,33,270,120,38],18,[329,327,38,175,54,38],"39978991",[331,327,38,175,120,38],"39979337",[333,327,38,175,334,38],"39979794","j33zusjuice",[336,327,38,181,337,38],"39980263","phkahler",[339,327,38,181,340,38],"39980428","HeyLaughingBoy",[342,327,38,181,54,38],"39980886",[344,327,38,181,345,38],"39980476","sdwr",[347,327,38,181,54,38],"39980644",[349,327,38,181,350,38],"39990889","htek",[352,327,38,181,54,38],"39991779",[354,327,38,181,355,38],"39980790","jbboehr",[357,327,38,181,358,38],"39981876","reaperducer",[360,327,38,175,54,38],"39982057",[362,327,38,181,363,38],"39982071","nsxwolf",[365,327,38,181,366,38],"39986779","spencerflem",[368,327,38,175,369,38],"39994160","0x457",[371,327,38,181,54,38],"39991355",[373,327,38,175,182,38],"39980432",[375,327,38,175,223,38],"39980531",[377,327,33,270,378,38],"39992800","jpc0",[127,380,45,381,116,38],19,"project\u002Fpositive\u002Fnone",[145,383,34,384,146,38],20,"project\u002Fmixed\u002Fdesign",[68,383,38,386,11,33],"maker\u002Fneutral\u002Fdesign",[388,383,34,194,389,38],"39978413","heinrichhartman",[391,383,34,194,146,38],"39978850",[393,383,34,194,313,38],"39983225",[],[396,401,406,411,416,420],{"id":397,"name":398,"points":399,"category":400},"39980222","PriceLevel",532,"web_saas",{"id":402,"name":403,"points":404,"category":405},"39992817","Sonauto",454,"ai",{"id":407,"name":408,"points":409,"category":410},"39960537","pgmock",379,"dev_tools",{"id":412,"name":413,"points":414,"category":415},"39990346","ADS-B",339,"data",{"id":417,"name":418,"points":419,"category":410},"39955944","drawDB",311,{"id":421,"name":422,"points":423,"category":424},"39941232","Kyoo",258,"infrastructure",false,"v2",{"id":428,"name":5,"line":6,"ai":425,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":429,"top":18,"kw":430,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":431,"url":9,"mix":432,"praise":91,"objection":112,"sub":21},39976640,0.31,[23,24,25,26,27],"5300003500303355531505503351000000000333",[31,32,33,34],1794036652749]